Maintaining the Neovim project
Notes on maintaining the Neovim project.
- Decide by cost-benefit
- Write down what was decided
- Constraints are good
- Use automation to solve problems
- Never break the API
In practice we haven't found a meaningful way to forecast more precisely than "next" and "after next". That means there are usually one or two (at most) planned milestones:
- Next bugfix-release (1.0.x)
- Next feature-release (1.x.0)
The forecasting problem might be solved with an explicit priority system (like Bram's todo.txt). Meanwhile the Neovim priority system is defined by:
- PRs nearing completion (RDY).
- Issue labels. E.g. the
+planlabel increases the ticket's priority merely for having a plan written down: it is closer to completion than tickets without a plan.
- Comment activity or new information.
Anything that isn't in the next milestone, and doesn't have a RDY PR ... is just not something you care very much about, by construction. Post-release you can review open issues, but chances are your next milestone is already getting full :)
Release "often", but not "early".
master branch is the "early" channel; it should not be
released if it's not stable. High-risk changes may be merged to
the next release is not imminent.
For maintenance releases, create a
release-x.y branch. If the current release
has a major bug:
- Fix the bug on
- Cherry-pick the fix to
- Cut a release from
- Update (force-push) the remote
- The nightly job
will update the release assets based on the