forked from AuroraMiddleware/gtk
docs: Update the release instructions
This commit is contained in:
parent
98ed797731
commit
f82f0c7fbc
@ -1,108 +0,0 @@
|
||||
How to do a GTK+ release?
|
||||
=========================
|
||||
|
||||
Make sure you have suitable versions of autoconf and libtool.
|
||||
Also make sure you have the following packages installed with all their
|
||||
dependencies:
|
||||
* gtk-doc
|
||||
* docbook-utils
|
||||
Without those packages make distcheck will *not* pass.
|
||||
Make sure that gtk-doc is the latest released version.
|
||||
|
||||
|
||||
0) Go back to a pristine working directory. With git, this works:
|
||||
|
||||
git clean -f -x
|
||||
|
||||
1) autogen and build it, make sure to enable docs by specifying
|
||||
--enable-gtk-doc --enable-man
|
||||
|
||||
2) Update NEWS based on the content of git log; follow the format
|
||||
of prior entries. This includes finding noteworthy new features,
|
||||
collecting summaries for all the fixed bugs that are referenced
|
||||
and collecting all updated translations.
|
||||
Also collect the names of all contributors that are mentioned.
|
||||
We don't discriminate between bug reporters, patch writers,
|
||||
committers, etc. Anybody who is mentioned in ChangeLog gets
|
||||
credits, but only real names, not email addresses or nicknames.
|
||||
|
||||
3) Update the pot files and commit the changes:
|
||||
|
||||
make -C po gtk40.pot
|
||||
make -C po-properties gtk40-properties.pot
|
||||
|
||||
4) In particular, if this is a major, stable, release, verify that
|
||||
README.in contains the relevant release notes and that the
|
||||
required versions of dependencies in INSTALL.in are in sync
|
||||
with configure.ac.
|
||||
|
||||
5) Verify that the version in configure.ac has been bumped after the last
|
||||
release. (Note that this is critical, a slip-up here will cause the
|
||||
soname to change).
|
||||
|
||||
6) Make sure that make check is happy (If you don't do it here, make distcheck
|
||||
will also catch it, but it is kind of disheartening to see make distcheck
|
||||
fail due to an extraneous symbol after watching it build the docs for an
|
||||
hour...).
|
||||
Typical problems to expect here (depending on whether this is a devel
|
||||
snapshot or a stable release):
|
||||
* forgotten source files
|
||||
* new symbols missing from .symbols files
|
||||
* symbols that are exported by should be private (static or _-prefixed)
|
||||
* symbols that cause PLT entries. This is either caused by using a function
|
||||
in the same library function without including the header or by using a
|
||||
function from a different library, which is not yet allowed by the filter
|
||||
in pltcheck.sh
|
||||
|
||||
7) If this is a devel release, make sure that the docs for new symbols
|
||||
are in good shape. Look at the -unused.txt files and add stuff found
|
||||
there to the corresponding -sections.txt file. Look at the
|
||||
-undocumented.txt files and see if there is anything in there that
|
||||
should be documented. If it is, this may be due to typos in the doc
|
||||
comments in the source. Make sure that all new symbols have proper
|
||||
Since: tags, and that there is an index in the main -docs.sgml for
|
||||
the next stable version.
|
||||
|
||||
8) make distcheck
|
||||
|
||||
9) Fix broken stuff found by 8), commit changes: git commit -a, repeat.
|
||||
|
||||
10) Once distcheck succeeds, verify that the tree is clean: git diff should
|
||||
come up empty.
|
||||
|
||||
10) Now you've got the tarball. Check that the tarball size looks
|
||||
reasonable compared to previous releases. If the size goes down
|
||||
a lot, likely the docs went missing for some reason. Or the translations.
|
||||
If the size goes up by a lot, something else may be wrong.
|
||||
|
||||
11) Tag the release. The git command for doing that looks like
|
||||
|
||||
git tag -m "GTK+ 2.12.10" 2.12.10
|
||||
|
||||
12) Push the tagged commit upstream. The git command for doing that is
|
||||
|
||||
git push origin refs/tags/2.12.10
|
||||
|
||||
13) Bump the version number in configure.ac and commit and push this change
|
||||
|
||||
14) Upload the tarball to master.gnome.org and run install-module to transfer
|
||||
it to download.gnome.org. If you don't have an account on master.gnome.org,
|
||||
find someone who can do it for you. The command for this looks like
|
||||
|
||||
scp gtk+-2.12.10.tar.xz matthiasc@master.gnome.org:
|
||||
ssh matthiasc@master.gnome.org ftpadmin install gtk+-2.12.10.tar.xz
|
||||
|
||||
15) Upload the tarball and checksum to ftp.gtk.org and put them in the right
|
||||
directory below /ftp/pub. Pay attention to correct ownership, and don't
|
||||
forget to update the LATEST file in the directory.
|
||||
|
||||
16) Go to the gnome-announce list archives, find the last announce message,
|
||||
create a new message in the same form, replacing version numbers,
|
||||
commentary at the top about "what this release is about" and the
|
||||
summary of changes.
|
||||
|
||||
17) Send it to gnome-announce-list, gtk-list, gtk-app-devel-list and
|
||||
gtk-devel-list. Set reply-to to desktop-devel-list.
|
||||
|
||||
18) Add a link to the release announcement to www.gtk.org which lives
|
||||
in the gtk-web git module.
|
126
docs/RELEASE-HOWTO.md
Normal file
126
docs/RELEASE-HOWTO.md
Normal file
@ -0,0 +1,126 @@
|
||||
How to do a GTK+ release?
|
||||
=========================
|
||||
|
||||
## Before we begin
|
||||
|
||||
Make sure you have suitable versions of Meson and Ninja.
|
||||
|
||||
Also make sure you have the following packages installed with all their
|
||||
dependencies:
|
||||
|
||||
* gtk-doc
|
||||
* docbook-utils
|
||||
|
||||
Without those packages make distcheck will *not* pass.
|
||||
|
||||
Make sure that gtk-doc is the latest released version.
|
||||
|
||||
## Release check list
|
||||
|
||||
0. Save all your work, then move to the branch from which you want
|
||||
to release. Go back to a pristine working directory. With Git,
|
||||
this works:
|
||||
|
||||
```sh
|
||||
$ git clean -dfx
|
||||
```
|
||||
|
||||
1. Build using the common sequence:
|
||||
|
||||
```sh
|
||||
$ meson _build .
|
||||
$ ninja -C _build
|
||||
```
|
||||
|
||||
2. Update NEWS based on the content of git log; follow the format of prior
|
||||
entries. This includes finding noteworthy new features, collecting
|
||||
summaries for all the fixed bugs that are referenced and collecting all
|
||||
updated translations. Also collect the names of all contributors that
|
||||
are mentioned. We don't discriminate between bug reporters, patch
|
||||
writers, committers, etc. Anybody who is mentioned in the commit log
|
||||
gets a credit, but only real names, not email addresses or nicknames.
|
||||
|
||||
3. Update the pot files and commit the changes:
|
||||
|
||||
```sh
|
||||
$ ninja -C _build gtk40-pot
|
||||
$ ninja -C _build gtk40-properties-pot
|
||||
```
|
||||
|
||||
4. If this is a major, stable, release, verify that the release notes
|
||||
in the API reference contain the relevant items.
|
||||
|
||||
5. Verify that the version in `meson.build` has been bumped after the last
|
||||
release. **Note**: this is critical, a slip-up here will cause the soname
|
||||
to change.
|
||||
|
||||
6. Make sure that `mesontest` is happy (`ninja dist` will also run the test
|
||||
suite, but it's better to catch issues before committing and tagging
|
||||
the release). Typical problems to expect here (depending on whether this
|
||||
is a devel snapshot or a stable release):
|
||||
|
||||
* forgotten source files
|
||||
* new symbols missing the `GDK_AVAILABLE_IN_` annotation
|
||||
* wrong introspection annotations
|
||||
* missing documentation
|
||||
|
||||
7. If this is a devel release, make sure that the docs for new symbols are
|
||||
in good shape. Look at the -unused.txt files and add stuff found there
|
||||
to the corresponding `-sections.txt` file. Look at the `-undocumented.txt`
|
||||
files and see if there is anything in there that should be documented.
|
||||
If it is, this may be due to typos in the doc comments in the source.
|
||||
Make sure that all new symbols have proper Since: tags, and that there
|
||||
is an index in the main `-docs.xml` for the next stable version.
|
||||
|
||||
8. Run `ninja dist` to generate the tarball.
|
||||
|
||||
9. Fix broken stuff found by 8), commit changes, repeat.
|
||||
|
||||
10. Once `dist` succeeds, verify that the tree is clean and all the changes
|
||||
needed to make the release have been committed: `git diff` should come
|
||||
up empty. The last commit must be the commit that bumps up the version
|
||||
of the release in the `meson.build` file. Use `git rebase` if you had to
|
||||
add more commits after the version bump and `dist` successfully passing.
|
||||
If you change the history, remember to rebuild the tarball.
|
||||
|
||||
11. Now you've got the tarball. Check that the tarball size looks reasonable
|
||||
compared to previous releases. If the size goes down a lot, likely the
|
||||
docs went missing for some reason. Or the translations. If the size goes
|
||||
up by a lot, something else may be wrong.
|
||||
|
||||
12. Tag the release. The git command for doing that looks like:
|
||||
|
||||
```sh
|
||||
$ git tag -m "GTK+ 4.2.0" 4.2.0
|
||||
```
|
||||
|
||||
13. Bump the version number in `meson.build` and commit the change.
|
||||
|
||||
14. Push the changes upstream, and push the tag as well. The git command for
|
||||
doing that is:
|
||||
|
||||
```sh
|
||||
$ git push origin
|
||||
$ git push origin 4.2.0
|
||||
```
|
||||
|
||||
15. Upload the tarball to `master.gnome.org` and run `ftpadmin install` to
|
||||
transfer it to `download.gnome.org`. If you don't have an account on
|
||||
`master.gnome.org`, find someone who can do it for you. The command for
|
||||
this looks like:
|
||||
|
||||
```sh
|
||||
$ scp gtk+-4.2.0.tar.xz matthiasc@master.gnome.org:
|
||||
$ ssh matthiasc@master.gnome.org ftpadmin install gtk+-4.2.0.tar.xz
|
||||
```
|
||||
|
||||
16. Go to the gnome-announce list archives, find the last announce message,
|
||||
create a new message in the same form, replacing version numbers,
|
||||
commentary at the top about "what this release is about" and the
|
||||
summary of changes.
|
||||
|
||||
17. Send it to gnome-announce-list, gtk-list, gtk-app-devel-list and
|
||||
gtk-devel-list. Set reply-to to desktop-devel-list.
|
||||
|
||||
18. Add a link to the release announcement to www.gtk.org which lives
|
||||
in the gtk-web git module.
|
Loading…
Reference in New Issue
Block a user