m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 3/3] maint: automate creation of release tag


From: Eric Blake
Subject: [PATCH 3/3] maint: automate creation of release tag
Date: Sat, 31 Dec 2016 15:55:33 -0600

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 <address@hidden>
---
 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]