diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-11-07 09:00:00 +0100 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-11-07 17:55:53 +0100 |
commit | 69950a3d2cee7cb54a26bf3a5cd56234a8caf046 (patch) | |
tree | 2346ca857774b4670ea138f55a8fece91eddad5f /CONTRIBUTING.md | |
parent | 67875bfa8377c85f44f35111582b7522414b86fc (diff) | |
download | justbuild-69950a3d2cee7cb54a26bf3a5cd56234a8caf046.tar.gz |
Describe the contributing process
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r-- | CONTRIBUTING.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..b3ec7ee7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,48 @@ +# Contributing + +## Preparing changes + + +Larger changes, as well as changes breaking backwards compatibility +require a design document describing the planned change. It should +carefully discuss the objective of the planned feature, possible +alternatives, as well as the transition plan. This document has to +be agreed upon and committed to the repository first. + +For all changes, remember to also update the documentation and +add appropriate test coverage. For code to be accepted, all tests +must pass; the two global test suites are `["test", "ALL"]` and +`["test", "bootstrap-test"]` where the latter needs an increased +action time out. Code is formatted with `clang-format` and linted +with `clang-tidy`; the corresponding configuration files can be +found in the top-level directory of this repository. + +Changes should be organized as a patch series, i.e., as a sequence of +small changes that are easy to review, but nevertheless self-contained +in the sense that after each such change, the code builds and the +tests pass; in particular, tests should be rebased to come after +the implementation in the series to avoid spurious errors when +doing `git bisect`. And the end of a patch series, there should be +no "loose ends" like library functions added, but never used. + +## Submitting patches + +Patches can be send for review by creating a feature branch in a +clone of the repository and creating a merge request on one of the +`git`-hosting sites hosting this repository. + +Alternatively, patches can also be sent via email using `git +format-patch`, `git send-email`. Please use the `--cover-letter` +option and add the description of the patch series in the cover +letter. When sending a revised version, e.g., because of review +comments, please make the new cover letter `In-Reply-To:` the old +over letter + +## Review + +Each commit has to be reviewed by a core member of the project (a +person with write access to the repository) that is not the author +of the respective commit. The core member who did the review will +also push the commits. Patch series go in as a whole or not at all. +Changes are added fast-forward of the current `master` without a +merge commit, rebasing the patches, if necessary. |