annotate scripts/make-release @ 7363:6af08d44daa8

git: fix push to empty repo (Issue 323) Git would fail to log revisions when the list of heads to exclude included an empty string (in place of the pushed ref). To avoid that, skip the skipped revision instead of making it an empty string. `git log --not` works fine without providing any revisions to "not". Verify in test_push_new_repo_git that it actually logged the push.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 08 Aug 2018 02:23:11 +0200
parents b45994c0779e
children cb8de929ecf0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
1 #!/bin/bash
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
2 set -e
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
3 set -x
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
4
7303
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
5 cleanup()
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
6 {
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
7 echo "Removing venv $venv"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
8 rm -rf "$venv"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
9 }
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
10
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
11 echo "Checking that you are NOT inside a virtualenv"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
12 [ -z "$VIRTUAL_ENV" ]
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
13
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
14 venv=$(mktemp -d --tmpdir kallithea-release-XXXXX)
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
15 trap cleanup EXIT
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
16
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
17 echo "Setting up a fresh virtualenv in $venv"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
18 virtualenv -p python2 "$venv"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
19 . "$venv/bin/activate"
f5b5749113aa make-release: use a fresh virtualenv for building the release
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7302
diff changeset
20
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
21 echo "Install/verify tools needed for building and uploading stuff"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
22 pip install --upgrade -e .
7191
dba4e770d4b6 make-release: cleanup and fix bitrot
Mads Kiilerich <mads@kiilerich.com>
parents: 6791
diff changeset
23 pip install --upgrade -r dev_requirements.txt Sphinx Sphinx-PyPI-upload
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
24
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
25 echo "Cleanup and update copyrights ... and clean checkout"
7191
dba4e770d4b6 make-release: cleanup and fix bitrot
Mads Kiilerich <mads@kiilerich.com>
parents: 6791
diff changeset
26 scripts/run-all-cleanup
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
27 scripts/update-copyrights.py
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
28 hg up -cr .
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
29
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
30 echo "Make release build from clean checkout in build/"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
31 rm -rf build dist
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
32 hg archive build
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
33 cd build
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
34
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
35 echo "Check MANIFEST.in"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
36 sed -e 's/[^ ]*[ ]*\([^ ]*\).*/\1/g' MANIFEST.in | grep -v '^node_modules/bootstrap\|^kallithea/public/css/style.css' | xargs ls -lad
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
37
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
38 echo "Build dist"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
39 python2 setup.py compile_catalog
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
40 python2 setup.py sdist
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
41
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
42 echo "Verify VERSION from kallithea/__init__.py"
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
43 namerel=$(cd dist && echo Kallithea-*.tar.gz)
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
44 namerel=${namerel%.tar.gz}
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
45 version=${namerel#Kallithea-}
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
46 ls -l $(pwd)/dist/$namerel.tar.gz
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
47 echo "Releasing Kallithea $version in directory $namerel"
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
48
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
49 echo "Verify dist file content"
7191
dba4e770d4b6 make-release: cleanup and fix bitrot
Mads Kiilerich <mads@kiilerich.com>
parents: 6791
diff changeset
50 diff -u <((hg mani | grep -v '^\.hg') | LANG=C sort) <(tar tf dist/Kallithea-$version.tar.gz | sed "s|^$namerel/||" | grep . | grep -v '^kallithea/i18n/.*/LC_MESSAGES/kallithea.mo$\|^Kallithea.egg-info/\|^PKG-INFO$\|/$' | LANG=C sort)
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
51 ! tar tf dist/Kallithea-$version.tar.gz | grep "$namerel/node_modules/bootstrap/\$"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
52
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
53 echo "Verify docs build"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
54 python2 setup.py build_sphinx # not used yet ... but we want to make sure it builds
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
55
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
56 cat - << EOT
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
57
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
58 Now, make sure
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
59 * all tests are passing
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
60 * release note is ready
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
61 * announcement is ready
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
62 * source has been pushed to https://kallithea-scm.org/repos/kallithea
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
63
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
64 EOT
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
65
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
66 echo "Verify current revision is tagged for $version"
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
67 hg log -r "'$version'&." | grep .
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
68
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
69 echo -n "Enter \"pypi\" to upload Kallithea $version to pypi: "
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
70 read answer
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
71 [ "$answer" = "pypi" ]
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
72
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
73 echo "Upload docs to pypi"
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
74 # See https://wiki.python.org/moin/PyPiDocumentationHosting
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
75 python2 setup.py build_sphinx upload_sphinx
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
76 xdg-open http://packages.python.org/Kallithea/installation.html
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
77
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
78 echo "Rebuild readthedocs for docs.kallithea-scm.org"
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
79 xdg-open https://readthedocs.org/projects/kallithea/
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
80 curl -X POST http://readthedocs.org/build/kallithea
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
81 xdg-open https://readthedocs.org/builds/kallithea/
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
82 xdg-open http://docs.kallithea-scm.org/en/latest/ # or whatever the branch is
7301
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
83
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
84 extraargs=${EMAIL:+--identity=$EMAIL}
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
85 python2 setup.py sdist upload --sign $extraargs
d06c0566cb23 make-release: import version and copyright updates from default branch (dba4e770d4b6)
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 5527
diff changeset
86 xdg-open https://pypi.python.org/pypi/Kallithea