Update packaging support files
[python-ant.git] / DEVELOP.md
blobe5aecc8d60401616876c353d4b7ce7979575ec52
1 Development
2 ===========
4 Introduction
5 ------------
6 This project uses a combination of virtualenv and zc.buildout to setup a self
7 contained development environment. It's designed so I can basically go to any
8 of my computers, clone the upstream repository, source the bootstrap script,
9 and begin working.
11 Also, git-flow is being used to manage the general workflow of the repository,
12 so please install it and stick with it.
15 Bootstrapping
16 -------------
17 With virtualenv and zc.buildout:
18 % source bootstrap
19 % buildout
21 With zc.buildout only:
22 % python bootstrap.py -d
23 % bin/buildout
26 Web Resources
27 -------------
28 Project website, bug database, and GIT repository is at:
29 http://github.com/mvillalba/python-ant
31 Project documentation (Sphinx) is at:
32 NOT-HOSTED-ANYWHERE-YET
34 Backup GIT repositories:
35 https://gitorious.org/python-ant/python-ant
36 http://repo.or.cz/w/python-ant.git
39 Release Checklist
40 -----------------
41  * Deactivate virtualenv environment, if active
42  * Clone upstream to clean directory
43  * Bootstrap environment
44  * Start release branch (git-flow)
45  * Set/check version number (setup.py, project's __init__.py, docs)
46  * Run pylint
47  * Run importchecker
48    % importchecker src
49  * Run pep8
50    % pep8 -r src --count --statistics
51  * Run test suite and check test coverage
52    % nosetests --with-coverage --cover-inclusive --cover-erase
53  * Freeze dependencies' version numbers in buildout.cfg and setup.py
54  * Check bug database for open issues/bugs
55  * Build documentation
56  * Check documentation (coverage, grammar, contents, etc)
57  * Update CHANGES
58  * Update copyright statements if new year
59  * Update setup.py
60  * Create distribution bundles
61    % buildout setup . sdist bdist_egg
62  * Check dist/* files (no nuclear launch codes, all files present, do they work
63    in a separate virtualenv with pip?)
64  * Upload to PyPI
65    % buildout setup . register upload
66  * Check package page in PyPI (readme, download links)
67  * Re-test release in a clean environment, installing from the cheeseshop
68  * Finish git-flow release and add release tag and commit release
69  * Push upstream (GitHub master, gitorious backup)
70  * Upload dist files to GitHub
71  * Upload built documentation
72  * Make public announcement, if necessary
75 Release Notes
76 -------------
77 If releasing anything but a final version, skip registering and uploading to
78 the cheeseshop.
80 If releasing a .devX version, some steps may be skipped from the release
81 checklist. In particular, .devX versions should be treated mostly as an
82 internal thing and thus, should generally not be published nor uploaded to
83 GitHub.