Implement minimal Node and friends (#4)
[python-ant.git] / DEVELOP.md
bloba265904f782e1f4b633de8ae099d3565f13f8d21
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  * Clone upstream to clean directory
42  * Bootstrap environment
43  * Start release branch (git-flow)
44  * Run pylint
45  * Run importchecker
46    % importchecker src
47  * Run pep8
48    % pep8 -r src --count --statistics
49  * Set/check version number (setup.py, project's __init__.py, docs)
50  * Run test suite and check test coverage
51    % nosetests --with-coverage --cover-inclusive --cover-erase
52  * Freeze dependencies' version numbers in buildout.cfg and setup.py
53  * Check bug database for open issues/bugs
54  * Build documentation
55  * Check documentation (coverage, grammar, contents, etc)
56  * Update CHANGES
57  * Update copyright statements if new year
58  * Update setup.py
59  * Create distribution bundles
60    % buildout setup . sdist bdist bdist_egg
61  * Check dist/* files (no plain text root passwords, all files present, do
62    they work in a separate virtualenv with pip? do tests still pass?)
63  * Upload to PyPI
64    % buildout setup . register upload
65  * Check package page in PyPI (readme, download links)
66  * Re-test release in a clean environment, installing from the cheeseshop
67  * Finish git-flow release and add release tag and commit release
68  * Push upstream (GitHub master, gitorious backup)
69  * Upload dist files to GitHub
70  * Upload built documentation
71  * Make public announcement, if necessary
74 Release Notes
75 -------------
76 If releasing anything but a final version, skip registering and uploading to
77 the cheeseshop.
79 If releasing a .devX version, some steps may be skipped from the release
80 checklist. In particular, .devX versions should be treated mostly as an
81 internal thing and thus, should generally not be published nor uploaded to
82 GitHub.