1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
=====================
KID RELEASE CHECKLIST
=====================
These notes describe the general procedure for releasing new version of Kid.
Pre-requisites
--------------
Make sure the following packages are installed on your system:
* Python 2.3, Python 2.4 and Python 2.5
* elementtree <http://effbot.org/zone/element-index.htm>
* setuptools <http://peak.telecommunity.com/DevCenter/setuptools>
* docutils <http://docutils.sourceforge.net>
* buildutils <http://buildutils.lesscode.org>
* pudge <http://pudge.lesscode.org>
* py.test <http://codespeak.net/py/current/doc/test.html>
Most of the utility packages can be installed using ``easy_install``. For
``buildutils`` and ``pudge``, it's recommended that you grab the latest
revisions from subversion:
$ easy_install http://lesscode.org/svn/pudge/trunk
$ easy_install http://lesscode.org/svn/buildutils/trunk
Since some of the tests require py.test, this should be installed as well
(see http://codespeak.net/py/current/doc/getting-started.html).
Release Procedure
-----------------
1. Run Tests
Check that all tests are passing:
$ make test
The tests are run for all Python versions 2.3, 2.4 and 2.5.
I generally run tests on the following systems when possible:
* Debian
* SuSE Linux
* Fedora Core 4
* FreeBSD
* Mac OS X / 10.4+
* Windows XP (run the tests manually)
If possible, run the TurboGears nosetests with the
new Kid version to make sure nothing ha been broken.
2. Update the ez_setup.py script with the latest version
from http://peak.telecommunity.com/dist/ez_setup.py
3. Bump version number in ``kid/release.py`` and ``doc/index.txt``,
and ``kid.egg-info/PKG_INFO``. Also change download URL
and possibly other meta data in ``kid.egg-info/PKG_INFO``.
4. Update build notes
Update ``doc/notes.txt`` with release notes.
5. Commit / Tag
After committing release related changes, make a note of the current
changeset revision and then tag it:
$ svn cp -m 'tagging [changeset] for VERSION release' \
svn://kid-templating.org/trunk \
svn://kid-templating.org/tags/VERSION
6. Build Distributables
Make sure you have recent versions of setuptools and buildutils installed
for Python 2.3, 2.4 and 2.5.
$ pbu -i2.3,2.4,2.5 sdist bdist_egg
You should now have ``dist/kid-VERSION.tar.gz``,
``dist/kid-VERSION-py2.3.egg``, ``dist/kid-VERSION-py2.4.egg``
and ``dist/kid-VERSION-py2.5.egg``.
This is generally all I release.
I like to scan the file contents just to make sure nothing funny made its
way into the dist process:
$ tar tzf dist/kid-VERSION.tar.gz | less
$ ls -1 dist/kid-0.9-*.egg | xargs -n1 unzip -l | less
Now it is time to push to the CheeseShop:
$ pbu -i2.3,2.4,2.5 sdist bdist_egg upload
7. Generate Checksums
This is important for package maintainers. Most package repositories hold
the policy that upstream distributables MUST include checksums and many
require checksums to be signed.
$ pbu checksum --sign
(Leave off the --sign option if you're not setup with GPG.)
This generates a `dist/kid-VERSION.sha` file and a
`dist/kid-VERSION.sha.asc` file if the checksums are signed.
8. Publish Distributables
Copy the entire dist directory to kid-templating.org:
$ scp -rp dist kid-templating.org:/srv/kid-templating.org/www/htdocs/dist/VERSION
Any release (major, minor, build, nightly) should have its own
directory. Don't copy new distributables into existing dist
directories. i.e., VERSION may be 0.9, 0.9a1, 0.9.5, 20060101, etc...
Check that the files made it up properly and are accessible via HTTP:
$ links http://www.kid-templating.org/dist/VERSION/
or perhaps:
$ curl http://www.kid-templating.org/dist/VERSION/kid-VERSION.sha
NOTE: This process was automated through ``pbu`` at one point but I
can't seem to get it working properly. I'll get it figured out and
update this doc accordingly.
9. Build documentation
Build the docs using buildutils/pudge:
$ pbu pudge
Files generated by pudge are placed under the ``doc/html`` directory.
10. Publish Docs
Transfer the files generated under ``doc/html`` to kid-templating.org:
$ scp -r doc/*.txt doc/html/* kid-templating.org:/srv/kid-templating.org/www/htdocs/
Check and update the wiki pages at http://www.kid-templating.org/trac/wiki/,
particularly make sure that this page is up to date:
http://www.kid-templating.org/trac/wiki/GettingStarted
|