You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ReleaseGuidelines.md
+29-28Lines changed: 29 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,12 @@ MDS will see regular updates and new [releases][mds-releases]. This document des
5
5
## Table of Contents
6
6
7
7
*[Versioning](#versioning)
8
-
*[Branch Mechanics](#branch-mechanics)
9
8
*[Release Process](#process)
10
9
*[Goals](#goals)
11
10
*[Roles](#roles)
12
11
*[Schedule](#schedule)
13
12
*[Communication and Workflow](#communication-and-workflow)
13
+
*[Branch Mechanics](#branch-mechanics)
14
14
*[Checklist](#release-checklist)
15
15
16
16
## Versioning
@@ -25,33 +25,6 @@ At this early stage, MDS will be moving relatively quickly with an eye toward st
25
25
26
26
For now, MDS will maintain *two concurrent (MINOR) versions* (e.g. if `0.3.0` were the current version, the `0.2.x` series would continue to receive maintenance in addition to `0.3.x`).
27
27
28
-
## Branch Mechanics
29
-
30
-
Aside from using `git tags` as mentioned earlier, here we outline a branching strategy to handle ongoing maintenance changes in parallel with features for new releases.
31
-
32
-
### Primary branches
33
-
34
-
At a high-level, there are two primary branches:
35
-
36
-
*[`master`][mds-master] represents the current stable release (i.e. the most recent tag) of MDS. Development work generally *does not* happen here, but is rather merged from elsewhere.
37
-
38
-
*[`dev`][mds-dev] represents work on the next MINOR release, and is the *long-term* development branch.
39
-
40
-
### Feature branches
41
-
42
-
Work on new features for MDS happens in branches cut from `dev`. When the feature is ready for review, submit a PR against `dev`, ideally with any merge conflicts already resolved. `dev` serves as the collection point for all new feature work.
43
-
44
-
### Release branches
45
-
46
-
In anticipation of ongoing maintenance, a branch will be created for the current release series. For example, at the time `0.2.0` is released, a branch will be cut from `master` for `0.2.x`.
47
-
48
-
This *release branch* represents the current state of that release series. All maintenance/bugfix work for the series is collected in this branch. To work on a patch, cut a branch from the release branch. When ready, submit a PR against the release branch.
49
-
50
-
When a PATCH release is ready (e.g. `0.2.0` to `0.2.1`), the release branch (e.g. `0.2.x`) is merged to `master` (to make the release official) and `dev` is rebased onto `master` (to ensure the patch is incorporated with any new work).
51
-
52
-
Breaking changes should always be merged to develop. These may be merged at any time and will be incorporated into the next minor release. For non-breaking changes, these should either be merged to develop if the next release is a minor release, or to the appropriate release branch if the next version is a patch release. During each cycle, we merge changes to both dev and 0.n.x branches, so breaking changes can be proposed and worked on at any time
53
-
54
-
As stated earlier, at this time MDS will maintain *two concurrent MINOR versions*. This means that when a MINOR release is made (e.g. `0.4.0`), work on the outgoing series (`0.2.x`, in this case) ceases and its release branch is removed.
55
28
56
29
## Release Process
57
30
The sections below define the release process itself, including timeline, roles, and communication best practices.
@@ -115,6 +88,34 @@ The following best practices are intended to create clarity around each release
115
88
116
89
* Proposed changes should come in the form of PRs to give the community ample awareness and time for feedback
117
90
91
+
## Branch Mechanics
92
+
93
+
Aside from using `git tags` as mentioned earlier, here we outline a branching strategy to handle ongoing maintenance changes in parallel with features for new releases.
94
+
95
+
### Primary branches
96
+
97
+
At a high-level, there are two primary branches:
98
+
99
+
*[`master`][mds-master] represents the current stable release (i.e. the most recent tag) of MDS. Development work generally *does not* happen here, but is rather merged from elsewhere.
100
+
101
+
*[`dev`][mds-dev] represents work on the next MINOR release, and is the *long-term* development branch.
102
+
103
+
### Feature branches
104
+
105
+
Work on new features for MDS happens in branches cut from `dev`. When the feature is ready for review, submit a PR against `dev`, ideally with any merge conflicts already resolved. `dev` serves as the collection point for all new feature work.
106
+
107
+
### Release branches
108
+
109
+
In anticipation of ongoing maintenance, a branch will be created for the current release series. For example, at the time `0.2.0` is released, a branch will be cut from `master` for `0.2.x`.
110
+
111
+
This *release branch* represents the current state of that release series. All maintenance/bugfix work for the series is collected in this branch. To work on a patch, cut a branch from the release branch. When ready, submit a PR against the release branch.
112
+
113
+
When a PATCH release is ready (e.g. `0.2.0` to `0.2.1`), the release branch (e.g. `0.2.x`) is merged to `master` (to make the release official) and `dev` is rebased onto `master` (to ensure the patch is incorporated with any new work).
114
+
115
+
Breaking changes should always be merged to develop. These may be merged at any time and will be incorporated into the next minor release. For non-breaking changes, these should either be merged to develop if the next release is a minor release, or to the appropriate release branch if the next version is a patch release. During each cycle, we merge changes to both dev and 0.n.x branches, so breaking changes can be proposed and worked on at any time
116
+
117
+
As stated earlier, at this time MDS will maintain *two concurrent MINOR versions*. This means that when a MINOR release is made (e.g. `0.4.0`), work on the outgoing series (`0.2.x`, in this case) ceases and its release branch is removed.
118
+
118
119
## Release Checklist
119
120
120
121
The following steps **must** be followed for **every** release of MDS:
0 commit comments