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