]> Pileus Git - ~andy/gtk/blob - docs/RELEASE-HOWTO
Update release instructions for git
[~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) Go back to a pristine working directory. With git, this works:
13
14     git clean -f -x
15
16  1) autogen and build it, make sure to enable docs by specifying
17     --enable-gtk-doc --enable-man
18
19  2) Update NEWS based on the content of git log; follow the format
20     of prior entries. This includes finding noteworthy new features,
21     collecting summaries for all the fixed bugs that are referenced
22     and collecting all updated translations.
23     Also collect the names of all contributors that are mentioned.
24     We don't discriminate between bug reporters, patch writers,
25     committers, etc. Anybody who is mentioned in ChangeLog gets
26     credits, but only real names, not email addresses or nicknames.
27
28  3) In particular, if this is a major, stable, release, verify that
29     README.in contains the relevant release notes and that the
30     required versions of dependencies in INSTALL.in are in sync
31     with configure.in.
32
33  4) Verify that the version in configure.in has been bumped after the last
34     release. (Note that this is critical, a slip-up here will cause the
35     soname to change).
36
37  5) Make sure that make check is happy (If you don't do it here, make distcheck
38     will also catch it, but it is kind of disheartening to see make distcheck
39     fail due to an extraneous symbol after watching it build the docs for an
40     hour...).
41     Typical problems to expect here (depending on whether this is a devel
42     snapshot or a stable release):
43     * forgotten source files
44     * new symbols missing from .symbols files
45     * symbols that are exported by should be private (static or _-prefixed)
46     * symbols that cause PLT entries. This is either caused by using
47       a in the same library function without including the header or by
48       using a function from a different library, which is not yet allowed
49       by the filter in pltcheck.sh
50
51  6) If this is a devel release, make sure that the docs for new symbols
52     are in good shape. Look at the -unused.txt files and add stuff found
53     there to the corresponding -sections.txt file. Look at the
54     -undocumented.txt files and see if there is anything in there that
55     should be documented. If it is, this may be due to typos in the doc
56     comments in the source. Make sure that all new symbols have proper
57     Since: tags, and that there is an index in the main -docs.sgml for
58     the next stable version.
59
60  7) make distcheck
61
62  8) Fix broken stuff found by 7), repeat
63
64  9) Commit all changes: git commit -a. You will have a bunch of po file
65     changes, NEWS and maybe some doc changes too
66
67 10) 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 11) Tag the release. The git command for doing that looks like
73
74     git tag -m "GTK+ 2.12.10" 2.12.10
75
76 12) Push the tagged commit upstream. The git command for doing that is
77
78     git push origin refs/tags/2.12.10
79
80 13) Bump the version number in configure.in and commit and push this change
81
82 14) Upload the tarball to master.gnome.org and run install-module to transfer
83     it to download.gnome.org. If you don't have an account on master.gnome.org,
84     find someone who can do it for you. The command for this looks like
85
86       scp gtk+-2.12.10.tar.gz matthiasc@master.gnome.org:
87       ssh matthiasc@master.gnome.org
88       install-module gtk+-2.12.10.tar.gz
89
90 15) Get the .bz2 tarball and the .md5sum files back from master.gnome.org
91     You can probably also create it locally, but I've experienced md5
92     mismatches when doing so.
93
94 16) Upload the .gz and .bz2 tarballs and checksums to ftp.gtk.org and put
95     them in the right directory below /ftp/pub. Pay attention to correct
96     ownership, and don't forget to update the LATEST file in the directory.
97
98 17) Go to the gnome-announce list archives, find the last announce message,
99     create a new message in the same form, replacing version numbers,
100     commentary at the top about "what this release is about" and the
101     summary of changes.
102
103 18) Send it to gnome-announce-list, gtk-list, gtk-app-devel-list and
104     gtk-devel-list. Set reply-to to gnome-hackers.
105
106 19) Add a link to the release announcement to www.gtk.org which lives
107     in the gtk-web cvs module.