Release process
In order to have a well-documented release process, please add any necessary steps to the list:
-
Make sure to use GnuPG key signing with GitHub- https://help.github.com/articles/signing-commits-with-gpg/
-
Create new test matrix in wiki at: https://github.com/rear/rear/wiki
-
Update milestone planning at: https://github.com/rear/rear/issues/milestones
-
Announce freeze period and ask for community testing on rear-users@lists.relax-and-recover.org
This all becomes part of a make release target ! (Wishful thinking ?)
-
Finalize commits/versions
-
Update the ChangeLog file (when we have one), or the release notes on the rear web pages
-
To compile the information for the release notes use the following commands:
-
git log --format="* %s : %b %n" --topo-order git log --format="%ae %ad%n%s :%n%b%n" --graph | fmt -78 -t | less
to find all modifications since last release.
-
Convert the release notes from the ReaR web pages into a simple text file:
export LC_ALL=POSIX export LANG=POSIX w3m -dump -cols 78 http://relax-and-recover.org/documentation/release-notes-2-xx | iconv -f UTF-8 -t ASCII//TRANSLIT | sed -e 's/^ ? / - /' > doc/rear-release-notes.txt
-
Add the list of contributors which did something for this new release via (in this example the previous release was 2.6):
git log --format="%aN" $(git merge-base master 2.6)..master | sort -u | sed -e 's/,/, /g'
-
review doc/rear-release-notes.txt for broken lines (visual check)
-
edit/update rear.8.adoc man page with new version nr and go over it to modify what is needed
-
usr/sbin/rear '(modify VERSION = )'
-
packaging/rpm/rear.spec '(modify Version:)'
-
packaging/debian/changelog '(add changelog entries)'
-
Tag version in master branch:
-
git tag -s -a rear-2.xx -m "Rear release 2.xx" git tag -s -a 2.xx -m "Rear release 2.xx"
-
Test packaging configuration (RPM, DEB, …)
make rpm OFFICIAL=1 make deb OFFICIAL=1 rpmlint -vi dist/rear-2.x-1.*.rpm rpmlint -vi dist/rear-2.x-1.*.src.rpm make dist OFFICIAL=1 (for the tar-ball to be used to upload to SourceForge and Fedora)
-
bodhi builds (fedora-update); or use the fedora release procedures with git
-
Commit above changes to version branch (if any)
-
Create OBS build
-
-
make obs OFFICIAL=1
-
If everything looks OK
-
-
git push --tags
-
If you need afterwards some fixes to be applied you can remove the tags as follow:
-
git tag -d 2.xx git tag -d rear-2.xx git push origin :refs/tags/2.xx git push origin :refs/tags/rear-2.xx
-
Mark in master branch where the release happened:
git commit -S --allow-empty -m 'ReaR 2.x release'
-
Create a new 'stable' branch in Git - use the 'Code' → 'Switch branch' field
-
Update Rear project at the OpenSUSE Build Service (Archiving:Backup:Rear)
-
Review the supported Linux distributions
-
-
Website at: http://relax-and-recover.org/
-
Add link on the documentation page of the Release Notes for the new release
-
Mailing lists: rear-announce@lists.relax-and-recover.org and rear-users@lists.relax-and-recover.org