- verify that the libtool versioning/library soname is
changed if it needs to be, or not changed if not
- - update the file NEWS based on the ChangeLog
+ - update the file NEWS based on the git history
- - update the AUTHORS file based on the ChangeLog
+ - 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
- - add a ChangeLog entry containing the version number
- you're releasing ("Released 0.3" or something)
- so people can see which changes were before and after
- a given release
+ - update the AUTHORS file with "make update-authors" if necessary
- - the version number 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 version number 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
- "make distcheck" (DO NOT just "make dist" - pass the check!)
- 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 unannotated tag: "git tag dbus-X.Y.Z".
+ 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 configure.in, and commit
- it. Make sure you do this *after* tagging the previous
+ - bump the version number up in configure.ac (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.
+ than anything released. Similarly, bump the version number of
+ dbus-specification.xml and set the release date to "(not finalized)".
- merge the branch you've released to the chronologically-later
branch (usually "master"). You'll probably have to fix a merge
- conflict in configure.in (the version number).
+ conflict in configure.ac (the version number).
- push your changes and the tag to the central repository with
git push origin master dbus-X.Y dbus-X.Y.Z
- - scp your tarball to freedesktop.org server and copy it
- to /srv/dbus.freedesktop.org/www/releases/dbus. This should
- be possible if you're in group "dbus"
+ - scp your tarball to freedesktop.org server and copy it to
+ dbus.freedesktop.org:/srv/dbus.freedesktop.org/www/releases/dbus/dbus-X.Y.Z.tar.gz.
+ This should be possible if you're in group "dbus"
+
+ - Update the online documentation with `make -C doc maintainer-upload-docs`.
- update the wiki page http://www.freedesktop.org/Software/dbus by
adding the new release under the Download heading. Then, cut the
- post to dbus@lists.freedesktop.org announcing the release.
-After making a ".0" stable release
+Making a ".0" stable release
===
-After releasing, when you increment the version number in git, also
-move the ChangeLog to ChangeLog.pre-X-Y where X-Y is what you just
-released, e.g. ChangeLog.pre-1-0. Then create and cvs add a new empty
-ChangeLog. The last entry in ChangeLog.pre-1-0 should be the one about
-"Released 1.0".
-
-Add ChangeLog.pre-X-Y to EXTRA_DIST in Makefile.am.
+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.
-We create a branch for each stable release; sometimes the branch is
-not done immediately, instead it's possible to wait until someone has
-a not-suitable-for-stable change they want to make and then branch to
-allow committing that change.
+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 4ebb275ab7).
-The branch name should be dbus-X.Y-branch which is a branch that has
-releases versioned X.Y.Z
+Be extra-careful not to merge master (or any branch based on master) into a
+stable branch.
To branch:
- git branch dbus-X.Y-branch
+ git branch dbus-X.Y
and upload the branch tag to the server:
- git-push origin dbus-X.Y-branch
+ git push origin dbus-X.Y
To develop in this branch:
- git-checkout dbus-X.Y-branch
+ git checkout dbus-X.Y
Environment variables
===
"make check" runs all the deterministic test programs (i.e. not break-loader).
-"make check-coverage" is available if you configure with --enable-gcov and
-gives a complete report on test suite coverage. You can also run
-"test/decode-gcov foo.c" on any source file to get annotated source,
-after running make check with a gcov-enabled tree.
+"make lcov-check" is available if you configure with --enable-compiler-coverage
+and gives a complete report on test suite coverage.
Patches
===
- if there's a live unresolved controversy about a change,
don't commit it while the argument is still raging.
+ - at their discretion, members of the reviewer group may also commit
+ branches/patches under these conditions:
+
+ - the branch does not add or change API, ABI or wire-protocol
+
+ - the branch solves a known problem and is covered by the regression tests
+
+ - there are no objections from the rest of the review group within
+ a week of the patches being attached to Bugzilla
+
+ - the committer gets a positive review on Bugzilla from someone they
+ consider qualified to review the change (e.g. a colleague with D-Bus
+ experience; not necessarily a member of the reviewer group)
+
- regardless of reviews, to commit a patch:
- make check must pass
- the test suite must be extended to cover the new code
No reviewer should approve a patch without these attributes, and
failure on these points is grounds for reverting the patch.
-The reviewer group that can approve patches: Havoc Pennington, Michael
-Meeks, Alex Larsson, Zack Rusin, Joe Shaw, Mikael Hallendal, Richard
-Hult, Owen Fraser-Green, Olivier Andrieu, Colin Walters, Thiago
-Macieira, John Palmieri, Scott James Remnant.
-
+The reviewer group that can approve patches:
+
+Havoc Pennington <hp@pobox.net>
+Michael Meeks <michael.meeks@novell.com>
+Alexander Larsson <alexl@redhat.com>
+Zack Rusin <zack@kde.org>
+Joe Shaw <joe@assbarn.com>
+Mikael Hallendal <micke@imendio.com>
+Richard Hult <richard@imendio.com>
+Owen Fraser-Green <owen@discobabe.net>
+Olivier Andrieu <oliv__a@users.sourceforge.net>
+Colin Walters <walters@verbum.org>
+Thiago Macieira <thiago@kde.org>
+John Palmieri <johnp@redhat.com>
+Scott James Remnant <scott@netsplit.com>
+Will Thompson <will.thompson@collabora.co.uk>
+Simon McVittie <simon.mcvittie@collabora.co.uk>
+David Zeuthen <davidz@redhat.com>