|
| 1 | +# Contributing to AWS Lambda C++ Framework |
| 2 | + |
| 3 | +First off, thank you for taking the time to contribute! 🎉 |
| 4 | + |
| 5 | + |
| 6 | +## How Can You Contribute? |
| 7 | + |
| 8 | +- Reporting Bugs |
| 9 | +- Suggesting Enhancements |
| 10 | +- Writing Code (Fixes, Features, Documentation) |
| 11 | +- Improving Documentation |
| 12 | +- Adding Tests |
| 13 | + |
| 14 | + |
| 15 | +## Getting Started |
| 16 | + |
| 17 | +To get started, follow these steps: |
| 18 | + |
| 19 | +1. Fork the repository. |
| 20 | +2. Clone your fork: |
| 21 | + ```sh |
| 22 | + git clone https://github.com/yourusername/your-repository-name.git |
| 23 | + ``` |
| 24 | +3. Create a new branch for your feature or bugfix: |
| 25 | + ```sh |
| 26 | + git checkout -b feature/your-feature-name |
| 27 | + ``` |
| 28 | + |
| 29 | + |
| 30 | +## Building the Project |
| 31 | + |
| 32 | +To build the project, you'll need Docker and Docker Compose installed. The project uses a multi-container setup for development, testing, and deployment. |
| 33 | + |
| 34 | +1. Build and start the Docker containers: |
| 35 | + ```sh |
| 36 | + docker-compose up --build |
| 37 | + ``` |
| 38 | +2. The above command will initiate the build process, start the necessary services, and run tests. |
| 39 | + |
| 40 | + |
| 41 | +## Running Tests |
| 42 | + |
| 43 | +To ensure your changes don't break existing functionality, run the tests: |
| 44 | +
|
| 45 | +1. Start the `unit-tests` service: |
| 46 | + ```sh |
| 47 | + docker-compose run unit-tests |
| 48 | + ``` |
| 49 | +2. Check the test results and make sure all tests pass before submitting your changes. |
| 50 | +
|
| 51 | +
|
| 52 | +## Adding New Examples or Tests |
| 53 | +1. **Examples:** Add new examples to the `cpp-lambda/examples` directory. Ensure each example has its own `CMakeLists.txt` file and a README explaining how to build and run the example. |
| 54 | +2. **Tests:** Add new tests to the `cpp-lambda/tests` directory. Follow the existing structure and use the Google Test framework for writing unit tests. |
| 55 | +
|
| 56 | +
|
| 57 | +## Committing Your Changes |
| 58 | +
|
| 59 | +1. Stage your changes: |
| 60 | + ```sh |
| 61 | + git add . |
| 62 | + ``` |
| 63 | +2. Commit your changes with a descriptive message: |
| 64 | + ```sh |
| 65 | + git commit -m "Add feature XYZ" |
| 66 | + ``` |
| 67 | +
|
| 68 | +3. Commit your changes with a descriptive message: |
| 69 | + ```sh |
| 70 | + git push origin feature/your-feature-name |
| 71 | + ``` |
| 72 | +
|
| 73 | +
|
| 74 | +## Creating a Pull Request |
| 75 | +
|
| 76 | +1. Navigate to the original repository on GitHub. |
| 77 | +2. Click on the "New pull request" button. |
| 78 | +3. Select the branch you just pushed to. |
| 79 | +4. Provide a clear title and description for your pull request. |
| 80 | +5. Submit the pull request. |
| 81 | +
|
| 82 | +
|
| 83 | +## Code of Conduct |
| 84 | +Please note that this project adheres to a Code of Conduct. By participating, you are expected to uphold this code. |
| 85 | +
|
| 86 | +
|
| 87 | +## Style Guide |
| 88 | +- Follow the C++ Core Guidelines and adhere to the project's existing style. |
| 89 | +- Use meaningful variable and function names. |
| 90 | +- Document your code appropriately. |
| 91 | +- Write unit tests for any new features or changes. |
| 92 | + |
| 93 | + |
| 94 | +## Reporting Bugs |
| 95 | +If you find a bug, please report it by opening an issue. Include as much detail as possible: |
| 96 | + |
| 97 | +- Steps to reproduce the bug. |
| 98 | +- Expected behavior. |
| 99 | +- Actual behavior. |
| 100 | +- Your environment (OS, Docker version, etc.). |
| 101 | + |
| 102 | + |
| 103 | +## Suggesting Enhancements |
| 104 | +If you have a suggestion for improving the project, please open an issue with the following information: |
| 105 | + |
| 106 | +- A detailed description of the enhancement. |
| 107 | +- The motivation behind the enhancement. |
| 108 | +- Any examples or references that could help understand the enhancement better. |
| 109 | + |
| 110 | +## Thank You! |
| 111 | +Thank you for your interest in contributing to the AWS Lambda C++ Framework! Your contributions are highly appreciated. |