Release 10.3.0
### When the previous release branch is created:
- [x] Raise the library version (`MAJOR_VERSION`/`MINOR_VERSION`/`PATCH_VERSION`
in CMakeLists.txt) on `main`
- [x] Tag the commit where the library version is raised as `$major.$minor.$patch-dev`
### At the beginning of the 6 month release cycle:
- [x] Appoint a release manager who is responsible for the release process
and create the release issue with the contents of this document between
the `start of issue`/`end of issue` comments
- [x] Create a milestone with due date
- [x] Fill the milestone with issues
### 6 weeks before the release date:
- [x] Create an issue to update RELEASE_NOTES.md and assign it to someone else
- [ ] Announce (slack: `kernel`) that there are two weeks left before the first release candidate
- [ ] \(TSD maintainer\) Update TSD/distribution.properties to see if it works
with cppTango
- [x] \(TSD maintainer\) Create issues for all dependent subprojects and ask for an update
### 4 weeks before the release date:
- [x] Determine if we have broken API/ABI compatibility for this release and
make sure that the SO_VERSION is correct in the base CMakeLists.txt.
- [x] Create a release branch named `release/$major.$minor.$patch` off `main`. From
now on all merge requests for this release have to be done against this branch.
- [x] Change the target branch of all MRs which should be part of this release to the new
release branch
- [x] Disable the `pages` job on the `main` branch
#### RC phase:
- [x] Tag the repo (`$major.$minor.$patch-rc$X`), this automatically creates a
release and uploads the windows packages
- [ ] \(TSD maintainer\) Update TSD to use the new tag, merge it and tag as well
- [x] Advertise the new release candidate on the `tango-info` mailing list and mattermost (channel: `general`)
During the RC phase it is advisable to only merge non-intrusive MRs to avoid
the possibility of last-minute regressions.
Creating a new release candidate should be redone every week when more MRs have been merged.
### At the release date:
All steps from the release candidate phase above:
- [x] Tag the release (`$major.$minor.$patch`)
- [x] Update for TSD
- [x] Advertise new release
and finally
- [x] ~~Delete release branch~~ No longer doing that, RELEASING.md will be changed
- [x] Allow the `pages` job to run on `main` again
issue