]> Pileus Git - ~andy/gtk/blob - docs/RELEASE-HOWTO
Updates
[~andy/gtk] / docs / RELEASE-HOWTO
1 How to do a GTK+ release?
2 =========================
3
4 Make sure you have suitable versions of autoconf and libtool.
5 Also make sure you have the following packages installed with all their
6 dependencies:
7 * gtk-doc
8 * docbook-utils
9 Without those packages make distcheck will *not* pass.
10
11
12  0) Blow away your gtk+ directory, check a new version out
13
14  1) autogen and build it, make sure to enable docs by specifying 
15     --enable-gtk-doc --enable-man
16
17  2) Update NEWS based on the various ChangeLog files; follow the format
18     of prior entries. This includes finding noteworthy new features,
19     collecting summaries for all the fixed bugs that are referenced
20     and collecting all updated translations. 
21     Also collect the names of all contributors that are mentioned. 
22     We don't discriminate between bug reporters, patch writers, 
23     committers, etc. Anybody who is mentioned in ChangeLog gets
24     credits, but only real names, not email addresses or nicknames.
25
26  3) In particular, if this is a major, stable, release, verify that
27     README.in contains the relevant release notes and that the
28     required versions of dependencies in INSTALL.in are in sync
29     with configure.in.
30
31  4) Verify that the version in configure.in has been bumped after the last
32     release. (Note that this is critical, a slip-up here will cause the 
33     soname to change).
34
35  5) Make sure that make check is happy (If you don't do it here, make distcheck
36     will also catch it, but it is kind of disheartening to see make distcheck 
37     fail due to an extraneous symbol after watching it build the docs for an 
38     hour...). 
39     Typical problems to expect here (depending on whether this is a devel 
40     snapshot or a stable release):
41     * forgotten source files
42     * new symbols missing from .symbols files
43     * symbols that are exported by should be private (static or _-prefixed)
44     * symbols that cause PLT entries. This is either caused by using
45       a in the same library function without including the header or by
46       using a function from a different library, which is not yet allowed
47       by the filter in pltcheck.sh
48
49  6) If this is a devel release, make sure that the docs for new symbols
50     are in good shape. Look at the -unused.txt files and add stuff found
51     there to the corresponding -sections.txt file. Make sure that all
52     new symbols have proper Since: tags, and that there is an index
53     in the main -docs.sgml for the next stable version.
54
55  7) Add === Released 2.x.y === at the top of all ChangeLog files
56
57  8) make distcheck
58
59  9) Fix broken stuff found by 8), repeat
60
61 10) svn commit; you'll have a bunch of po file changes, ChangeLog updates,
62      and maybe some doc changes too
63  
64 11) If 10) fails because someone else committed inbetween, curse, svn up,
65     fix conflicts and go to 8)
66
67 12) Now you've got the tarball. Check that the tarball size looks
68     reasonable compared to previous releases. If the size goes down
69     a lot, likely the docs went missing for some reason. Or the translations.
70     If the size goes up by a lot, something else may be wrong.
71
72 13) Tag the release. The command for doing that looks like
73
74       svn cp svn+ssh://matthiasc@svn.gnome.org/svn/gtk+/branches/gtk-2-12 \
75              svn+ssh://matthiasc@svn.gnome.org/svn/gtk+/tags/GTK_2_12_10
76
77 14) Bump the version number in configure.in and commit this change 
78     with a ChangeLog entry
79
80 15) Upload the tarball to master.gnome.org and run install-module to transfer
81     it to download.gnome.org. If you don't have an account on master.gnome.org,
82     find someone who can do it for you. The command for this looks like
83   
84       scp gtk+-2.12.10.tar.gz matthiasc@master.gnome.org:
85       ssh matthiasc@master.gnome.org
86       install-module gtk+-2.12.10.tar.gz
87
88 16) Get the bz2 tarball and the .md5sum files back from master.gnome.org 
89     You can probably also create it locally, but I've experienced md5 
90     mismatches when doing so
91
92 17) Go to the gnome-announce list archives, find the last announce message,
93     create a new message in the same form, replacing version numbers, 
94     commentary at the top about "what this release is about" and the 
95     Summary of changes.
96
97 18) Send it to gnome-announce-list, gtk-list, gtk-app-devel-list and
98     gtk-devel-list. Set reply-to to gnome-hackers.
99
100 19) Add a link to the release announcement to www.gtk.org which lives 
101     in the gtk-web cvs module.