@@ -107,3 +107,83 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
107107for (auto const& aVol : * volList) { /* ...* / } // acceptable
108108for (auto const& volume : * volumes) { /* ...* / } // ✓ prefer
109109```
110+
111+
112+ # Creating a new Release
113+
114+ (This is basically for the release manager, so that we don't
115+ forget anything.)
116+
117+ ## Control the status
118+
119+ * Take a look at the
120+ [Milestone](https://github.com/FairRootGroup/FairRoot/milestones)
121+ for the release
122+
123+ Consider moving still open items to another milestone
124+
125+ ## Check the CI Coverage
126+
127+ * Remind/ask myself what platforms the release is targeting (I roughly
128+ target the last two years of releases for ubuntu/fedora, debian
129+ stable/oldstable + anything older, if relevant in GSI still)
130+ * Then I compare what is currently tested via CI and decide whether it
131+ needs an updates, e.g.
132+ * regenerate/update existing images (cover new FairSoft releases? get
133+ latest os updates to test closer to what a user may use)
134+ * add new images (new os releases? which ship new compiler major versions
135+ perhaps)
136+ * remove old images
137+ * For macs it involves similar steps, updating homebrew, perhaps the os
138+ or the command line tools
139+ * Fix issues resulting from previous step
140+
141+ ## Create a commit
142+
143+ On the `v{x.y}_patches` branch with comment `Bump v{x.y.z}`:
144+
145+ * Double check that the version number on the `project`
146+ line in [CMakeLists.txt](CMakeLists.txt) is correct
147+
148+ * Apply some final editorial changes to the
149+ [CHANGELOG](CHANGELOG.md) for the upcoming release
150+ * Remove the `(UNRELEASED)` tag on the header
151+ * Add the correct date
152+ * Go over the list and re-order things/etc (classical
153+ editorial changes)
154+
155+ * Apply editorial changes to [README](README.md)
156+
157+ * (Soon)
158+ * Check that `codemeta.json` and friends have been
159+ updated.
160+ * Get a zenodo entry ready
161+
162+ ## Push the patch to the repository:
163+
164+ * ```
165+ git push origin v{x.y}_patches
166+ ```
167+
168+ * Check the CI, so that all checks pass for the branch
169+
170+ ## Create, control and push the new tag to the repository:
171+
172+ ```
173+ git tag v{x.y.z} -a -s
174+ git show v{x.y.z}
175+ git push origin v{x.y.z}
176+ ```
177+
178+ ## Create a new realese on GitHub.
179+
180+ ## In certain cases the tag should be merged onto master:
181+
182+ ```
183+ git checkout master
184+ git merge origin/v{x.y}_patches
185+ git push mainrepo origin
186+ ```
187+
188+ The message, when prompted, should be ` Merge v{x.y.z} ` .
189+ The merge and push should not be forced.
0 commit comments