2010-04-16 04:55:11 +02:00
|
|
|
Here are the steps to follow to create a new notmuch release.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 04:55:11 +02:00
|
|
|
These steps assume that a process (not described here) has already
|
|
|
|
been followed to determine the features and bug fixes to be included
|
|
|
|
in a release, and that adequate testing by the community has already
|
|
|
|
been performed. The little bit of testing performed here is a safety
|
|
|
|
check, and not a substitute for wider testing.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 04:55:11 +02:00
|
|
|
OK, so the code to be released is present and committed to your git
|
|
|
|
repository. From here, there are just a few steps to release:
|
|
|
|
|
|
|
|
1) Verify that the NEWS file is up to date.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
|
|
|
Read through the entry at the top of the NEWS file and see if
|
|
|
|
you are aware of any major features recently added that are
|
2010-11-12 05:41:06 +01:00
|
|
|
not mentioned there. If so, please add them, (and ask the
|
2010-04-06 00:00:37 +02:00
|
|
|
authors of the commits to update NEWS in the future).
|
|
|
|
|
2010-04-16 05:50:46 +02:00
|
|
|
2) Verify that the library version in lib/Makefile.local is correct
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 05:50:46 +02:00
|
|
|
See the instructions there for how to increment it.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 05:50:46 +02:00
|
|
|
The version should have been updated with any commits that
|
2011-11-16 12:21:35 +01:00
|
|
|
added API _in a non-upwardly compatible_ way, but do check
|
|
|
|
that that is the case. The command below can be useful for
|
|
|
|
inspecting header-file changes since the last release X.Y:
|
2010-04-16 05:50:46 +02:00
|
|
|
|
|
|
|
git diff X.Y..HEAD -- lib/notmuch.h
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 05:50:46 +02:00
|
|
|
Commit this change, if any.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2011-11-16 12:21:35 +01:00
|
|
|
3) Update the debian/libnotmuchX.symbols file
|
2011-05-05 18:38:38 +02:00
|
|
|
|
|
|
|
If the library version changed at all (step 2) it probably
|
|
|
|
means that symbols have changed/been added, in which case the
|
|
|
|
debian symbols file also needs to be updated:
|
|
|
|
|
|
|
|
dpkg-buildpackage -uc -us
|
2011-11-16 12:21:35 +01:00
|
|
|
dpkg-gensymbols -plibnotmuchX | patch -p0
|
2011-05-05 18:38:38 +02:00
|
|
|
|
|
|
|
Carefully review the changes to debian/libnotmuch1.symbols to
|
2011-11-16 12:21:35 +01:00
|
|
|
make sure there are no unexpected changes. Remove any debian
|
|
|
|
versions from symbols.
|
2011-05-05 18:38:38 +02:00
|
|
|
|
|
|
|
Commit this change, if any.
|
|
|
|
|
|
|
|
4) Upgrade the version in the file "version"
|
2010-04-16 19:58:53 +02:00
|
|
|
|
|
|
|
The scheme for the release number is as follows:
|
|
|
|
|
|
|
|
A major milestone in usability causes an increase in the major
|
|
|
|
number, yielding a two-component version with a minor number
|
|
|
|
of 0, (such as "1.0" or "2.0").
|
|
|
|
|
|
|
|
Otherwise, releases with changes in features cause an increase
|
|
|
|
in the minor number, yielding a two-component version, (such
|
|
|
|
as "1.1" or "1.2").
|
|
|
|
|
|
|
|
Finally, releases that do not change "features" but are merely
|
2010-11-02 00:16:03 +01:00
|
|
|
bug fixes either increase the micro number or add it (starting
|
|
|
|
at ".1" if not present). So a bug-fix release from "1.0" would
|
|
|
|
be "1.0.1" and a subsequent bug-fix release would be "1.0.2"
|
|
|
|
etc.
|
2010-04-16 19:58:53 +02:00
|
|
|
|
|
|
|
Commit this change.
|
|
|
|
|
2011-05-05 18:38:38 +02:00
|
|
|
5) Create an entry for the new release in debian/changelog
|
2010-04-16 19:23:50 +02:00
|
|
|
|
|
|
|
The syntax of this file is tightly restricted, but the
|
2010-04-27 11:07:45 +02:00
|
|
|
available emacs mode (see the dpkg-dev-el package) helps.
|
|
|
|
The entries here will be the Debian-relevant single-line
|
2010-04-16 19:23:50 +02:00
|
|
|
description of changes from the NEWS entry. And the version
|
|
|
|
must match the version in the next step.
|
|
|
|
|
|
|
|
Commit this change.
|
|
|
|
|
|
|
|
XXX: It would be great if this step were automated as part of
|
|
|
|
release, (taking entries from NEWS and the version from the
|
2010-04-16 19:58:53 +02:00
|
|
|
version file, and creating a new commit, etc.)
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2011-05-05 18:38:38 +02:00
|
|
|
6) Run "make release" which will perform the following steps.
|
2010-04-16 22:13:12 +02:00
|
|
|
|
|
|
|
Note: If any problem occurs during the process, (such as a lintian
|
|
|
|
warning that you decide should be fixed), you can abort at the
|
|
|
|
prompt for your GPG passphrase and nothing will have been uploaded
|
|
|
|
yet.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-16 19:58:53 +02:00
|
|
|
* Ensure that the version consists only of digits and periods
|
2010-04-16 22:00:35 +02:00
|
|
|
* Ensure that version and debian/changelog have the same version
|
2010-04-16 05:03:30 +02:00
|
|
|
* Verify that the source tree is clean
|
2010-04-16 01:08:37 +02:00
|
|
|
* Compile the current notmuch code (aborting release if it fails)
|
|
|
|
* Run the notmuch test suite (aborting release if it fails)
|
2010-04-16 22:13:12 +02:00
|
|
|
* Compile a Debian package
|
|
|
|
* Copy the tar file from what was made for Debian package
|
2010-04-16 05:03:30 +02:00
|
|
|
* Generate a .sha1 sum file for the tar file
|
2010-04-06 00:00:37 +02:00
|
|
|
* Sign the sha1sum using your GPG setup (asks for your GPG password)
|
2010-04-16 05:03:30 +02:00
|
|
|
* Check that no release exists with the current version
|
2010-04-06 00:00:37 +02:00
|
|
|
* scp the three files to appear on http://notmuchmail.org/releases
|
|
|
|
* Create a LATEST-notmuch-version file (after deleting any old one)
|
2010-04-16 22:13:12 +02:00
|
|
|
* Place local copies of the tar, sha1, and gpg files into releases
|
|
|
|
* Upload the Debian package
|
|
|
|
* Place a local copy of the Debian package files in releases
|
2010-04-06 00:00:37 +02:00
|
|
|
* Tag the entire source tree with a tag of the form X.Y.Z, and sign
|
|
|
|
the tag with your GPG key (asks for your GPG password, and you
|
|
|
|
may need to set GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL to match
|
|
|
|
your public-key's setting or this fails.)
|
2010-04-06 00:56:23 +02:00
|
|
|
* Push that tag
|
2010-04-06 00:00:37 +02:00
|
|
|
* Provide some text for the release announcement (see below).
|
|
|
|
|
2011-05-05 18:38:38 +02:00
|
|
|
7) Send a message to notmuch@notmuchmail.org to announce the release.
|
2010-04-06 00:00:37 +02:00
|
|
|
|
2010-04-10 04:12:36 +02:00
|
|
|
Use the text provided from "make release" above, (if for some
|
|
|
|
reason you lose this message, "make release-message" prints
|
|
|
|
it again for you.
|