Skip to content

Commit c93dda2

Browse files
committed
howto-maintain: cover a whole development cycle
The "policy" part is more important than the "daily operation" part in that it establishes why certain maintainer tasks exist and are performed the way they are. The text briefly touches the role each integration branches play in the workflow, but does not give the whole picture of what happens in a single development cycle using these branches. Extend the description to describe a whole development cycle. Signed-off-by: Junio C Hamano <[email protected]>
1 parent 337b4d4 commit c93dda2

File tree

1 file changed

+42
-10
lines changed

1 file changed

+42
-10
lines changed

Documentation/howto/maintain-git.txt

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,20 @@ The Policy
3737

3838
The policy on Integration is informally mentioned in "A Note
3939
from the maintainer" message, which is periodically posted to
40-
this mailing list after each feature release is made.
40+
the mailing list after each feature release is made:
4141

4242
- Feature releases are numbered as vX.Y.0 and are meant to
4343
contain bugfixes and enhancements in any area, including
4444
functionality, performance and usability, without regression.
4545

46-
- One release cycle for a feature release is expected to last for
47-
eight to ten weeks.
48-
49-
- Maintenance releases are numbered as vX.Y.Z and are meant
46+
- Maintenance releases are numbered as vX.Y.Z (0 < Z) and are meant
5047
to contain only bugfixes for the corresponding vX.Y.0 feature
5148
release and earlier maintenance releases vX.Y.W (W < Z).
5249

53-
- 'master' branch is used to prepare for the next feature
50+
- The 'master' branch is used to prepare for the next feature
5451
release. In other words, at some point, the tip of 'master'
55-
branch is tagged with vX.Y.0.
52+
branch is tagged as vX.(Y+1).0, when vX.Y.0 is the latest
53+
feature release.
5654

5755
- 'maint' branch is used to prepare for the next maintenance
5856
release. After the feature release vX.Y.0 is made, the tip
@@ -63,11 +61,13 @@ this mailing list after each feature release is made.
6361
- 'next' branch is used to publish changes (both enhancements
6462
and fixes) that (1) have worthwhile goal, (2) are in a fairly
6563
good shape suitable for everyday use, (3) but have not yet
66-
demonstrated to be regression free. New changes are tested
67-
in 'next' before merged to 'master'.
64+
demonstrated to be regression free. Reviews from contributors on
65+
the mailing list help to make the determination. After a topic
66+
is merged to 'next', it is tested for at least 7 calendar days
67+
before getting merged to 'master'.
6868

6969
- 'seen' branch is used to publish other proposed changes that do
70-
not yet pass the criteria set for 'next'.
70+
not yet pass the criteria set for 'next' (see above).
7171

7272
- The tips of 'master' and 'maint' branches will not be rewound to
7373
allow people to build their own customization on top of them.
@@ -86,6 +86,38 @@ this mailing list after each feature release is made.
8686
users are encouraged to test it so that regressions and bugs
8787
are found before new topics are merged to 'master'.
8888

89+
- When a problem is found in a topic in 'next', the topic is marked
90+
not to be merged to 'master'. Follow-up patches are discussed on
91+
the mailing list and applied to the topic after being reviewed and
92+
then the topic is merged (again) to 'next'. After going through
93+
the usual testing in 'next', the entire (fixed) topic is merged
94+
to 'master'.
95+
96+
- One release cycle for a feature release is expected to last for
97+
eight to ten weeks. A few "release candidate" releases are
98+
expected to be tagged about a week apart before the final
99+
release, and a "preview" release is tagged about a week before
100+
the first release candidate gets tagged.
101+
102+
- After the preview release is tagged, topics that were well
103+
reviewed may be merged to 'master' before spending the usual 7
104+
calendar days in 'next', with the expectation that any bugs in
105+
them can be caught and fixed in the release candidates before
106+
the final release.
107+
108+
- After the first release candidate is tagged, the contributors are
109+
strongly encouraged to focus on finding and fixing new regressions
110+
introduced during the cycle, over addressing old bugs and any new
111+
features. Topics stop getting merged down from 'next' to 'master',
112+
and new topics stop getting merged to 'next'. Unless they are fixes
113+
to new regressions in the cycle, that is.
114+
115+
- Soon after a feature release is made, the tip of 'maint' gets
116+
fast-forwarded to point at the release. Topics that have been
117+
kept in 'next' are merged down to 'master' and a new development
118+
cycle starts.
119+
120+
89121
Note that before v1.9.0 release, the version numbers used to be
90122
structured slightly differently. vX.Y.Z were feature releases while
91123
vX.Y.Z.W were maintenance releases for vX.Y.Z.

0 commit comments

Comments
 (0)