2014-02-24 16:32:15 -07:00
|
|
|
# Contributing to Neovim
|
|
|
|
|
2014-05-07 19:33:41 -07:00
|
|
|
If you need additional support see [the wiki][wiki].
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-05-07 19:33:41 -07:00
|
|
|
## Getting started contributing
|
|
|
|
|
|
|
|
- Look for the [`entry-level`][entry] Issue Label. It marks easier issues.
|
|
|
|
- Take a look at [Waffle][waffle]. It'll show who is working on what isssues.
|
|
|
|
|
|
|
|
### What not to do
|
|
|
|
|
|
|
|
Please avoid broad cosmetic/style changes which increase merge conflicts and add
|
|
|
|
excessive noise to `git blame`.
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
## Issues
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
- 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.
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
## Pull requests
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
### For all PRs
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-05-07 19:33:41 -07:00
|
|
|
- Make it clear in the issue tracker what you are working on.
|
2014-03-04 15:00:29 -07:00
|
|
|
- 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.
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
#### Tagging in the issue tracker
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
When submitting pull requests, include one of the following 'tags' in the title:
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
* `[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.
|
2014-05-07 19:33:41 -07:00
|
|
|
* Default label is assumed to be `[WIP]` as long as there's no indication
|
|
|
|
otherwise.
|
2014-03-04 15:00:29 -07:00
|
|
|
|
|
|
|
#### Branching & history
|
2014-02-24 16:32:15 -07:00
|
|
|
|
|
|
|
- Use a feature branch, not master.
|
2014-03-04 15:00:29 -07:00
|
|
|
- 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
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
#### Testing
|
2014-02-24 16:32:15 -07:00
|
|
|
|
2014-03-04 15:00:29 -07:00
|
|
|
- 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
|
|
|
|
|
2014-05-07 19:33:41 -07:00
|
|
|
All code changes should follow the [Neovim style guide][style].
|
|
|
|
|
|
|
|
Please run [`clint.py`][clint] to detect style errors. It is not perfect and may
|
|
|
|
have false positives and negatives. To have `clint.py` ignore certain special
|
|
|
|
cases, put `// NOLINT` at the end of the line.
|
|
|
|
|
|
|
|
#### Commit messages
|
|
|
|
|
|
|
|
Follow the [Tim Pope Convention][commit] (@tpope) for commit messages. Most
|
|
|
|
importantly, do the following:
|
|
|
|
|
|
|
|
- Keep the first line a summary of 50 characters or less.
|
|
|
|
- Write the summary in the [imperative mood][imperative].
|
|
|
|
- Write a more detailed explanation (after a blank line) that explains more in
|
|
|
|
depth (only if necessary).
|
|
|
|
|
|
|
|
Take a look at @elmart's [commits on Neovim][elmart] for examples.
|
2014-02-27 08:10:43 -07:00
|
|
|
|
2014-05-07 19:33:41 -07:00
|
|
|
[clint]: clint.py
|
|
|
|
[commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
|
|
|
[entry]: https://github.com/neovim/neovim/issues?labels=entry-level&state=open
|
|
|
|
[elmart]: https://github.com/neovim/neovim/commits?author=elmart
|
|
|
|
[imperative]: http://en.wikipedia.org/wiki/Imperative_mood
|
|
|
|
[style]: http://neovim.org/development-wiki/style-guide/style-guide.xml
|
|
|
|
[waffle]: https://waffle.io/neovim/neovim
|
|
|
|
[wiki]: https://github.com/neovim/neovim/wiki/Contributing
|