aboutsummaryrefslogtreecommitdiff
path: root/MAINTAIN.md
blob: ed0df76e36c758d7669afd598d346f650f2d0761 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Maintaining the Neovim project
==============================

Notes on maintaining the Neovim project.

See also: https://github.com/git/git/blob/master/Documentation/howto/maintain-git.txt

Ticket Triage
-------------

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 +plan label 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 Policy
--------------

The goal is "early and often".

Up to now we use only one branch, the `master` branch.

- If `master` is unstable we don't release.
- If the last release has a major bug, we:
  1. Fix the bug on `master`.
  2. Disable or remove any known risks present on `master`.
  3. Cut a release from `master`.

This is a bit silly, but it works ok. And it keeps `master` from biting off
more feature-creep than it can chew.

See also: https://github.com/neovim/neovim/issues/862