3aee1ac3a1
release/bugs: Prints a list of bugs that are mentioned in git commits for a git revision, since previous release. - Very useful for updating the CHANGELOG file! release/go: Tests a git revision for correct compilation, and prepares files for release. - Makes the tarball - Makes a GPG signature for the tarball - Tags the release - Spits out URLs to edit and gives the changelog for copy/paste. release/email: Sends an email to the Openbox mailing list with the changelog and details about the release. Call this with the same parameters used for running release/go once it is finished, and the files are uploaded, etc. - Also emails mikachu re freshmeat.net
38 lines
929 B
Bash
Executable file
38 lines
929 B
Bash
Executable file
#!/bin/sh
|
|
|
|
help() {
|
|
echo "Usage: $0 <revision> [lastrelease]"
|
|
echo
|
|
echo " <revision> The revision which should be used for release."
|
|
echo " [lastrelease] The revision of the most recent release made."
|
|
echo " By default it uses the most recent release-tag."
|
|
exit 1
|
|
}
|
|
|
|
error() {
|
|
echo "error: $1"
|
|
exit 1
|
|
}
|
|
|
|
test -e "./openbox/openbox.c" || \
|
|
error "must be run from the project's top level directory"
|
|
|
|
REV="$1"
|
|
test -z "$REV" && help
|
|
RELEASE_SHA=$(git rev-parse "$REV")
|
|
test $? = 0 || error "revision $REV not found"
|
|
|
|
LAST="$2"
|
|
if test -z "$LAST"; then
|
|
LAST=$(git describe --match 'release-*' $REV)
|
|
test $? = 0 || \
|
|
error "unable to find last release"
|
|
fi
|
|
|
|
#### CHANGELOG #####
|
|
git log --no-merges $LAST..$REV --oneline|egrep '[bB][uU][Gg] #?[0-9]+'
|
|
git log --no-merges $LAST..$REV --oneline | \
|
|
perl -n -e'/[bB][uU][Gg] #?([0-9]+)/ && print "#$1, "'
|
|
perl -e'print "\b\b \n"'
|
|
|
|
exit 0
|