aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md74
1 files changed, 44 insertions, 30 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c7987e2000..7f10e1fa33 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,45 +2,63 @@
## Thank you
-Thanks for considering contributing to neovim. To make the process as smooth
-as possible we would ask you to follow the guidelines below.
+Thanks for considering contributing to Neovim.
+To make the process as smooth as possible we would ask you to follow
+the guidelines below.
+If you need support see [the wiki](https://github.com/neovim/neovim/wiki/Contributing).
-## Help with contributing
+## Issues
-See [Communicating](https://github.com/neovim/neovim/wiki/Communicating).
-Raise documentation issues.
+- Search existing issues before raising a new one.
+- Include as much detail as possible. In particular, we need to know which
+ OS you're using.
-## Guidelines
+## Pull requests
-### Finding something to do
+### For all PRs
-Neovim uses [waffle.io](https://waffle.io/neovim/neovim), so check there
-first.
+- Make it clear in the issue tracker what you are working on, so that
+ someone else doesn't duplicate the work.
+- Be descriptive in your PR message: what is it for, why is it needed, etc.
+- Don't make cosmetic changes to unrelated files in the same PR.
-You can also ask for an issues to be assigned to you.
-Ideally wait until we assign it to you to minimize
-work duplication.
+#### Tagging in the issue tracker
-### Reporting an issue
+When submitting pull requests, include one of the following 'tags' in the title:
-- Search existing issues before raising a new one.
-- Include as much detail as possible. In particular, we need to know which
- OS you're using.
+* `[WIP]` - Work In Progress. The pull request will change, and there is no need
+ to review it yet.
+* `[RFC]` - Request For Comment. The request needs reviewing and/or comments.
+* `[RDY]` - The request is ready to be merged. The request must have been
+ reviewed by at least one person and have no outstanding issues.
-### Pull requests
+This lets people quickly see the status of the PR, and reduces the risk of
+merging requests that are not yet ready or reviewed. By tagging, you'll also
+save reviewers and mergers some work.
+
+If a pull request doesn't have a tag, it's considered `WIP` as long as there are
+no comments indicating it's `RFC` or `RDY`.
+
+#### Branching & history
-- Make it clear in the issue tracker what you are working on, so that
-someone else doesn't duplicate the work.
- Use a feature branch, not master.
-- Rebase your feature branch onto origin/master before raising the PR.
-- Keep up to date with changes in master so your PR is easy to merge.
-- Be descriptive in your PR message: what is it for, why is it needed, etc.
-- Make sure the tests pass (TODO: we need to make this easier with travis etc.)
-- Squash related commits as much as possible.
+- Rebase your feature branch onto (upstream) master before raising the PR.
+- Keep up to date with changes in (upstream) master so your PR is easy to merge.
+- Try to actively tidy your history: combine related commits with interactive
+ rebasing etc. If your PR is still `[WIP]` don't be afraid to force-push to
+ your feature branch to tidy your history.
+
+### For code PRs
-### Coding style
+#### Testing
-All code changes should follow the [neovim style guide](http://neovim.org/development-wiki/style-guide/style-guide.xml).
+- We are unlikely to merge your PR if the Travis build fails.
+- The Travis build does not currently run the tests under valgrind, but we would
+ strongly encourage you to do so locally.
+
+#### Coding style
+
+All code changes should follow the [Neovim style guide](http://neovim.org/development-wiki/style-guide/style-guide.xml).
Please run `clint.py` to detect style errors. `clint.py` is Google's
[`cpplint.py`](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#cpplint)
@@ -48,7 +66,3 @@ script modified with the neovim style guidelines. It is not perfect and may
have false positives and negatives, but is still a valuable tool. To have
`clint.py` ignore certain special cases, put `// NOLINT` at the end of the
line.
-
-### Commit messages
-
-TODO