This document describes all of the steps to be followed when packaging and releasing a version of gerald. It is out of date since the migration from SourceForge to BitBucket.
Checking the Code¶
In a working copy (checked out from Subversion) first run pychecker:
$ pychecker gerald/*.py
Then when you have fixed all of the errors and looked at each of the warnings we bring out pylint:
$ pylint gerald
For pylint we need to make sure that we use the appropriate configuration file. The only change from the standard I’ve made to mine is to add the following line:
Tidying the Code¶
Set Logging Level¶
When developing I set the logging level to ‘DEBUG’, before distribution set this to ‘WARNING’. Open
schema.py and comment out the line that says:
LOG = get_log('gerald', LOG_FILENAME, 'WARNING')
Make sure that any other line starting
LOG = is commented out.
Set Version Number¶
At the moment each module has a
__version__ attribute. This is probably confusing and should be changed. Until this is tidied up make sure every module has the same value in this attribute as the
__init__.py module. Hopefully this will be the release number.
Make sure, before you package gerald that you set the version number in
setup.py. This used to import the version number from the main gerald package but the statements that are executed on import of gerald cause
easy_install to abort the installation.
Update the Documentation¶
Generating the Documentation¶
This project uses Sphinx for documentation. You will need to have it installed before generating the documentation.
First review and update each of the
.rst files in the
docs directory. Then in a working copy of the source code cd to the
docs directory and simply type:
$ make html
This will generate the project documentation in html format in the
docs/_build/html directory. Copy that directory to the project web site:
$ scp -r docs/_build/html email@example.com:/home/andy47/web/halfcooked.com/code/gerald/
Creating a PDF version of the documentation (with the appropriate modules installed) is as easy as typing:
$ make pdf
Releasing the Code¶
Tag the Release¶
First we need to complete all of the prior steps. Then we ‘tag’ the release.:
$ svn copy http://halfcooked.svn.sourceforge.net/svnroot/halfcooked/trunk http://halfcooked.svn.sourceforge.net/svnroot/halfcooked/tags/release-<revision number>
Or checkout the whole Subversion repository and then do the copy internally.:
$ svn checkout https://halfcooked.svn.sourceforge.net/svnroot/halfcooked/ hc-root $ cd hc-root $ svn copy trunk/ tags/release-<release number>
Packaging the Code¶
To send it to PyPI:
$ python setup.py sdist [ --formats=zip,gztar ] bdist_egg upload $ python2.5 setup.py bdist_egg upload
Or to create local copies of the source distribution files:
$ python setup.py sdist --formats=zip,gztar
To create a .tar.gz and a .zip file.
Upload the Code to SourceForge¶
Upload the distribution files to SourceForge using their web interface. Log on to the project site at https://sourceforge.net/projects/halfcooked and navigate to the File Manager (Project Admin|File Manager)
Create a new folder under
gerald named for the release. Right click it and select
Uploads here and then upload the source and egg files using the
Upload file link.
Send a notification to PYPI of the latest release. In the release directory:
$ python setup.py register