|
2 | 2 |
|
3 | 3 | Contributions to Gruntwork IaC Library are welcome and appreciated! In fact, Gruntwork receives over 1,000 customer [pull requests](https://help.github.com/articles/about-pull-requests/) per year.
|
4 | 4 |
|
5 |
| -You can contribute to the library in several ways: |
| 5 | +You can contribute in the following ways: |
6 | 6 |
|
7 |
| -- Update an existing "building block" module or service module |
8 |
| -- Contribute a new module |
9 |
| -- Document a bug |
| 7 | +- Update an existing "building block" module or service module. |
| 8 | +- Contribute to a new module. |
| 9 | +- Report a bug. |
10 | 10 |
|
11 | 11 | ## Start by filing a GitHub issue
|
12 | 12 |
|
13 |
| -If you're thinking of adding a new feature, before starting any work, we recommend filing a GitHub issue in the appropriate repo. This is your chance to ask |
14 |
| -questions and get feedback from the maintainers and the community before you sink a lot of time into writing (possibly |
15 |
| -the wrong) code. If there is anything you’re unsure about, just ask! |
| 13 | +Before starting work on a new feature, file a GitHub issue in the relevant repository. Doing so gives you the opportunity to clarify your approach, gather input from maintainers and the community, and address any questions before investing significant time in coding. If you’re uncertain about any part of your contribution, don’t hesitate to ask for guidance. |
16 | 14 |
|
17 |
| -If you're submitting a simple change such as a new variable or new output value, it may be worth opening a pull request directly, as described below. |
| 15 | +For minor updates, like adding a variable or output value, you may proceed directly to creating a pull request, as detailed below. |
18 | 16 |
|
19 | 17 | ## Proceed to a pull request
|
20 | 18 |
|
21 |
| -If it makes sense to open a pull request, follow these guidelines: |
| 19 | +If opening a pull request is appropriate, follow these guidelines: |
22 | 20 |
|
23 | 21 | ### Update the documentation first
|
24 | 22 |
|
25 |
| -We recommend updating the documentation _before_ updating any code (see |
26 |
| -[Readme Driven Development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html)). This ensures the |
27 |
| -documentation stays up to date and allows you to think through the problem at a high level before you get lost in the |
28 |
| -weeds of coding. |
| 23 | +Update the documentation **before** modifying any code. This step follows the principle of [Readme Driven Development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html). Doing so ensures the documentation remains current and allows you to conceptualize the solution at a high level before diving into implementation. |
29 | 24 |
|
30 | 25 | ### Update the tests
|
31 | 26 |
|
32 |
| -We also recommend updating the automated tests _before_ updating any code (see |
33 |
| -[Test Driven Development](https://en.wikipedia.org/wiki/Test-driven_development)). That means you add or update a test |
34 |
| -case, verify that it’s failing with a clear error message, and then make the code changes to get that test to pass. |
35 |
| -This ensures the tests stay up to date and verify all the functionality in the repo, including whatever new |
36 |
| -functionality you’re adding in your contribution. The `test` folder in every repo will have documentation on how to run |
37 |
| -the tests locally. |
| 27 | +Add or update automated tests **before** changing the code, following the practice of [Test Driven Development](https://en.wikipedia.org/wiki/Test-driven_development). Begin by creating or updating test cases, ensuring they fail with clear error messages. Then, modify the code to make the test pass. This approach keeps the tests up to date and validates existing and new functionality. Refer to the `test` folder in the repository for instructions on running tests locally. |
38 | 28 |
|
39 | 29 | ### Update the code
|
40 | 30 |
|
41 |
| -At this point, you can make your code changes and use your new test case to verify that everything is working. |
| 31 | +With tests in place, implement your code changes. Use the new test cases to confirm that the changes work as intended. |
42 | 32 |
|
43 | 33 | ### Create a pull request
|
44 | 34 |
|
45 |
| -[Create a pull request](https://help.github.com/articles/creating-a-pull-request/) with your changes. Please make sure |
46 |
| -to include the following: |
| 35 | +[Create a pull request](https://help.github.com/articles/creating-a-pull-request/) with your changes. Make sure to include the following information: |
47 | 36 |
|
48 |
| -1. A description of the change, including a link to your GitHub issue. |
49 |
| -2. Any notes on backwards incompatibility. |
50 |
| -3. |
| 37 | +1. A description of the change, including a link to the corresponding GitHub issue. |
| 38 | +2. Notes regarding any backward incompatibility. |
| 39 | +3. Any other relevant details. |
51 | 40 |
|
52 | 41 | #### How to create a pull request on a Gruntwork repository
|
53 | 42 |
|
54 |
| -As a Gruntwork customer you will have *read* access to Gruntwork repositories. This means you will not be able to push a branch directly |
55 |
| -to our repositories. Instead, to open a pull request you should: |
| 43 | +As a Gruntwork customer, you are granted **read-only** access to Gruntwork repositories. This means you cannot push branches directly to these repositories. Instead, follow the steps below to open a pull request: |
56 | 44 |
|
57 |
| -* Fork our repositories into a repository in an organization you have write access to |
58 |
| -* Push a branch to your repository |
59 |
| -* Open a PR in our repository with the base as our main/master branch, and the "compare" branch being the branch in your repository. |
| 45 | +1. Fork the Gruntwork repository into a repository within an organization where you have write access. |
| 46 | +2. Push your branch to your forked repository. |
| 47 | +3. Open a pull request against the Gruntwork repository. Set the base branch to Gruntwork’s `main` or `master` branch, and compare the branch to the branch in your forked repository. |
60 | 48 |
|
61 |
| -For more information about this flow see [GitHub's documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) |
| 49 | +For additional details, refer to [GitHub’s documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork). |
62 | 50 |
|
63 | 51 | ### Merge and release
|
64 | 52 |
|
65 |
| -The maintainers for the repo will review your code and provide feedback. If everything looks good, they will merge the |
66 |
| -code and release a new version. |
| 53 | +Gruntwork maintainers will review your contribution and provide feedback as necessary. Once approved, they will merge the changes and release a new version. |
0 commit comments