This documents the procedures around creating patch-releases.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| 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. |