|
| 1 | +# Contributing to versionize |
| 2 | + |
| 3 | +## Contribution Workflow |
| 4 | + |
| 5 | +The versionize repository uses the “fork-and-pull” development model. Follow |
| 6 | +these steps if you want to merge your changes: |
| 7 | + |
| 8 | +1. Within your fork of |
| 9 | + [versionize](https://github.com/firecracker-microvm/versionize), create a |
| 10 | + branch for your contribution. Use a meaningful name. |
| 11 | +1. Create your contribution, meeting all |
| 12 | + [contribution quality standards](#contribution-quality-standards) |
| 13 | +1. [Create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) |
| 14 | + against the master branch of the versionize repository. |
| 15 | +1. Work with your reviewers to address any comments and obtain a |
| 16 | + minimum of 2 approvals, at least one of which must be provided by |
| 17 | + [a maintainer](MAINTAINERS.md). |
| 18 | + To update your pull request amend existing commits whenever applicable and |
| 19 | + then push the new changes to your pull request branch. |
| 20 | +1. Once the pull request is approved, one of the maintainers will merge it. |
| 21 | + |
| 22 | +## Request for Comments |
| 23 | + |
| 24 | +If you just want to receive feedback for a contribution proposal, open an “RFC” |
| 25 | +(“Request for Comments”) pull request: |
| 26 | + |
| 27 | +1. On your fork of |
| 28 | + [versionize](https://github.com/firecracker-microvm/versionize), create a |
| 29 | + branch for the contribution you want feedback on. Use a meaningful name. |
| 30 | +1. Create your proposal based on the existing codebase. |
| 31 | +1. [Create a draft pull request](https://github.blog/2019-02-14-introducing-draft-pull-requests/) |
| 32 | + against the master branch of the versionize repository. |
| 33 | +1. Discuss your proposal with the community on the pull request page (or on any |
| 34 | + other channel). Add the conclusion(s) of this discussion to the pull request |
| 35 | + page. |
| 36 | + |
| 37 | +## Contribution Quality Standards |
| 38 | + |
| 39 | +Most quality and style standards are enforced automatically during integration |
| 40 | +testing. Your contribution needs to meet the following standards: |
| 41 | + |
| 42 | +- Separate each **logical change** into its own commit. |
| 43 | +- Each commit must pass all unit & code style tests, and the full pull request |
| 44 | + must pass all integration tests. |
| 45 | +- Unit test coverage must _increase_ the overall project code coverage. |
| 46 | +- Document all your public functions. |
| 47 | +- Add a descriptive message for each commit. Follow |
| 48 | + [commit message best practices](https://github.com/erlang/otp/wiki/writing-good-commit-messages). |
| 49 | +- Document your pull requests. Include the reasoning behind each change. |
| 50 | +- Acknowledge versionize's [Apache 2.0 license](LICENSE) and certify that no |
| 51 | + part of your contribution contravenes this license by signing off on all your |
| 52 | + commits with `git -s`. Ensure that every file in your pull request has a |
| 53 | + header referring to the repository license file. |
0 commit comments