diff options
author | Kamal Marhubi <kamal@marhubi.com> | 2016-02-19 17:30:36 -0500 |
---|---|---|
committer | Kamal Marhubi <kamal@marhubi.com> | 2016-02-27 12:17:21 -0500 |
commit | 901f3e5e9da1b305b5094a9574224e09d8ac3e83 (patch) | |
tree | 655675ec45aa8fb832354695d2952babe43df26a /CONTRIBUTING.md | |
parent | 3364f11ac1b2c8e8621454b972dda5dc74a228b9 (diff) | |
download | nix-901f3e5e9da1b305b5094a9574224e09d8ac3e83.zip |
Add a document with contribution guidelines
This gives us a place to point new contributors, as well as to document
our project practices.
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r-- | CONTRIBUTING.md | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..fbe05211 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,97 @@ +# Contributing to nix + +We're really glad you're interested in contributing to nix! This +document has a few pointers and guidelines to help get you started. + +To have a welcoming and inclusive project, nix uses the Rust project's +[Code of Conduct][conduct]. All contributors are expected to follow it. + +[conduct]: https://www.rust-lang.org/conduct.html + + +# Issues + +We use GitHub's [issue tracker][issues]. + +[issues]: https://github.com/nix-rust/nix/issues + + +## Bug reports + +Before submitting a new bug report, please [search existing +issues][issue-search] to see if there's something related. If not, just +[open a new issue][new-issue]! + +As a reminder, the more information you can give in your issue, the +easier it is to figure out how to fix it. For nix, this will likely +include the OS and version, and the architecture. + +[issue-search]: https://github.com/nix-rust/nix/search?utf8=%E2%9C%93&q=is%3Aissue&type=Issues +[new-issue]: https://github.com/nix-rust/nix/issues/new + + +## Feature / API requests + +If you'd like a new API or feature added, please [open a new +issue][new-issue] requesting it. As with reporting a bug, the more +information you can provide, the better. + + +## Labels + +We use labels to help manage issues. The structure is modeled after +[Rust's issue labeling scheme][rust-labels]: +- **A-**prefixed labels state which area of the project the issue + relates to +- **O-**prefixed labels specify the OS for issues that are OS-specific + +[rust-labels]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage + + +# Pull requests + +GitHub pull requests are the primary mechanism we use to change nix. GitHub itself has +some [great documentation][pr-docs] on using the Pull Request feature. We use the 'fork and +pull' model described there. + +Please make pull requests against the `master` branch. + +[pr-docs]: https://help.github.com/articles/using-pull-requests/ + + +## Testing + +nix has a test suite that you can run with `cargo test`. Ideally, we'd like pull +requests to include tests where they make sense. For example, when fixing a bug, +add a test that would have failed without the fix. + +After you've made your change, make sure the tests pass in your development +environment. We also have [continuous integration set up on +Travis-CI][travis-ci], which might find some issues on other platforms. The CI +will run once you open a pull request. + +[travis-ci]: https://travis-ci.org/nix-rust/nix + + +## Homu, the bot who merges all the PRs + +All pull requests are merged via [homu], an integration bot. After the +pull request has been reviewed, the reviewer will leave a comment like + +> @homu r+ + +to let @homu know that it was approved. Then @homu will check that it passes +tests when merged with the latest changes in the `master` branch, and merge if +the tests succeed. You can check out the [nix queue on homu][queue] to see the +status of PRs and their tests. + +[homu]: http://homu.io/ +[queue]: http://homu.io/q/nix-rust/nix + + +## API conventions + +If you're adding a new API, we have a [document with +conventions][conventions] to use throughout the nix project. + +[conventions]: https://github.com/nix-rust/nix/blob/master/CONVENTIONS.md |