summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2016-12-31 15:33:14 -0600
committerEric Blake <eblake@redhat.com>2016-12-31 16:28:16 -0600
commit753698baa9a3fadd0fef27db27376f7a09c9ccc5 (patch)
tree2da9d8c842968594476586e8d180e33af5ea19ec
parent5456676ea90dfedd9b54c843f15b006d02150d06 (diff)
downloadm4-753698baa9a3fadd0fef27db27376f7a09c9ccc5.tar.gz
maint: automate creation of release tag
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 (gl_MODULES): Import do-release-commit-and-tag. * gnulib: Update, for latest version of the script. * HACKING: Mention its use. Signed-off-by: Eric Blake <eblake@redhat.com>
-rw-r--r--HACKING49
m---------gnulib0
-rw-r--r--m4/gnulib-cache.m43
3 files changed, 29 insertions, 23 deletions
diff --git a/HACKING b/HACKING
index 472d222b..c89abfff 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 potential 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,12 +259,13 @@ 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').
+* For non-alpha releases, update the webpages accessible via
+ http://www.gnu.org/software/m4/manual/
+ by running this:
+ build-aux/gnu-web-doc-update --mirror
* Make a News entry on savannah
diff --git a/gnulib b/gnulib
-Subproject b366f53ec394e9886c60c851243af59952480a7
+Subproject 52a5514ddf33782915338944596be28271285fe
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index 612512c0..ede6dbf2 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