@@ -12,7 +12,7 @@ Create a [Github Pull Request](https://github.com/FairRootGroup/FairRoot/compare
1212 branch and base your PR against it.
1313 * In rare cases (e.g. backports, some hotfixes) base against the appropriate
1414 branch.
15- 2 . If you are a first time contributor, add a separate commit in your PR which
15+ 2 . If you are a first- time contributor, add a separate commit in your PR which
1616 adds your name to the [ ` CONTRIBUTORS ` ] ( CONTRIBUTORS ) file.
17173 . Follow our [ Coding Guidelines] ( #coding-guidelines ) .
18184 . Expect that a reviewer will ask you for restructuring your commits! This
@@ -128,3 +128,83 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
128128for (auto const& aVol : * volList) { /* ...* / } // acceptable
129129for (auto const& volume : * volumes) { /* ...* / } // ✓ prefer
130130```
131+
132+
133+ # Creating a new Release
134+
135+ (This is basically for the release manager.
136+ So that we don't forget anything.)
137+
138+ ## Control the status
139+
140+ * Take a look at the
141+ [Milestone](https://github.com/FairRootGroup/FairRoot/milestones)
142+ for the release
143+
144+ Consider moving still open items to another milestone
145+
146+ ## Check the CI Coverage
147+
148+ * Remind/ask myself what platforms the release is targeting (I roughly
149+ target the last two years of releases for ubuntu/fedora, debian
150+ stable/oldstable + anything older, if relevant in GSI still)
151+ * Then I compare what is currently tested via CI and decide whether it
152+ needs an updates, e.g.
153+ * regenerate/update existing images (cover new FairSoft releases? get
154+ latest os updates to test closer to what a user may use)
155+ * add new images (new os releases? which ship new compiler major versions
156+ perhaps)
157+ * remove old images
158+ * For macs it involves similar steps, updating homebrew, perhaps the os
159+ or the command line tools
160+ * Fix issues resulting from previous step
161+
162+ ## Create a commit
163+
164+ On the `v{x.y}_patches` branch with comment `Bump v{x.y.z}`:
165+
166+ * Double check that the version number on the `project`
167+ line in [CMakeLists.txt](CMakeLists.txt) is correct
168+
169+ * Apply some final editorial changes to the
170+ [CHANGELOG](CHANGELOG.md) for the upcoming release
171+ * Remove the `(UNRELEASED)` tag on the header
172+ * Add the correct date
173+ * Go over the list and re-order things/etc (classical
174+ editorial changes)
175+
176+ * Apply editorial changes to [README](README.md)
177+
178+ * (Soon)
179+ * Check that `codemeta.json` and friends have been
180+ updated.
181+ * Get a zenodo entry ready
182+
183+ ## Push the patch to the repository:
184+
185+ * ```sh
186+ git push origin v{x.y}_patches
187+ ```
188+
189+ * Check the CI so that all checks pass for the branch
190+
191+ ## Create, control and push the new tag to the repository:
192+
193+ ``` sh
194+ git tag v{x.y.z} -a -s
195+ git show v{x.y.z}
196+ git push origin v{x.y.z}
197+ ```
198+
199+ ## Create a new release on GitHub.
200+
201+ ## In certain cases the tag should be merged onto master:
202+
203+ ``` sh
204+ git checkout master
205+ git merge origin/v{x.y}_patches
206+ git push mainrepo origin
207+ ```
208+
209+ The message, when prompted, should be ` Merge v{x.y.z} ` .
210+ The merge and push should not be forced.
0 commit comments