@@ -107,3 +107,83 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
107
107
for (auto const& aVol : * volList) { /* ...* / } // acceptable
108
108
for (auto const& volume : * volumes) { /* ...* / } // ✓ prefer
109
109
```
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 release 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