See the instructions there for how to increment it.
The version should have been updated with any commits that
- added API, 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:
+ 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:
git diff X.Y..HEAD -- lib/notmuch.h
- Note: We currently don't plan to increment
- LIBNOTMUCH_VERSION_MAJOR beyond 1, so if there *are*
- incompatible changes to the library interface, then
- stop. Don't release. Figure out the plan on the notmuch
- mailing list.
-
Commit this change, if any.
-3) Update the debian/libnotmuch1.symbols file
+3) Update the debian/libnotmuchX.symbols file
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
- dpkg-gensymbols -plibnotmuch1 | patch -p0
+ dpkg-gensymbols -plibnotmuchX | patch -p0
Carefully review the changes to debian/libnotmuch1.symbols to
- make sure there are no unexpected changes.
+ make sure there are no unexpected changes. Remove any debian
+ versions from symbols.
Commit this change, if any.
be "1.0.1" and a subsequent bug-fix release would be "1.0.2"
etc.
- Commit this change.
+ When you are happy with the file 'version', run
+
+ make update-versions
+
+ to propagate the version to the other places needed.
+
+ Commit these changes.
5) Create an entry for the new release in debian/changelog
6) Run "make release" which will perform the following steps.
- 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.
+ Note: in order to really upload anything, set the make variable
+ REALLY_UPLOAD=yes
* Ensure that the version consists only of digits and periods
* Ensure that version and debian/changelog have the same version
* Verify that the source tree is clean
* Compile the current notmuch code (aborting release if it fails)
* Run the notmuch test suite (aborting release if it fails)
- * Compile a Debian package
- * Copy the tar file from what was made for Debian package
- * Generate a .sha1 sum file for the tar file
- * Sign the sha1sum using your GPG setup (asks for your GPG password)
* Check that no release exists with the current version
- * scp the three files to appear on http://notmuchmail.org/releases
- * Create a LATEST-notmuch-version file (after deleting any old one)
- * 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
- * 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.)
- * Push that tag
+ * Make a signed tag
+ * Generate a tar file from this tag
+ * Generate a .sha1 sum file for the tar file and GPG sign it.
+ * Commit a (delta for a) copy of the tar file using pristine-tar
+ * Tag for the debian version
+ * if REALLY_UPLOAD=yes
+ - push the signed tag to the origin
+ XXX FIXME push debian tag
+ - scp tarball to web site
* Provide some text for the release announcement (see below).
7) Send a message to notmuch@notmuchmail.org to announce the release.