File: RELEASING

package info (click to toggle)
kid 0.9.6-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 2,264 kB
  • ctags: 4,633
  • sloc: python: 7,417; makefile: 120; sh: 47; xml: 4
file content (158 lines) | stat: -rw-r--r-- 4,602 bytes parent folder | download | duplicates (4)
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