summaryrefslogtreecommitdiff
path: root/RELEASING
blob: 99b6b4d0ffd5b4703c08c66b64741709a00c84d5 (plain)
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
Here are the steps to follow to create a new pycairo release:

1) Ensure that there are no local, uncommitted modifications. The best
   thing to do here may be to begin with a fresh checkout from CVS:

	cvs -d cairographics.org:/cvs/cairo co pycairo

   But it's probably good enough if "cvs -q update -Ad" generates no
   output.

2) Fill out an entry in the NEWS file

   Sift through the information in ChangeLog since the last release. Summarize
   major changes briefly in a style similar to other entries in NEWS.

3) Increment version numbers in:
    cairo/cairomodule.c
    configure.ac
    doc/conf.py
    README
    setup.py

    Increment pycairo_major/minor/micro_version in configure.ac
    Increase the cairo_required_version - to an even numbered version.
    Increment pycairo_major/minor version to match the cairo major/minor
    version that pycairo requires (and increment the micro version if
    necessary for any subsequent pycairo updates).

(install fresh copy, run examples, run any other tests)

4) Commit the changes to NEWS, configure.ac etc

    Don't forget to fill out the ChangeLog just like with any other commit.
    It's especially important to mention the new version number in the
    ChangeLog.
    Add a '=== Pycairo x.x.x ===' header to ChangeLog
    Do "cvs -q update -Ad" to confirm there are no uncommitted changes.

5) Run "make distcheck" and verify that it gives in no warnings or errors and
   ends with a message of the form:

	===============================================
	pycairo-X.Y.Z archives ready for distribution:
	pycairo-X.Y.Z.tar.gz
	===============================================

6) Edit Makefile.am and select either 'snapshot' or 'release'.
   Run "make release-publish" which will perform the following steps for you:

	* Check that the version number ends with an even micro component
	* Check that no release exists with the current version
	* Verify that make distcheck completes successfully
	* Generate the final tar file
	* Generate an md5sum file
	* scp both files to appear on http://cairographics.org/releases
	* Place local copies of the files in the releases directory
	* Create a LATEST-package-version file (after deleting any old one)
	* Tag the entire source tree with a tag of the form RELEASE_X_Y_Z
	* Provide some text for the release announcement (see below).

7) Verify that the tar file arrived at the website.
   Check tar file has read permissions for all.
   Update the pycairo webpage to reference the new release.
   Update http://cheeseshop.python.org entry for pycairo.

8) Edit:
   cairo/cairomodule.c
   configure.ac
   setup.py
   to increment pycairo_version_micro to the next larger (odd) number and
   commit.

9) Send a message to cairo-announce@cairographics.org
              and CC python-announce-list@python.org
   to announce the new release using the text provided from
   "make release-publish".


Generating documentation archives
---------------------------------
$ cd doc/
$ vi conf.py  # update the version and release numbers
$ make clean
$ make html
$ cd .build/
$ mv html pycairo-x.x.x-docs-html
$ tar cjf /tmp/pycairo-x.x.x-docs-html.tar.bz2 pycairo-x.x.x-docs-html
$ zip -r  /tmp/pycairo-x.x.x-docs-html.zip     pycairo-x.x.x-docs-html
$ chmod a+r /tmp/pycairo*

untar docs in /tmp and check that they have correct version number and view
OK.
copy file to the 'releases' directory on cairo website:
  scp pycairo-xxx cairographics.org:/srv/cairo.freedesktop.org/www/releases

cd doc
 html_docs_create.sh
 html_docs_upload.sh