[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