backupninja/RELEASE.md

91 lines
2.4 KiB
Markdown
Raw Normal View History

Upstream
========
* run the full testsuite
vagrant rsync local && \
vagrant ssh -c "build-backupninja.sh && sudo /vagrant/test/test.sh"
* prepare the environment:
export VERSION=x.y.z
2021-01-21 22:27:14 +01:00
* update `configure.ac` and `CHANGELOG.md`
perl -pi -E \
"s{^AC_INIT\(\[backupninja\],\[[0-9.\-rc]+\],}{AC_INIT([backupninja],[$VERSION],}" \
configure.ac
2021-01-21 22:27:14 +01:00
RELEASE_DATE=$(LC_ALL=C date '+%Y-%m-%d'); perl -pi -E \
"s{^## \[Unreleased\].*}{## [$VERSION] - $RELEASE_DATE}" \
CHANGELOG.md
* commit and created signed tag
git commit configure.ac CHANGELOG.md \
-m "Releasing backupninja $VERSION" && \
git clean -fdx -e .vagrant && \
git tag -s "backupninja-$VERSION" \
-m "Releasing backupninja $VERSION" && \
./autogen.sh && \
./configure && \
make dist
* compare the content of the generated tarball with the content of the
previous one
diffoscope --text-color=always ../tarballs/backupninja-x.y.z.tar.gz \
backupninja-$VERSION.tar.gz | less -R
* move the tarball outside of the Git working copy and clean up
mkdir -p ../tarballs && \
mv backupninja-$VERSION.tar.gz ../tarballs/ && \
make distclean && \
git clean -fdx -e .vagrant
Debian
======
Prepare a new package:
git checkout debian && \
gbp import-orig --upstream-vcs-tag="backupninja-$VERSION" \
../tarballs/backupninja-$VERSION.tar.gz && \
gbp dch --auto && \
dch -e && \
export DEBIAN_VERSION=$(dpkg-parsechangelog -SVersion) && \
git commit debian/changelog \
-m "Releasing backupninja ($DEBIAN_VERSION) to Debian unstable" && \
gbp buildpackage
Install the `.deb` and test.
Release
=======
* push the release to GitLab
git checkout debian && \
gbp buildpackage --git-tag-only --git-sign-tags && \
git push --follow-tags origin \
master:master \
debian:debian \
pristine-tar:pristine-tar \
upstream:upstream
* create a new GitLab release
* announce the release on the backupninja mailing-list,
pointing to the milestone web page
* upload to Debian or ask someone listed in the `Uploaders` control
field to review and upload
Open the next development cycle
===============================
* `git checkout master`
* Add an empty new section in `CHANGELOG.md`, commit and push.