bzip2/prepare-release.sh
Mark Wielaard 475173c2d0 Add generation of bzip2.txt and bzip2.1.preformatted to Makefile.
And remove both pages from the repository since the will now be
generated by make dist. Also don't try to update them in
prepare-release.sh script.
2019-07-21 20:10:38 +02:00

83 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# Script to run to prepare a new release.
# It will update the release number and tell you to update the
# CHANGES file and to double check everything looks before doing
# the release commit and tagging.
# Afterwards you probably want to run release-update.sh to upload
# the release and update the website at https://sourceware.org/bzip2/
# Any error is fatal
set -e
# We take one argument, the version (e.g. 1.0.7)
if [ $# -ne 1 ]; then
echo "$0 <version> (e.g. 1.0.7)"
exit 1
fi
LANG=C
VERSION="$1"
DATE=$(date +"%d %B %Y")
DAY=$(date +"%d")
MONTH=$(date +"%B")
SHORTMONTH=$(date +"%b")
YEAR=$(date +"%Y")
# Replace the version strings and date ranges in the comments
VER_PREFIX="bzip2/libbzip2 version "
sed -i -e "s@${VER_PREFIX}[0-9].*@${VER_PREFIX}${VERSION} of ${DATE}@" \
-e "s@ (C) \([0-9]\+\)-[0-9]\+ @ (C) \1-$YEAR @" \
CHANGES LICENSE Makefile* README* *.c *.h *.pl *.sh
# Add an entry to the README
printf "%2s %8s %s\n" "$DAY" "$MONTH" "$YEAR (bzip2, version $VERSION)" \
>> README
# Update manual
sed -i -e "s@ENTITY bz-version \".*\"@ENTITY bz-version \"$VERSION\"@" \
-e "s@ENTITY bz-date \".*\"@ENTITY bz-date \"$DAY $MONTH $YEAR\"@" \
-e "s@ENTITY bz-lifespan \"\([0-9]\+\)-[0-9]\+\"@ENTITY bz-lifespan \"\1-$YEAR\"@"\
entities.xml
# bzip2.1 should really be generated from the manual.xml, but currently
# isn't, so explicitly change it here too.
sed -i -e "s@This manual page pertains to version .* of@This manual page pertains to version $VERSION of@" \
-e "s@sorting file compressor, v.*@sorting file compressor, v$VERSION@" \
bzip2.1
# Update sources. All sources, use bzlib_private.
# Except bzip2recover, which embeds a version string...
sed -i -e "s@^#define BZ_VERSION \".*\"@#define BZ_VERSION \"${VERSION}, ${DAY}-${SHORTMONTH}-${YEAR}\"@" \
bzlib_private.h
sed -i -e "s@\"bzip2recover .*: extracts blocks from damaged@\"bzip2recover ${VERSION}: extracts blocks from damaged@" \
bzip2recover.c
# And finally update the version/dist/so_name in the Makefiles.
sed -i -e "s@^DISTNAME=bzip2-.*@DISTNAME=bzip2-${VERSION}@" \
Makefile
sed -i -e "s@libbz2\.so\.[0-9]\.[0-9]\.[0-9]*@libbz2\.so\.${VERSION}@" \
Makefile-libbz2_so
echo "Now make sure the diff looks correct:"
echo " git diff"
echo
echo "And make sure there is a $VERSION section in the CHANGES file."
echo
echo "Double check:"
echo " make clean && make dist && make clean && make -f Makefile-libbz2_so"
echo
echo "Does everything look fine?"
echo
echo "git commit -a -m \"Prepare for $VERSION release.\""
echo "git push"
echo
echo "Wait for the buildbot to give the all green!"
echo "Then..."
echo
echo "git tag -s -m \"bzip2 $VERSION release\" bzip2-$VERSION"
echo "git push --tags"
echo
echo "./release-update.sh"