Skip to content

Commit 9abcbff

Browse files
docs: Start on the Release Process
We should be transparent about our release process. Co-Authored: @karabowi Co-Authored: @dennisklein
1 parent 99be5f4 commit 9abcbff

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

CONTRIBUTING.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,83 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
107107
for (auto const& aVol : *volList) { /*...*/ } // acceptable
108108
for (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 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

Comments
 (0)