Building Releases
=================
Roundup is a pure Python application with no binary components. This file
describes how to build a source release. To find out how to install
Roundup, read the doc/installation.txt file.
Roundup release checklist:
1. Run unit tests! They should pass successfully. "./run_tests.py"
2. Update version
CHANGES.txt
roundup/__init__.py
3. Update documentation
doc/announcement.txt
doc/upgrading.txt
4. Update setup.py info is needed (contacts, classifiers, etc.), and
check that metadata is valid and long descriptions is proper reST:
python setup.py check --restructuredtext --metadata --strict
5. Clean out all *.orig, *.rej, .#* files from the source.
6. Remove previuos build files
python setup.py clean --all
7. Rebuild documentation in "share/doc/roundup/html"
python setup.py build_doc
8. python setup.py sdist --manifest-only
9. Check the MANIFEST to make sure that any new files are included. If
they are not, edit MANIFEST.in to include them. For format docs see
http://docs.python.org/2/distutils/sourcedist.html#manifest-template
10. python setup.py sdist
(if you find sdist a little verbose, add "--quiet" to the end of the
command)
11. Unpack the new dist file in /tmp then
a) run_test.py
b) demo.py
with all available Python versions.
12. Assuming all is well tag the release in the version-control system.
13. Build binary packages
python setup.py bdist_rpm
python setup.py bdist_wininst
14. Upload source distributive to PyPI
python setup.py sdist upload --sign
It should appear on http://pypi.python.org/pypi/roundup in no time.
15. Send doc/announcement.txt to python-announce@python.org and
roundup-users@lists.sourceforge.net and
roundup-devel@lists.sourceforge.net
16. Refresh website.
website/README.txt
So, those commands in a nice, cut'n'pasteable form::
find . -name '*.orig' -exec rm {} \;
find . -name '*.rej' -exec rm {} \;
find . -name '.#*' -exec rm {} \;
python setup.py clean --all
python setup.py check --restructuredtext --metadata --strict
python setup.py build_doc
python setup.py sdist --manifest-only
python setup.py sdist --quiet
python setup.py bdist_rpm
python setup.py bdist_wininst
python setup.py register
python setup.py sdist upload --sign
python2.5 setup.py bdist_wininst upload --sign
(if the last two fail make sure you're using python2.5+)
Note that python2.6 won't correctly create a bdist_wininst install on
Linux (it will produce a .exe with "linux" in the name). 2.7 still has
this bug (Ralf)