view scripts/make-release @ 7301:d06c0566cb23 stable

make-release: import version and copyright updates from default branch (dba4e770d4b6) make-release has been improved on the default branch in commit dba4e770d4b6, and that version of the script also almost works on stable. There are some parts we don't have in stable branch: dev_requirements.txt, run-all-cleanup, and a working dist file content check: The MANIFEST.in file on the stable branch is not complete. Most of the missing entries could simply be added (.travis.yml, requirements.txt, tox.ini, and scripts/*) but there is one problematic entry: kallithea/i18n/en/LC_MESSAGES/kallithea.mo. In the check command, all .mo entries are filtered out, causing a remaining diff for the English .mo. As that file has been removed on the default branch already, and the missing entries are not important for the release anyway, simply drop the check for now.
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Sun, 18 Mar 2018 21:54:48 +0100
parents 80b69729a0e2
children 1a3af9e025e2
line wrap: on
line source

#!/bin/bash
set -e
set -x

echo "Install/verify tools needed for building and uploading stuff"
pip install --upgrade -e .
pip install --upgrade Sphinx Sphinx-PyPI-upload

echo "Cleanup and update copyrights ... and clean checkout"
scripts/whitespacecleanup.sh
scripts/update-copyrights.py
hg up -cr .

echo "Make release build from clean checkout in build/"
rm -rf build dist
hg archive build
cd build

echo "Check MANIFEST.in"
sed -e 's/[^ ]*[ ]*\([^ ]*\).*/\1/g' MANIFEST.in | grep -v '^node_modules/bootstrap\|^kallithea/public/css/style.css' | xargs ls -lad

echo "Build dist"
python2 setup.py compile_catalog
python2 setup.py sdist

echo "Verify VERSION from kallithea/__init__.py"
namerel=$(cd dist && echo Kallithea-*.tar.gz)
namerel=${namerel%.tar.gz}
version=${namerel#Kallithea-}
ls -l $(pwd)/dist/$namerel.tar.gz
echo "Releasing Kallithea $version in directory $namerel"

echo "Verify dist file content"
! tar tf dist/Kallithea-$version.tar.gz | grep "$namerel/node_modules/bootstrap/\$"

echo "Verify docs build"
python2 setup.py build_sphinx # not used yet ... but we want to make sure it builds

cat - << EOT

Now, make sure
* the copyright and contributor lists have been updated
* all tests are passing
* release note is ready
* announcement is ready
* source has been pushed to https://kallithea-scm.org/repos/kallithea

EOT

echo "Verify current revision is tagged for $version"
hg log -r "'$version'&." | grep .

echo -n "Enter \"pypi\" to upload Kallithea $version to pypi: "
read answer
[ "$answer" = "pypi" ]

echo "Upload docs to pypi"
# See https://wiki.python.org/moin/PyPiDocumentationHosting
python2 setup.py build_sphinx upload_sphinx
xdg-open https://pythonhosted.org/Kallithea/
xdg-open http://packages.python.org/Kallithea/installation.html

echo "Rebuild readthedocs for docs.kallithea-scm.org"
xdg-open https://readthedocs.org/projects/kallithea/
curl -X POST http://readthedocs.org/build/kallithea
xdg-open https://readthedocs.org/builds/kallithea/
xdg-open http://docs.kallithea-scm.org/en/latest/ # or whatever the branch is

extraargs=${EMAIL:+--identity=$EMAIL}
python2 setup.py sdist upload --sign $extraargs
xdg-open https://pypi.python.org/pypi/Kallithea