Release Procedure
This page strives to provide a step-by-step guide on releasing a new DMC package. For larger considerations on the Release Process, please consult the Release Guidelines.
The build process is not covered in this section. Although with the migration to gitlab-CI
,
the procedure is now very similar among the different DMC projects. For complete
details, please consult the .gitlab-ci.yml
file of the project repository.
- Make sure all relevant DMC JIRA issues are
Closed
and the wantedFix version
is set - Make sure the
packaging/rpm/<name>.spec
file includes the correct package dependency versions - Increase the release number:
- In the spec file
- In the main
CMakeLists.txt
file
- Add author and description entries in the spec file changelog
- Add author and description entries in the
packaging/debian/changelog
file - Fill in the release notes (generally
RELEASE-NOTES
files):- Use the JIRA Releases notes: JIRA > Releases > Project > Release Notes
- Copy the text message, apply formatting and add it to the release notes file
- Commit these changes on
develop
branch, preferably as one commit. E.g.:Prepare release <version>
- Make sure the build/pipeline succeeds
- Change to
master
branch and mergedevelop
:git merge "develop" --message 'Merge branch "develop" for release <version>'
- Ideally, there should be no merge conflict. Otherwise, the development process went wrong somewhere
- Tag the master branch with the new version:
git tag <version>
- Most projects have the following version format:
v#.##.#
. Example:v2.20.0
- Davix uses the following version format:
R_#_#_#
. Example:R_0_8_0
- Note: Davix requires tags to be annotated. Example:
git tag --annotate --message "Tag for version 0.8.0" R_0_8_0
- Most projects have the following version format:
- Push the
master
branch and new tag to remote:git push --atomic origin master <tag>
- Once the pipeline succeeds, the release candidate RPMs should now be uploaded to RC repository
- Mark the JIRA version as
Released
in the JIRA Releases page - (Davix only): Publish a new release on the Davix GitHub Releases page
- Use the same release notes as from step 6
- The blessed tarball is the one generated by the
packaging/make-dist.sh
script, which is also the same one packaged into the source RPM
- Install the new release on FTS3-Pilot:
wassh --cluster fts/pilot/live --user root "yum update -y"
- If happy with the release, move it to production repository:
- Each tag pipeline has a publish job to move the latest packages from RC to production repository
- Announce the release!