The gnulib makefile was already set up to automate things with 'make release ...', but we were still doing things by hand, and thereby risking missing some steps.
* m4/gnulib-cache.m4: Import do-release-commit-and-tag. * gnulib: Update, for latest version of the script. * HACKING: Mention its use. Signed-off-by: Eric Blake <[email protected]> --- HACKING | 43 +++++++++++++++++++++++-------------------- gnulib | 2 +- m4/gnulib-cache.m4 | 3 ++- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/HACKING b/HACKING index 472d222..bcae26e 100644 --- a/HACKING +++ b/HACKING @@ -200,25 +200,18 @@ and is not part of a release distribution. helps, since by default, m4-announce rejects all posts, so you have to get an administrator to allow your announcement through. -* Make sure you have wget installed. - -* Make sure you have GNU make installed. - -* Make sure you have an up-to-date version of help2man installed. +* Make sure you have appropriate up-to-date tools installed, including: + wget + GNU make + help2man + texi2dvi * Make sure your locale is sane, e.g. by exporting LC_ALL=C. * Make sure you are happy with the particular gnulib version recorded as the gnulib submodule. If necessary to update to the latest, run: git submodule foreach git pull origin master - git commit -m 'Update gnulib submodule to latest.' gnulib - -* Update the version number in NEWS, 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). + git commit -m 'maint: update gnulib submodule to latest' gnulib * Run ./bootstrap, perhaps with environment variables set. @@ -228,17 +221,28 @@ and is not part of a release distribution. be up-to-date with m4 --help output, but `make dist' intentionally does not depend on running a built binary. +* Make sure README properly describes the current release type (stable, + alpha, or current). + * 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 release-commit RELEASE="X.Y $type"' (for the correct X.Y and + release type), to update the version number in NEWS. 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). This tags the potetntial release, but do not push + anything upstream at this point. * Run `make distcheck'. If there are any problems, fix them, then run - `git tag -d v<version>' and start again from the `git commit' step. + `git tag -d v<version>; git reset --hard HEAD^' to undo the tag, and + start again from the `git commit' step. * Run `make <target>', with target set to `stable', `alpha', or `beta' - as appropriate. This will run various additional checks. + as appropriate. This will run various additional checks, as well as + spell out the preferred gnupload commands to use in the next step, and + create a post-release commit that updates NEWS for subsequent edits. * Run './build-aux/gnupload --to [dest].gnu.org:m4 --symlink-regex [files]' to create detached gpg signature and clear signed directive files, and @@ -255,9 +259,8 @@ and is not part of a release distribution. it through (the list is normally set to silently discard all posts, even from subscribers). -* Update NEWS and README 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 push origin refs/tags/v<version>' to push the release tag and + complete the release. * For non-alpha releases, update the webpages. Replace manual.html with the new one (generate with `make web-manual'). diff --git a/gnulib b/gnulib index b366f53..52a5514 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit b366f53ec394e9886c60c851243af59952480a73 +Subproject commit 52a5514ddf33782915338944596be28271285fe5 diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 index 612512c..ede6dbf 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -27,7 +27,7 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --local-dir=gl --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests --avoid=tls-tests --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec close-stream closein config-h dirname error execute fclose fdl-1.3 fflush filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen gitlog-to-changelog gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp obstack progname regex rename sigaction sigpipe spawn-pipe stdbool stdint stdlib-safer strsignal strstr strtod unlocked-io update-copyright vc-list-files verror version-etc version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix +# gnulib-tool --import --local-dir=gl --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests --avoid=tls-tests --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec close-stream closein config-h dirname do-release-commit-and-tag error execute fclose fdl-1.3 fflush filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen gitlog-to-changelog gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp obstack progname regex rename sigaction sigpipe spawn-pipe stdbool stdint stdlib-safer strsignal strstr strtod unlocked-io update-copyright vc-list-files verror version-etc version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl]) @@ -44,6 +44,7 @@ gl_MODULES([ closein config-h dirname + do-release-commit-and-tag error execute fclose -- 2.9.3 _______________________________________________ M4-patches mailing list [email protected] https://lists.gnu.org/mailman/listinfo/m4-patches
