Skip to content
Snippets Groups Projects
Commit 8f29e112 authored by intrigeri's avatar intrigeri
Browse files

Automate and document more of the release process.

parent 03ecc73a
No related branches found
No related tags found
No related merge requests found
Upstream
========
* update version in `configure.in`
* prepare the environment:
* update first line of `ChangeLog`
export VERSION=x.y.z
* commit:
* update `configure.in` and `ChangeLog`
git commit configure.in ChangeLog \
-m "Releasing backupninja $VERSION"
perl -pi -E \
"s{^AC_INIT\(\[backupninja\],\[[0-9.]+\],}{AC_INIT([backupninja],[$VERSION],}" \
configure.in && \
RELEASE_DATE=$(LC_ALL=C date '+%B %d, %Y') perl -pi -E \
"s{^version\s+[0-9.]+\s+--\s+UNRELEASED$}{version $VERSION -- $RELEASE_DATE}" \
ChangeLog
* create the tarball:
* commit, tag and create the tarball:
git commit configure.in ChangeLog \
-m "Releasing backupninja $VERSION" && \
git clean -fdx && \
git tag -s "backupninja-$VERSION" \
-m "Releasing backupninja $VERSION"
./autogen.sh
./configure
-m "Releasing backupninja $VERSION" && \
./autogen.sh && \
./configure && \
make dist
* compare the content of the generated tarball with the content of the
previous one
* `mv backupninja-$VERSION.tar.gz ../tarballs/`
* 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
* cleanup: `make distclean`
* Install (extract tarball, `.configure && make && sudo make install`)
and test.
Debian
======
* sign the release:
Prepare a new package:
cd ../tarballs
gpg --armor --detach-sign backupninja-$VERSION.tar.gz
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
* upload the generated tarball and detached signature to
https://0xacab.org/riseuplabs/backupninja/
Install the `.deb` and test.
* push master branch and tags:
Release
=======
git push origin master --follow-tags
* sign the release and push it to Git:
* announce on the backupninja mailing-list
gpg --armor --detach-sign \
../tarballs/backupninja-$VERSION.tar.gz && \
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
Debian
======
* upload the upstream tarball and detached signature to the GitLab
milestone page with *Edit**Attach a file*
* 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
ln -s backupninja-$VERSION.tar.gz backupninja_$VERSION.orig.tar.gz
cd ../git
git checkout debian
gbp import-orig --upstream-vcs-tag="backupninja-$VERSION" \
../tarballs/backupninja-$VERSION.tar.gz
gbp dch --auto
dch -e
git commit debian/changelog -m "Releasing backupninja ($DEBIAN_VERSION) to Debian unstable"
git tag -s -m "Releasing backupninja ($DEBIAN_VERSION) to Debian unstable" backupninja_debian/$DEBIAN_VERSION
gbp buildpackage
Open the next development cycle
===============================
* push the `debian` branch
* publish the source package somewhere
* ask someone listed in the `Uploaders` control field to review and upload
* push the tag, once uploaded to Debian
* `git checkout master`
* Add an empty new section in `ChangeLog`, commit and push.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment