apport/do-release

26 lines
815 B
Bash
Executable File

#!/bin/sh
set -eu
# This script does all the steps necessary for doing a new upstream release. It
# should solely be used by upstream developers, distributors do not need to
# worry about it.
[ -z "$(git status --porcelain)" ] || {
echo "Uncommitted changes, aborting" >&2
exit 1
}
version=$(grep '(UNRELEASED)' NEWS.md | cut -f1 -d' ')
[ -n "$version" ] || {
echo "no UNRELEASED in NEWS.md" >&2
exit 1
}
sed -i -r "s/__version__ = '[0-9.]*'/__version__ = '${version}'/" apport/ui.py
sed -i "s/(UNRELEASED)/$(date '+(%Y-%m-%d)')/" NEWS.md
git commit -s -m "Release apport $version" apport/ui.py NEWS.md
git tag "$version"
git archive --format=tar --prefix="apport-${version}/" "$version" | xz -z -9 > "../apport-${version}.tar.xz"
echo "Release tarball exported to ../apport-${version}.tar.xz"