Skip to content

Commit cabbbe8

Browse files
docs: Start on the Release Process
Be more transparent about our release process. Co-Authored: @karabowi Co-Authored: @dennisklein
1 parent 23a39ba commit cabbbe8

1 file changed

Lines changed: 81 additions & 1 deletion

File tree

CONTRIBUTING.md

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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.
1717
3. Follow our [Coding Guidelines](#coding-guidelines).
1818
4. Expect that a reviewer will ask you for restructuring your commits! This
@@ -128,3 +128,83 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
128128
for (auto const& aVol : *volList) { /*...*/ } // acceptable
129129
for (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

Comments
 (0)