Browse code

Document process for patch-releases

This documents the procedures around creating patch-releases.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2015/12/17 23:20:51
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,53 @@
0
+# Docker patch (bugfix) release process
1
+
2
+Patch releases (the 'Z' in vX.Y.Z) are intended to fix major issues in a
3
+release. Docker open source projects follow these procedures when creating a
4
+patch release;
5
+
6
+After each release (both "major" (vX.Y.0) and "patch" releases (vX.Y.Z)), a
7
+patch release milestone (vX.Y.Z + 1) is created.
8
+
9
+The creation of a patch release milestone is no obligation to actually
10
+*create* a patch release. The purpose of these milestones is to collect
11
+issues and pull requests that can *justify* a patch release;
12
+
13
+- Any maintainer is allowed to add issues and PR's to the milestone, when
14
+  doing so, preferably leave a comment on the issue or PR explaining *why*
15
+  you think it should be considered for inclusion in a patch release.
16
+- Issues introduced in version vX.Y.0 get added to milestone X.Y.Z+1
17
+- Only *regressions* should be added. Issues *discovered* in version vX.Y.0,
18
+  but already present in version vX.Y-1.Z should not be added, unless
19
+  critical.
20
+- Patch releases can *only* contain bug-fixes. New features should
21
+  *never* be added to a patch release.
22
+
23
+The release captain of the "major" (X.Y.0) release, is also responsible for
24
+patch releases. The release captain, together with another maintainer, will
25
+review issues and PRs on the milestone, and assigns `priority/`labels. These
26
+review sessions take place on a weekly basis, more frequent if needed:
27
+
28
+- A P0 priority is assigned to critical issues. A maintainer *must* be
29
+  assigned to these issues. Maintainers should strive to fix a P0 within a week.
30
+- A P1 priority is assigned to major issues, but not critical. A maintainer
31
+  *must* be assigned to these issues.
32
+- P2 and P3 priorities are assigned to other issues. A maintainer can be
33
+  assigned.
34
+- Non-critical issues and PR's can be removed from the milestone. Minor
35
+  changes, such as typo-fixes or omissions in the documentation can be
36
+  considered for inclusion in a patch release.
37
+
38
+## Deciding if a patch release should be done
39
+
40
+- Only a P0 can justify to proceed with the patch release.
41
+- P1, P2, and P3 issues/PR's should not influence the decision, and
42
+  should be moved to the X.Y.Z+1 milestone, or removed from the
43
+  milestone.
44
+
45
+> **Note**: If the next "major" release is imminent, the release captain
46
+> can decide to cancel a patch release, and include the patches in the
47
+> upcoming major release.
48
+
49
+> **Note**: Security releases are also "patch releases", but follow
50
+> a different procedure. Security releases are developed in a private
51
+> repository, released and tested under embargo before they become
52
+> publicly available.