diff options
author | Bernhard Voelker <mail@bernhard-voelker.de> | 2017-10-30 21:54:19 +0100 |
---|---|---|
committer | Bernhard Voelker <mail@bernhard-voelker.de> | 2018-03-14 20:44:14 +0100 |
commit | 1cc207f6ebddd3609c995f17756f995cf8847c32 (patch) | |
tree | 13d945f385c431bd98941bfc7c92878f7476b324 | |
parent | b00d14e97e503f259bbd34889573d1175f6724f3 (diff) | |
download | findutils-1cc207f6ebddd3609c995f17756f995cf8847c32.tar.gz |
maint: make inter-release --version output more useful
Now, each snapshot has a version "number" like 4.6-131-219-gda920ee,
which indicates that it is built using the 131st change set
(in _some_ repository) following the "v4.6" tag, and that da920ee
is a prefix of the commit SHA1.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* build-aux/.gitigore (/git-version-gen): Add entry.
* configure.ac: Run it to set the version from .tarball-version.
* Makefile.am (EXTRA_DIST): Add git-version-gen.
(dist-hook): Create .tarball-version in distribution tarballs,
never in a checked-out repository.
(AUTOMAKE_OPTIONS): Change from 'gnits' to 'gnu std-options readme-alpha'.
* .gitignore (.tarball-version): Add entry.
* doc/find-maint.texi (Making Releases): Adjust: tag before the build,
changed handling in NEWS, etc.
* NEWS (Changes to the build process): Document the change.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.am | 21 | ||||
-rw-r--r-- | NEWS | 9 | ||||
-rw-r--r-- | bootstrap.conf | 1 | ||||
-rw-r--r-- | build-aux/.gitignore | 1 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | doc/find-maint.texi | 21 |
7 files changed, 43 insertions, 18 deletions
@@ -24,5 +24,6 @@ Makefile Makefile.in patches stamp-h1 +.tarball-version tests /tool-versions.txt diff --git a/Makefile.am b/Makefile.am index 7e134122..cd4ca32a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,13 +15,21 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -AUTOMAKE_OPTIONS=gnits -# readme-alpha +AUTOMAKE_OPTIONS = gnu std-options readme-alpha + AM_CFLAGS = $(WARN_CFLAGS) -EXTRA_DIST = COPYING ChangeLog TODO config.h.in stamp-h.in \ - THANKS \ - tool-versions.txt README-hacking +EXTRA_DIST = \ + COPYING \ + ChangeLog \ + README-hacking \ + THANKS \ + TODO \ + build-aux/git-version-gen \ + config.h.in \ + stamp-h.in \ + tool-versions.txt + DISTCLEANFILES = tool-versions.txt @@ -41,8 +49,9 @@ tool-versions.txt: Makefile runtest --version ; echo ; \ makeinfo --version ) > $@ - +# Have .tarball-version based versions only in tarball builds. dist-hook: gen-ChangeLog findutils-check-pofiles findutils-check-testfiles + $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version # gen-Changelog must still work when $(top_srcdir)/.git does not exist # because "make distcheck" verifies that you can "make dist" from the @@ -1,6 +1,6 @@ GNU findutils NEWS - User visible changes. -*- outline -*- (allout) -* Major changes in release 4.7.0-git, YYYY-MM-DD +* Major changes in release ?.?.?, YYYY-MM-DD ** Changes to locate / updatedb @@ -113,6 +113,13 @@ Use --disable-silent-rules or "make V=1" to get verbose build output. xz is portable enough and in wide-enough use that distributing only .tar.xz files is enough. +Maintainer builds from the Git repository now derive the version string from +the version control system instead of using a fixed string (changed after each +release manually). As a result, the inter-release builds can now be +distinguished: e.g. "4.6.0.152-fe9c" is the 152th commit after the tag "v4.6.0" +and has the Git short hash "fe9c". Builds from an unclean tree are marked with +the suffix "-dirty". + * Major changes in release 4.6.0, 2015-12-28 ** Stable Release diff --git a/bootstrap.conf b/bootstrap.conf index 35c48b71..5c712c23 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -107,6 +107,7 @@ gnulib_modules=" getopt-gnu gettext gettimeofday + git-version-gen gpl-3.0 hash human diff --git a/build-aux/.gitignore b/build-aux/.gitignore index 2e264bff..c89860fa 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -25,3 +25,4 @@ /warn-on-use.h /ylwrap /gendocs.sh +/git-version-gen diff --git a/configure.ac b/configure.ac index 9ecf0b0c..ebcc5da3 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,12 @@ dnl Written by James Youngman. dnl Process this file with autoconf to produce a configure script. -AC_INIT([GNU findutils], 4.7.0-git, [bug-findutils@gnu.org]) +# Make inter-release version strings look like, e.g., v4.6-131-gda920ee, which +# indicates that it is built from the 131st delta (in _some_ repository) +# following the v4.6 tag, and that da920ee is a prefix of the commit SHA1. +AC_INIT([GNU findutils], + m4_esyscmd([build-aux/git-version-gen .tarball-version]), + [bug-findutils@gnu.org]) dnl Set the bug-report URL dnl diff --git a/doc/find-maint.texi b/doc/find-maint.texi index cfae49a1..4f636d81 100644 --- a/doc/find-maint.texi +++ b/doc/find-maint.texi @@ -1069,14 +1069,14 @@ uncommitted changes. that the tests pass. Verify this with @code{make distcheck}. @item Bugs; make sure all Savannah bug entries fixed in this release are fixed. -@item NEWS; make sure that the NEWS and configure.in file are updated -with the new release number (and checked in). -@item Build the release tarball; do this with @code{make distcheck}. -Copy the tarball somewhere safe. +@item NEWS; make sure that the NEWS file is updated with the new release +number (and checked in). @item Tag the release; findutils releases are tagged like this for example: v4.5.5. Previously a different format was in use: FINDUTILS_4_3_8-1. You can create a tag with the a command like this: @code{git tag -s -m "Findutils release v4.5.7" v4.5.7}. +@item Build the release tarball; do this with @code{make distcheck}. +Copy the tarball somewhere safe. @item Prepare the upload and upload it. @xref{Automated FTP Uploads, ,Automated FTP Uploads, maintain, Information for Maintainers of GNU Software}, @@ -1085,12 +1085,13 @@ for detailed upload instructions. file which explains what's changed. Announcements for test releases should just go to @email{bug-findutils@@gnu.org}. Announcements for stable releases should go to @email{info-gnu@@gnu.org} as well. -@item Bump the release numbers in git; edit the @file{configure.in} -and @file{NEWS} files to advance the release numbers. For example, -if you have just released @samp{4.6.2}, bump the release number to -@samp{4.6.3-git}. The point of the @samp{-git} suffix here is that a -findutils binary built from git will bear a release number indicating -it's not built from the ``official'' source release. +@item Post-release administrativa: add a new dummy release header in NEWS: + +@code{* Major changes in release ?.?.?, YYYY-MM-DD} + +and update the @code{old_NEWS_hash} in @file{cfg.mk} with +@code{make update-NEWS-hash}. +Commit both changes. @item Close bugs; any bugs recorded on Savannah which were fixed in this release should now be marked as closed. Update the @samp{Fixed Release} field of these bugs appropriately and make sure the |