File: release-checklist.md

package info (click to toggle)
dbus 1.16.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,056 kB
  • sloc: ansic: 106,015; xml: 9,270; sh: 1,967; python: 242; makefile: 230; cpp: 27
file content (93 lines) | stat: -rw-r--r-- 3,363 bytes parent folder | download | duplicates (2)
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
# dbus release checklist

To make a release of D-Bus, do the following:

 - check out a fresh copy from Git

 - verify that the libtool versioning/library soname in `meson.build` is
   changed if it needs to be, or not changed if not
    - CMake takes the version number from `meson.build` and so should not
      need updating

 - update the file NEWS based on the git history

 - verify that the version number of dbus-specification.xml is
   changed if it needs to be; if changes have been made, update the
   release date in that file

 - update the AUTHORS file with
   `ninja -C ${builddir} maintainer-update-authors`
   if necessary

 - the version number in `meson.build` should have major.minor.micro, even
   if micro is 0, i.e. "1.0.0" and "1.2.0" not "1.0"/"1.2"; the micro
   version should be even for releases, and odd for intermediate snapshots
    - CMake takes the version number from `meson.build` and so should not
      need updating

 - When ready to release, `git commit -a`.  This is the version
   of the tree that corresponds exactly to the released tarball.

 - `meson dist -C ${builddir)`
    (this is the equivalent of Autotools `make distcheck`)

 - if `meson dist` failed, fix it, commit, retry until successful

 - tag the tree with `git tag -s -m 'Released X.Y.Z' dbus-X.Y.Z`
   where X.Y.Z is the version of the release.  If you can't sign
   then simply created an unsigned annotated tag:
   `git tag -a -m 'Released X.Y.Z' dbus-X.Y.Z`.

 - bump the version number up in `meson.build`
   again (so the micro version is odd),
   and commit it.  Make sure you do this *after* tagging the previous
   release! The idea is that git has a newer version number
   than anything released. Similarly, bump the version number of
   dbus-specification.xml and set the release date to "(not finalized)".

 - push your changes and the tag to the central repository with
     `git push --atomic origin main dbus-X.Y dbus-X.Y.Z`

 - scp your tarball to freedesktop.org server and copy it to
   `dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus/`.
   This should be possible if you're in group "dbus"

 - Update the online documentation with
     `ninja -C ${builddir} maintainer-upload-docs`.

 - If `doc/busconfig.dtd` and/or `doc/introspect.dtd` have changed, send
   a merge request to `xdg-specs` similar to
   <https://gitlab.freedesktop.org/xdg/xdg-specs/90> to get the new
   version published

 - post to dbus@lists.freedesktop.org announcing the release.

## Making a ".0" stable release

We create a branch for each stable release. The branch name should be
dbus-X.Y which is a branch that has releases versioned X.Y.Z;
changes on a stable branch should be limited to significant bug fixes.

Because we won't make minor changes like keeping up with the latest
deprecations on a stable branch, stable branches should turn off the
gcc warning for deprecated declarations (e.g. see commit 76a68867).

Be extra-careful not to merge main (or any branch based on main) into a
stable branch.

To branch:

    git branch dbus-X.Y

and upload the branch tag to the server:

    git push origin dbus-X.Y

To develop in this branch:

    git checkout dbus-X.Y

After starting a new stable branch:

 - update the wiki page <https://www.freedesktop.org/wiki/Software/dbus> by
   adding the new release under the Download heading