annotate scripts/make-release @ 7588:e4452268c09f

scripts/make-release: fix PyPI upload by using twine Upload via 'python2 setup.py sdist upload' is deprecated. Worse, for unknown reasons it stopped working for 0.4, even though 0.3 did pretty much the same. Following output was given: WARNING: Uploading via this command is deprecated, use twine to upload instead (https://pypi.org/p/twine/) Traceback (most recent call last): File "setup.py", line 160, in <module> """, File "/tmp/kallithea-release-JtnfD/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup return distutils.core.setup(**attrs) File "/usr/lib64/python2.7/distutils/core.py", line 151, in setup dist.run_commands() File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/tmp/kallithea-release-JtnfD/lib/python2.7/site-packages/setuptools/command/upload.py", line 26, in run orig.upload.run(self) File "/usr/lib64/python2.7/distutils/command/upload.py", line 62, in run self.upload_file(command, pyversion, filename) File "/tmp/kallithea-release-JtnfD/lib/python2.7/site-packages/setuptools/command/upload.py", line 136, in upload_file value = str(value).encode('utf-8') UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 825: ordinal not in range(128) The error is pointing to a unicode character in the README.rst file. The proposed 'twine' command does not have this problem. As it seems that this is the future, we won't waste more time investigating the problem with 'sdist upload', and start using twine from now on.
author Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
date Mon, 18 Mar 2019 23:04:20 +0100
parents cf81d586cf07
children 08de75df7775
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 .
7588
e4452268c09f scripts/make-release: fix PyPI upload by using twine
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7587
diff changeset
23 pip install --upgrade -r dev_requirements.txt twine
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
7458
b70ad5c7e706 make-release: drop partial support for shipping the generated style.css and corresponding bootstrap
Mads Kiilerich <mads@kiilerich.com>
parents: 7457
diff changeset
35 echo "Check that each entry in MANIFEST.in match something"
b70ad5c7e706 make-release: drop partial support for shipping the generated style.css and corresponding bootstrap
Mads Kiilerich <mads@kiilerich.com>
parents: 7457
diff changeset
36 sed -e 's/[^ ]*[ ]*\([^ ]*\).*/\1/g' MANIFEST.in | xargs ls -lad
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
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
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 echo "Verify docs build"
7587
cf81d586cf07 scripts/make-release: remove uploading of PyPI docs
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7458
diff changeset
53 python2 setup.py build_sphinx # the results are not actually used, but we want to make sure it builds
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
54
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 cat - << EOT
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
56
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
57 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
58 * 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
59 * 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
60 * 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
61 * 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
62
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
63 EOT
5507
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
64
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
65 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
66 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
67
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
68 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
69 read answer
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
70 [ "$answer" = "pypi" ]
d4f66ca15110 release: add scripts/make-release for automation of the release process
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
71
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
72 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
73 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
74 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
75 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
76 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
77
7588
e4452268c09f scripts/make-release: fix PyPI upload by using twine
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents: 7587
diff changeset
78 twine upload dist/*
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
79 xdg-open https://pypi.python.org/pypi/Kallithea