diff --git a/scripts/make-release b/scripts/make-release --- a/scripts/make-release +++ b/scripts/make-release @@ -2,62 +2,70 @@ set -e set -x -echo "Checking tools needed for uploading stuff" -pip freeze | grep '^Sphinx==' || pip install Sphinx -pip freeze | grep '^Sphinx-PyPI-upload==' || pip install Sphinx-PyPI-upload +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 "Verifying everything can build" -hg purge --all dist -python2 setup.py build_sphinx -python2 setup.py compile_catalog # TODO: check for errors +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 "Verifying VERSION from kallithea/__init__.py" +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 "Verifying current revision is tagged for $version" -hg log -r "'$version'&." | grep . -echo "Cleaning before making release build" -hg up -c . -hg revert -a -r null -hg up -C "'$version'&." -hg purge --all +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 -echo "Building dist file" -python2 setup.py compile_catalog -python2 setup.py sdist +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 -echo "Verifying dist file content" -tar tf dist/Kallithea-*.tar.gz | sed "s|^$namerel/||" | LANG=C sort > scripts/manifest -hg diff -hg up -c . # fail if manifest changed +EOT -echo "Now, make sure" -echo "* the copyright and contributor lists have been updated" -echo "* all tests are passing" -echo "* release note is ready" -echo "* announcement is ready" -echo "* source has been pushed to https://kallithea-scm.org/repos/kallithea" -echo +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" ] -extraargs=${EMAIL:+--identity=$EMAIL} -python2 setup.py sdist upload --sign $extraargs -xdg-open https://pypi.python.org/pypi/Kallithea -echo "Uploading docs to 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 "Rebuilding readthedocs for docs.kallithea-scm.org" +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 diff --git a/scripts/update-copyrights.py b/scripts/update-copyrights.py --- a/scripts/update-copyrights.py +++ b/scripts/update-copyrights.py @@ -73,7 +73,7 @@ name_fixes['nansenat16@null.tw'] = "nans name_fixes['Peter Vitt'] = "Peter Vitt " name_fixes['philip.j@hostdime.com'] = "Philip Jameson " name_fixes['Søren Løvborg'] = "Søren Løvborg " -name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire " +name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire " name_fixes['Weblate'] = "<>" name_fixes['xpol'] = "xpol "