|
| 1 | +# Contributing |
| 2 | + |
| 3 | +Thanks for considering contributing! Please read this document to learn the various ways you can contribute to this project and how to go about doing it. |
| 4 | + |
| 5 | +## Bug reports and feature requests |
| 6 | + |
| 7 | +### Did you find a bug? |
| 8 | + |
| 9 | +First, do [a quick search](https://github.com/precimed/container_template/issues) to see whether your issue has already been reported. |
| 10 | +If your issue has already been reported, please comment on the existing issue. |
| 11 | + |
| 12 | +Otherwise, open [a new GitHub issue](https://github.com/precimed/container_template/issues). Be sure to include a clear title |
| 13 | +and description. The description should include as much relevant information as possible. The description should |
| 14 | +explain how to reproduce the erroneous behavior as well as the behavior you expect to see. Ideally you would include a |
| 15 | +code sample or an executable test case demonstrating the expected behavior. |
| 16 | + |
| 17 | +### Do you have a suggestion for an enhancement or new feature? |
| 18 | + |
| 19 | +We use GitHub issues to track feature requests. Before you create a feature request: |
| 20 | + |
| 21 | +* Make sure you have a clear idea of the enhancement you would like. If you have a vague idea, consider discussing |
| 22 | +it first on a GitHub issue. |
| 23 | +* Check the documentation to make sure your feature does not already exist. |
| 24 | +* Do [a quick search](https://github.com/precimed/container_template/issues) to see whether your feature has already been suggested. |
| 25 | + |
| 26 | +When creating your request, please: |
| 27 | + |
| 28 | +* Provide a clear title and description. |
| 29 | +* Explain why the enhancement would be useful. It may be helpful to highlight the feature in other libraries. |
| 30 | +* Include code examples to demonstrate how the enhancement would be used. |
| 31 | + |
| 32 | +## Making a pull request |
| 33 | + |
| 34 | +When you're ready to contribute code to address an open issue, please follow these guidelines to help us be able to review your pull request (PR) quickly. |
| 35 | + |
| 36 | +1. **Initial setup** (only do this once) |
| 37 | + |
| 38 | + <details><summary>Expand details 👇</summary><br/> |
| 39 | + |
| 40 | + If you haven't already done so, please [fork](https://help.github.com/en/enterprise/2.13/user/articles/fork-a-repo) this repository on GitHub. |
| 41 | + |
| 42 | + Then clone your fork locally with |
| 43 | + |
| 44 | + git clone https://github.com/USERNAME/container_template.git |
| 45 | + |
| 46 | + or |
| 47 | + |
| 48 | + git clone [email protected]:USERNAME/container_template.git |
| 49 | + |
| 50 | + At this point the local clone of your fork only knows that it came from *your* repo, github.com/USERNAME/container_template.git, but doesn't know anything the *main* repo, [https://github.com/precimed/container_template.git](https://github.com/precimed/container_template). You can see this by running |
| 51 | + |
| 52 | + git remote -v |
| 53 | + |
| 54 | + which will output something like this: |
| 55 | + |
| 56 | + origin https://github.com/USERNAME/container_template.git (fetch) |
| 57 | + origin https://github.com/USERNAME/container_template.git (push) |
| 58 | + |
| 59 | + This means that your local clone can only track changes from your fork, but not from the main repo, and so you won't be able to keep your fork up-to-date with the main repo over time. Therefore you'll need to add another "remote" to your clone that points to [https://github.com/precimed/container_template.git](https://github.com/precimed/container_template). To do this, run the following: |
| 60 | + |
| 61 | + git remote add upstream https://github.com/precimed/container_template.git |
| 62 | + |
| 63 | + Now if you do `git remote -v` again, you'll see |
| 64 | + |
| 65 | + origin https://github.com/USERNAME/container_template.git (fetch) |
| 66 | + origin https://github.com/USERNAME/container_template.git (push) |
| 67 | + upstream https://github.com/precimed/container_template.git (fetch) |
| 68 | + upstream https://github.com/precimed/container_template.git (push) |
| 69 | + |
| 70 | +2. **Ensure your fork is up-to-date** |
| 71 | + |
| 72 | + <details><summary>Expand details 👇</summary><br/> |
| 73 | + |
| 74 | + Once you've added an "upstream" remote pointing to [https://github.com/precimed/container_template.git](https://github.com/precimed/container_template), keeping your fork up-to-date is easy: |
| 75 | + |
| 76 | + git checkout main # if not already on main |
| 77 | + git pull --rebase upstream main |
| 78 | + git push |
| 79 | + |
| 80 | + </details> |
| 81 | + |
| 82 | +3. **Create a new branch to work on your fix or enhancement** |
| 83 | + |
| 84 | + <details><summary>Expand details 👇</summary><br/> |
| 85 | + |
| 86 | + Committing directly to the main branch of your fork is not recommended. It will be easier to keep your fork clean if you work on a separate branch for each contribution you intend to make. |
| 87 | + |
| 88 | + You can create a new branch with |
| 89 | + |
| 90 | + # replace BRANCH with whatever name you want to give it |
| 91 | + git checkout -b BRANCH |
| 92 | + git push -u origin BRANCH |
| 93 | + |
| 94 | + </details> |
| 95 | + |
| 96 | +4. **Test your changes** |
| 97 | + |
| 98 | + <details><summary>Expand details 👇</summary><br/> |
| 99 | + |
| 100 | + Our continuous integration (CI) testing runs [a number of checks](https://github.com/precimed/container_template/actions) for each pull request on [GitHub Actions](https://github.com/features/actions). |
| 101 | + You can run most of these tests locally, which is something you should do *before* opening a PR to help speed up the review process and make it easier for us. |
| 102 | + |
| 103 | + And finally, please update the [CHANGELOG](https://github.com/precimed/container_template/blob/main/CHANGELOG.md) with notes on your contribution in the "Unreleased" section at the top. |
| 104 | + |
| 105 | + After all of the above checks have passed, you can now open [a new GitHub pull request](https://github.com/precimed/container_template/pulls). |
| 106 | + Make sure you have a clear description of the problem and the solution, and include a link to relevant issues. |
| 107 | + |
| 108 | + We look forward to reviewing your PR! |
| 109 | + |
| 110 | + </details> |
0 commit comments