diff options
author | Eric Blake <ebb9@byu.net> | 2008-04-02 14:12:24 -0600 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2008-04-02 14:14:56 -0600 |
commit | d8075cd139b9523c1b59f4f35bdf80e6760d31e1 (patch) | |
tree | 9feddb0d006e70cd5f30e4106d068160a3bf3332 | |
parent | a86f1dcafc38e4e18ba5dc87a18cafaf44fe8a09 (diff) | |
download | m4-d8075cd139b9523c1b59f4f35bdf80e6760d31e1.tar.gz |
Improve release process.
* maint.mk (alpha): Check for PREV_VERSION setting sooner, and
remove tag operation.
(version-check): Enhance this check.
(prev-tarball): Depend on version-check.
(web-manual): Fix VPATH usage.
(this-vc-tag): Delete, and mention need to run tag...
* HACKING: ...here, prior to make maintainer-distcheck.
Update the instructions to match this particular release process.
* Makefile.am (.version, announcement): Allow for VPATH build.
* cfg.mk (gnulib_dir): Likewise.
* doc/Makefile.am ($(srcdir)/m4.1): Include release number in man
page.
Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit c07173b0a58b56c07633a28323d56451b98b7de5)
Conflicts:
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | HACKING | 53 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | cfg.mk | 2 | ||||
-rw-r--r-- | doc/Makefile.am | 8 | ||||
-rw-r--r-- | maint.mk | 23 |
6 files changed, 61 insertions, 45 deletions
@@ -1,3 +1,19 @@ +2008-04-02 Eric Blake <ebb9@byu.net> + + Improve release process. + * maint.mk (alpha): Check for PREV_VERSION setting sooner, and + remove tag operation. + (version-check): Enhance this check. + (prev-tarball): Depend on version-check. + (web-manual): Fix VPATH usage. + (this-vc-tag): Delete, and mention need to run tag... + * HACKING: ...here, prior to make maintainer-distcheck. + Update the instructions to match this particular release process. + * Makefile.am (.version, announcement): Allow for VPATH build. + * cfg.mk (gnulib_dir): Likewise. + * doc/Makefile.am ($(srcdir)/m4.1): Include release number in man + page. + 2008-03-27 Eric Blake <ebb9@byu.net> Add test for divert bug on 2007-05-28, patched 2007-07-21. @@ -41,7 +41,7 @@ and is not part of a release distribution. * The master M4 repository is stored in git. * Before you can build from git, you need to bootstrap. This requires: - - A pre-installed version of GNU M4 1.4 or later, built from a package + - A pre-installed version of GNU M4 1.4.5 or later, built from a package - Autoconf 2.60 or later - Automake 1.10.1 or later - Help2man 1.29 or later @@ -81,7 +81,7 @@ and is not part of a release distribution. liberally, on as many platforms as you can. Use as many compilers and linkers you can. -* For branch-1_4, the testsuite is generated from the documentation. +* For branch-1.6, the testsuite is generated from the documentation. All instances of @example in doc/m4.texinfo that are not preceeded by "@comment ignore" are turned into tests in the checks directory. @@ -195,11 +195,12 @@ yyyy-mm-dd Name of Author <email@address> (tiny change) * Make sure your locale is sane, e.g. by exporting LC_ALL=C. -* Update the version number in configure.ac. - See http://www.gnu.org/software/libtool/contribute.html for details of - the numbering scheme (m4 uses the same scheme as libtool). - -* Update NEWS, configure.ac, README, ChangeLog. +* Update the version number in NEWS and ChangeLog, and mention in README + whether the release is stable. See + http://www.gnu.org/software/libtool/contribute.html for details of the + numbering scheme (M4 uses a similar scheme to libtool, although + intra-release versions carry more information thanks to + git-version-gen). * Run ./bootstrap. @@ -209,43 +210,51 @@ yyyy-mm-dd Name of Author <email@address> (tiny change) be up-to-date with m4 --help output, but `make dist' intentionally does not depend on running a built binary. -* Run `make maintainer-distcheck'. If there are any problems, fix them - and start again. - * Run `git commit' from the source tree if there are any changes from the previous steps. +* Run `git tag -s -m <version> -u <gpg_key> v<version>' with the desired + version number. Do not push anything upstream at this point. + +* Run `make maintainer-distcheck'. If there are any problems, fix them, + run `git tag -d v<version>' and start again from the `git commit' step. + * Run `make <target> PREV_VERSION=maj.min[.mic[alpha]]', with target set to `major', `alpha', or `beta' as appropriate. This will run various - additional checks, tag the tree with release-$(VERSION), and create - diff and xdelta files from the previous version. + additional checks and create diff and xdelta files from the previous + version. * Run './build-aux/gnupload --to [dest].gnu.org:m4 [files]' to create detached gpg signature and clear signed directive files, and upload the combination to the correct location. For an alpha release, gnupload will place files in alpha.gnu.org, in /incoming/alpha, and the xdelta file is not strictly necessary. For a full release, - gnupload will place files in ftp.gnu.org, in /incoming/ftp. + gnupload will place files in ftp.gnu.org, in /incoming/ftp. Verify + that the files uploaded successfully before sending an announcement. * Send announcement to m4-discuss@gnu.org, m4-announce@gnu.org, and autotools-announce@gnu.org. If not an alpha send to info-gnu@gnu.org as well. Use /tmp/announce-m4-<version>, created during the above - make run, as a starting point. Contact a list administrator for - m4-announce in advance to ensure your post will make it through (the - list is normally set to silently discard all posts, even from - subscribers). + `make <target>' run, as a starting point. Contact a list + administrator for m4-announce in advance to ensure your post will make + it through (the list is normally set to silently discard all posts, + even from subscribers). * Update version number in configure.ac to next alpha number. See http://www.gnu.org/software/libtool/contribute.html for details of the numbering scheme. -* Update NEWS, configure.ac, ChangeLog. +* Update NEWS, README, and ChangeLog to start the intra-release changes, + and run `git commit'. Then run `git push origin refs/tags/v<version>' + to push the release tag and complete the release. -* Run `git commit' and `git push origin refs/tags<version>' to push the - release tag. +* For non-alpha releases, update the webpages. Run `make web-manual', + then copy the contents of doc/manual into a CVS checkout of the M4 + manual repository. Also edit m4.html before doing a CVS checkin. + export CVS_RSH=ssh + cvs -z3 -d:ext:<user>@cvs.savannah.gnu.org:/web/m4 co m4 -* For non-alpha releases, update the webpages. Replace manual.html with - the new one (generate with `make web-manual'). +* Post a news blurb on https://savannah.gnu.org/projects/m4. -- Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. diff --git a/Makefile.am b/Makefile.am index 81ea47e4..a67b4159 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,8 +34,8 @@ MAINTAINERCLEANFILES = COPYING INSTALL Makefile.in aclocal.m4 \ ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = --enable-changeword -BUILT_SOURCES = .version -.version: +BUILT_SOURCES = $(top_srcdir)/.version +$(top_srcdir)/.version: echo $(VERSION) > $@-t && mv $@-t $@ # Arrange so that .tarball-version appears only in the distribution @@ -34,4 +34,4 @@ local-checks-to-skip = changelog-check # The local directory containing the checked-out copy of gnulib used in this # release. Used solely to get gnulib's SHA1 for the "announcement" target. -gnulib_dir = ../gnulib +gnulib_dir = $(srcdir)/../gnulib diff --git a/doc/Makefile.am b/doc/Makefile.am index b5cd3605..b1b7eac8 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,6 +1,6 @@ ## Makefile.am - template for generating Makefile via Automake ## -## Copyright (C) 2006, 2007 Free Software Foundation, Inc. +## Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. ## ## This file is part of GNU M4. ## @@ -27,15 +27,15 @@ MAINTAINERCLEANFILES = $(man_MANS) gendocs_template SUFFIXES = .1 HELP2MAN = $(SHELL) $(top_srcdir)/build-aux/missing --run help2man -# Depend on configure.ac for version, m4.c for usage text. Do not depend on +# Depend on ../.version for version, m4.c for usage text. Do not depend on # built m4 executable, since not everyone has help2man or perl. # Build the man page once in the srcdir, rather than in every VPATH build # dir, to match how automake builds info pages. This is safe for 'make # distcheck' since it is distributed pre-built. -$(srcdir)/m4.1: $(top_srcdir)/configure.ac $(top_srcdir)/src/m4.c +$(srcdir)/m4.1: $(top_srcdir)/.version $(top_srcdir)/src/m4.c @if test -x ../src/m4$(EXEEXT) ; then \ echo "Updating man page m4.1" ; \ - $(HELP2MAN) --name="macro processor" --source=FSF \ + $(HELP2MAN) --name="macro processor" --source='$(PACKAGE_STRING)' \ --info-page=m4 --output=$@ ../src/m4$(EXEEXT) ; \ else \ echo "WARNING: The \`man' page \`$@' cannot be updated yet."; \ @@ -27,19 +27,11 @@ gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null && echo --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' -CVS = cvs GIT = git VC = $(GIT) VC-tag = git tag -s -m '$(VERSION)' -u $(gpg_key_ID) VERSION_REGEXP = $(subst .,\.,$(VERSION)) -ifeq ($(VC),$(GIT)) -this-vc-tag = v$(VERSION) -else -tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') -tag-this-version = $(subst .,_,$(VERSION)) -this-vc-tag = $(tag-package)-$(tag-this-version) -endif my_distdir = $(PACKAGE)-$(VERSION) # Ensure that we use only the standard $(VAR) notation, @@ -130,19 +122,19 @@ my-distcheck: $(local-check) check gnulib-version = $$(cd $(gnulib_dir) && git describe) announcement: NEWS ChangeLog $(rel-files) - @./build-aux/announce-gen \ + @$(srcdir)/build-aux/announce-gen \ --release-type=$(RELEASE_TYPE) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ - --news=NEWS \ + --news=$(srcdir)/NEWS \ --bootstrap-tools=autoconf,automake,gnulib \ --gnulib-version=$(gnulib-version) \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: alpha beta major -alpha beta major: $(local-check) +alpha beta major: $(local-check) version-check test $@ = major \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ @@ -151,7 +143,6 @@ alpha beta major: $(local-check) $(MAKE) news-date-check changelog-check $(MAKE) deltas $(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir) - $(VC-tag) $(this-vc-tag) .PHONY: version-check version-check: @@ -162,12 +153,12 @@ version-check: exit 1; \ ;; \ esac + @if test -z "$(PREV_VERSION)"; \ + then echo "PREV_VERSION is not set"; exit 1; fi .PHONY: prev-tarball -prev-tarball: +prev-tarball: version-check ## Make sure we have the previous release tarball in the tree. - @if test -z "$(PREV_VERSION)"; \ - then echo "PREV_VERSION is not set"; exit 1; fi @ofile="$(PACKAGE)-$(PREV_VERSION).tar.gz"; \ if test -f $$ofile; then :; \ else echo "Cannot make deltas without $$ofile"; exit 1; fi @@ -226,6 +217,6 @@ delta-xdelta: prev-tarball new-tarball got-xdelta .PHONY: web-manual web-manual: @cd ./doc ; \ - $(SHELL) $(srcdir)/build-aux/gendocs.sh $(PACKAGE) \ + $(SHELL) $(abs_srcdir)/build-aux/gendocs.sh $(PACKAGE) \ "GNU $(PACKAGE)- GNU macro processor" @echo " *** Upload the doc/manual directory to web-cvs." |