Skip to content

Commit ee63d52

Browse files
committed
Drafting a Releases and Milestones section for discussing milestone and branch naming practices
1 parent 297cf8f commit ee63d52

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,41 @@ Currently, the documentation files for each core component are derived from temp
6868

6969
As needed or requested, code repositories are reviewed for promotion. To start this process, email [the Samvera Tech Google Group](https://groups.google.com/g/samvera-tech) with a request. Provide documentation that all of the above requirements have been met. Ask for a spot on the next developer’s call to discuss the issue. Once the promotion has been decided, another email should go out to the list with an announcement.
7070

71+
## Releases and GitHub Milestones
72+
73+
Releases for core components must please follow the [Semantic Versioning specification](https://semver.org/). Releases must be addressed using both [GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) and, where appropriate, [RubyGems](https://guides.rubygems.org/publishing/). Further it is recommended that a `CHANGELOG` please also be updated to document the most recent changes (please see URL and URL for an outline of best practices).
74+
75+
Releasing involves creating a git tag tracking the last git commit to be included within the new release. As each release is published, it may be helpful to track GitHub issues tied using [Milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones) specifying the next potential release in each series of releases. For example, say that there exists a component with three major releases:
76+
77+
- 3.0.0
78+
- 2.2.1
79+
- 1.1.2
80+
81+
Following this approach, at minimum, three milestones would then exist for the next successive `PATCH` release in each series:
82+
83+
- 3.0.1
84+
- 2.2.2
85+
- 1.1.3
86+
87+
There is no required number of series of releases which must actively remain supported beyond the current series. Further, one may also wish to take a more proactive approach, and manage future `MINOR` releases as well:
88+
89+
- 3.1.0
90+
- 3.0.2
91+
- 2.3.0
92+
- 2.2.2
93+
- 1.2.0
94+
- 1.1.3
95+
96+
### Branches
97+
98+
Often times when maintaining multiple series of releases, it is quite helpful to have a set of matching `git branches` for these releases. Returning to this example case, one could have the following branches:
99+
100+
- `3.x-stable`
101+
- `2.x-stable`
102+
- `1.x-stable`
103+
104+
Further branches should not be necessary, as `MINOR` releases should always be backwards compatible (i. e. those using release 2.2.1 should be able to upgrade to 2.3.0 without encountering errors).
105+
71106
## Samvera Component Repository Labels
72107

73108
The following common set of standard GitHub issue labels are available for each repository, and their usage is encouraged please:

0 commit comments

Comments
 (0)