Skip to content

docs: Start on the Release Process #1319

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@
{
"type": "Other",
"name": "Vilela, Cristovao",
"orcid": "0000-0002-2088-0346"
"orcid": "0000-0002-2088-0346"
},
{
"type": "Other",
Expand Down
108 changes: 107 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Create a [Github Pull Request](https://github.com/FairRootGroup/FairRoot/compare
branch and base your PR against it.
* In rare cases (e.g. backports, some hotfixes) base against the appropriate
branch.
2. If you are a first time contributor, add a separate commit in your PR which
2. If you are a first-time contributor, add a separate commit in your PR which
adds your name to the [`CONTRIBUTORS`](CONTRIBUTORS) file.
3. Follow our [Coding Guidelines](#coding-guidelines).
4. Expect that a reviewer will ask you for restructuring your commits! This
Expand Down Expand Up @@ -128,3 +128,109 @@ for (auto const& listEntry : *list) { /*...*/ } // avoid
for (auto const& aVol : *volList) { /*...*/ } // acceptable
for (auto const& volume : *volumes) { /*...*/ } // ✓ prefer
```


# Creating a new Release

(This is basically for the release manager.
So that we don't forget anything.)

## Control the status

* Take a look at the
[Milestone](https://github.com/FairRootGroup/FairRoot/milestones)
for the release

Consider moving still open items to another milestone

## Check the CI Coverage

* Remind/ask myself what platforms the release is targeting (I roughly
target the last two years of releases for ubuntu/fedora, debian
stable/oldstable + anything older, if relevant in GSI still)
* Then I compare what is currently tested via CI and decide whether it
needs an updates, e.g.
* regenerate/update existing images (cover new FairSoft releases? get
latest os updates to test closer to what a user may use)
* add new images (new os releases? which ship new compiler major versions
perhaps)
* remove old images
* For macs it involves similar steps, updating homebrew, perhaps the os
or the command line tools
* Fix issues resulting from previous step

## Create a commit

On the `v{x.y}_patches` branch with comment `Bump v{x.y.z}`:

* Double check that the version number on the `project`
line in [CMakeLists.txt](CMakeLists.txt) is correct

* Apply some final editorial changes to the
[CHANGELOG](CHANGELOG.md) for the upcoming release
* Remove the `(UNRELEASED)` tag on the header
* Add the correct date
* Go over the list and re-order things/etc (classical
editorial changes)

* Apply editorial changes to [README](README.md)

* (Soon)
* Check that `codemeta.json` and friends have been
updated.
* Get a zenodo entry ready

## Push the patch to the repository:

* ```sh
git push origin v{x.y}_patches
```

* Check the CI so that all checks pass for the branch

## Create, control and push the new tag to the repository:

```sh
git tag v{x.y.z} -a -s
git show v{x.y.z}
git push origin v{x.y.z}
```

## Create a new release on GitHub.

## In certain cases the tag should be merged onto master:

```sh
git checkout master
git merge origin/v{x.y}_patches
git push origin master
```

The message, when prompted, should be `Merge v{x.y.z}`.
The merge and push should not be forced.

### Should the patch branch diverge too much from master:

```sh
git checkout master
git merge -s ours v{x.y}_patches
git checkout --detach v{x.y}_patches
git reset --soft master
git checkout master
git commit --amend -C HEAD
git push origin master
```

This merges the patch branch onto master, discarding
any changes from master and keeps changes from patches.

## For major versions merge master back on dev:

```sh
git checkout dev
git merge master
git push origin dev
```

This reunites the dev and master, making future
merging easier.
Loading