From e6d20b7b8f47bcd5da14639c31a4943e188c070d Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Fri, 16 Apr 2010 13:13:12 -0700 Subject: [PATCH] make release: Add Debian package building and upload Finally, a single button to push to do all the uploading. --- .gitignore | 1 - Makefile.local | 6 ++++++ RELEASING | 14 +++++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e00355ca..217440d5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,3 @@ libnotmuch.so* .*.swp *.elc releases -debian-build diff --git a/Makefile.local b/Makefile.local index 854cf520..5bb570b1 100644 --- a/Makefile.local +++ b/Makefile.local @@ -89,11 +89,17 @@ dist: $(TAR_FILE) release: verify-source-tree-and-version $(MAKE) VERSION=$(VERSION) verify-newer $(MAKE) VERSION=$(VERSION) test + rm -rf ./debian-build + git-buildpackage + cp debian-build/notmuch_$(VERSION).tar.gz notmuch-$(VERSION).tar.gz $(MAKE) VERSION=$(VERSION) $(GPG_FILE) scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR) ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)" mkdir -p releases mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases + (cd debian-build; dput *.changes) + mv debian-build/* releases + rmdir debian-build git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION) git push origin $(VERSION) $(MAKE) VERSION=$(VERSION) release-message > $(PACKAGE)-$(VERSION).announce diff --git a/RELEASING b/RELEASING index 70a2ec54..d314a6c6 100644 --- a/RELEASING +++ b/RELEASING @@ -69,20 +69,28 @@ repository. From here, there are just a few steps to release: release, (taking entries from NEWS and the version from the version file, and creating a new commit, etc.) -5) Run "make release" which will perform the following steps: +5) 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. * 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) - * Generate the final tar file + * 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 three files in the releases directory + * 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