~gma500/emgd/jockey

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh -e

# 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 "`bzr status`" ] || {
    echo "Uncommitted changes, aborting" >&2
    exit 1
}

version="$1"
[ -n "$version" ] || {
    echo "Usage: $0 <version>" >&2
    exit 1
}

# check manifest
./setup.py build
./setup.py sdist -o
./setup.py clean -a
missing=$(for f in `find -type f ! -path '*.bzr*' ! -name '.coverage' ! -name 'MANIFEST*' ! -name do-release ! -name TODO`; do grep -qFx "${f#./}" < MANIFEST || echo $f; done)
if [ -n "$missing" ]; then
    echo "MANIFEST is missing the following files:"
    echo "$missing"
    exit 1;
fi

set -x

sed -i -r "s/(^[[:space:]]*version[[:space:]]*=[[:space:]]*').*\$/\\1${version}',/" setup.py
bzr commit -m "release $version"
bzr tag "$version"

bzr log -v --log-format 'gnu' > ChangeLog
./setup.py sdist -d ..
./setup.py clean -a
rm ChangeLog MANIFEST
gpg --armor --sign --detach-sig ../jockey-$version.tar.gz