@@ -12,14 +12,20 @@ Roundup release checklist:
1212 advance of the release to allow for translators to update their
1313 translations. Merge into .po files by running 'make *.po'
1414 in the locale directory. Run:
15+
16+ cd locale
1517 make template
1618 make *.po
19+ cd ..
20+
17212. Run unit tests! They should pass successfully. Install pytest
1822 using pip2/pip3 for python2 and python3. Then invoke pytest
1923 using both python versions from the top of the roundup tree:
24+
2025 python3 -m pytest test/
2126 python2 -m pytest test/
22- 3. Update version
27+
28+ 3. Update version in:
2329 CHANGES.txt
2430 roundup/__init__.py
2531 website/www/index.txt
@@ -39,89 +45,141 @@ Roundup release checklist:
3945 beta alpha etc.
4046
4147 Check that metadata is valid and long descriptions is proper reST:
42- python setup.py check --restructuredtext --metadata --strict
48+
49+ python3 setup.py check --restructuredtext --metadata --strict
50+
43516. Clean out all *.orig, *.rej, .#* files from the source.
44- 6a. Rebuild .mo translation files in distribution - cd locale; make
52+
53+ find . -name '*.orig' -exec rm {} \;
54+ find . -name '*.rej' -exec rm {} \;
55+ find . -name '.#*' -exec rm {} \;
56+
57+ 6a. Rebuild .mo translation files in distribution
58+
59+ cd locale
60+ make
61+ cd ..
62+
45637. Remove previous build files
46- python setup.py clean --all
64+
65+ python3 setup.py clean --all
4766 rm -rf build/share # deletes locale .mo files
48- Rebuild and install .mo files
49- python setup.py build (sdist generation will fail if this isn't done)
67+
68+ Build including new .mo files built in 6a.
69+
70+ python3 setup.py build
71+
72+ (sdist generation will fail if this isn't done)
50738. Rebuild documentation in "share/doc/roundup/html"
51- python setup.py build_doc
52- 9. python setup.py sdist --manifest-only
53- (ignore the 'warning: no previously-included ...' lines)
54- 10. Check the MANIFEST to make sure that any new files are included.
55- (use hg status --rev <last release or tag>:tip to list changed
56- added and removed files. Last release e.g. 1.5.1 where tip was
57- what would become 1.6) E.G.
74+
75+ python3 setup.py build_doc
76+
77+ 9. Generate source distribution:
78+
79+ python3 setup.py sdist
80+
81+ (if you find sdist a little verbose, add "--quiet" to the end of the
82+ command)
83+ 9a. 2021/04/17 skip this for now. Need to make sure that whl installs
84+ exectuable scripts properly and update these directions to test.
85+
86+ python2 setup.py bdist_wheel; python3 setup.py bdist_wheel
87+
88+ to create binary distributions in wheel format. (egg format is
89+ deprecated.)
90+ 10. Check the roundup.egg-info/SOURCES.txt to make sure that any new files are
91+ included. (use hg status --rev <last release or tag>:tip to list changed
92+ added and removed files. Last release e.g. 1.5.1 where tip is what would
93+ become 1.6) E.G.
5894
59- hg status --rev 1.6.0:tip | sed -ne 's/^A //p' | while read i ; \
60- do echo $i; grep "$i" MANIFEST; done | uniq -c
95+ hg status --rev 2.0.0:tip | sed -ne 's/^A //p' | while read i ; \
96+ do echo $i; grep "$i" roundup.egg-info/SOURCES.txt; done | \
97+ uniq -c | sort -rn
6198
6299 Anything with a count of 1 is not in the manifest.
63100 If there are missing files that should be in the manifest,
64101 edit MANIFEST.in to include them. For format docs see
65- http://docs.python.org/2/distutils/sourcedist.html#manifest-template
66- (Notes files for the website and issue tracker shouldn't be in the
67- manifest.)
68- 11. python setup.py sdist
69- (if you find sdist a little verbose, add "--quiet" to the end of the
70- command)
71- 12. Unpack the new tarball created in dist/roundup-<version>.tar.gz
102+ https://packaging.python.org/guides/using-manifest-in/#using-manifest-in
103+ (Note: files under website/ shouldn't be in the manifest.)
104+
105+ 10a: Check for removed files still in manifest:
106+
107+ hg status --rev 2.0.0:tip | sed -ne 's/^R //p' | while read i ; \
108+ do echo $i; grep "$i" roundup.egg-info/SOURCES.txt; done | \
109+ uniq -c | sort -n
110+
111+ any file with a count of 2 or more needs to be removed from
112+ MANIFEST.in and possibly cleaned out of the build tree.
113+
114+ 10b: if you added/removed files rebuild starting at step 6a.
115+
116+ 11. Unpack the new tarball created in dist/roundup-<version>.tar.gz
72117 file in /tmp then
73118 a) run tests using installed pytest run under python2 and
74119 python3. (python2 -m pytest test/; python3 -m pytest test/)
75120 b) demo.py
76121 with all available Python versions.
77- 13. Assuming all is well tag the release in the version-control
122+ 11a. (TBD how to test wheel binary distribution before uploading.)
123+ 12. Assuming all is well tag the release in the version-control
78124 system.
79125 a) hg tag 1.6.0 # use right version. Should create/commit a changeset
80126 b) hg push # update main repo
81127 c) hg sum # verify that the tag shows up
82- 14 . Upload source distribution to PyPI - requires you sign up for a
128+ 13 . Upload source distribution to PyPI - requires you sign up for a
83129 pypi account and be added as a maintainer to roundup. Ask existing
84- maintainer for access.
85- python setup.py sdist upload --repository pypi --sign
86- It should appear on http://pypi.python.org/pypi/roundup in no
87- time. If you are using python older than 2.7.13 you need a
88- .pypirc shown below. URL has changed. If using 2.7.13 or newer,
89- you can remove the "--repository pypi" option.
90- 15. Send doc/announcement.txt to
[email protected] and
91- 92- 93- 15b. Update entry on https://freshcode.club/projects/roundup-tracker
94- 15c. Update entries for fossies by emailing announcement to
130+ maintainer for access. You can do this two ways:
131+
132+ python3 setup.py sdist upload --repository pypi --sign
133+
134+ which rebuilds the source distribution tarball and uploads it.
135+ This means that you have uploaded something tha is not tested. It
136+ should be the same as the tarball you tested but....
137+
138+ Another way to do this is to use twine (pip install twine).
139+ You need to sign the tarball. This can be done with:
140+
141+ cd dist
142+ gpg --detach-sign --armor <filename>.tgz
143+
144+ you should be prompted to use the roundup release key. If not you
145+ 146+ This will create a file by the name <filename>.tgz.asc. Then
147+ use twine to upload *both* the asc and distibution tarball
148+ at the same time. E.G.:x
149+
150+ twine upload --repository pypi <filename>.tar.gz <filename>.tar.gz.asc
151+
152+ (If you upload the .asc file separately from the distibution file
153+ it gets a different path and is not able to be located in the pypi
154+ interface. The asc file is downloaded using the tarball path and
155+ add `asc'.)
156+
157+ The distribution file should appear on
158+ https://pypi.python.org/pypi/roundup in no time. If you are using
159+ python older than 2.7.13 you need a .pypirc shown below since the
160+ URL has changed. If using 2.7.13 or newer, you can remove the
161+ "--repository pypi" option and use 'setup.py sdist upload...'.
162+
163+ You can also use twine to upload the .whl (wheel) format
164+ distributions (if created). Follow the directions for generating
165+ the gpg asc files and upload the .whl distribution and .whl.asc
166+ signature files together.
167+ 14. Send doc/announcement.txt to
[email protected] ,
168+ 169+ 170+ 14b. Update entry on https://freshcode.club/projects/roundup-tracker
171+ 14c. Update entries for fossies by emailing announcement to
9517296- 16. Refresh website.
173+ 14d. Update entry on https://directory.fsf.org/wiki/Roundup.
174+ 15. Refresh website.
97175 website/README.txt
98176 https://www.roundup-tracker.org/ should state that the stable
99177 version is the one that you released.
100178 https://www.roundup-tracker.org/docs.html should also match the
101179 released version (or at least the major non pre-release
102180 1.x/2.x version).
103181
104- So, those commands in a nice, cut'n'pasteable form::
105-
106- find . -name '*.orig' -exec rm {} \;
107- find . -name '*.rej' -exec rm {} \;
108- find . -name '.#*' -exec rm {} \;
109- python setup.py clean --all
110- python setup.py build
111- python setup.py check --restructuredtext --metadata --strict
112- python setup.py build_doc
113- cd locale
114- make
115- cd ..
116- python setup.py sdist --manifest-only
117- python setup.py sdist --quiet
118- ## python setup.py bdist_rpm
119- # not required for pypi.org since 2017 -> python setup.py register
120- python setup.py sdist upload --repository pypi --sign
121-
122- Note pypi no longer allows uploads of .exe installers such as produced
123- by bdist_wininst. Removed directions for producing the binary
124- distribution.
182+ -------------
125183
126184If you get errors on the upload operation, you may need the following
127185~/.pypirc file as well
@@ -142,4 +200,3 @@ repository: https://test.pypi.org/legacy/
142200username: <your username on test.pypi.org here>
143201password: <your password here>
144202========
145-
0 commit comments