bug-coreutils
[Top][All Lists]
Advanced

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

Re: [PATCH 1/2] dist: automate the post-release web-manual update proces


From: Jim Meyering
Subject: Re: [PATCH 1/2] dist: automate the post-release web-manual update process
Date: Tue, 03 Mar 2009 08:44:11 +0100

Eric Blake wrote:
> According to Jim Meyering on 3/2/2009 2:25 PM:
>> +
>> +.PHONY: web-manual
>> +web-manual:
>> +    @cd '$(srcdir)/doc'; \
>> +      $(SHELL) ../build-aux/gendocs.sh -o '$(abs_builddir)/doc/manual' \
>> +         --email $(PACKAGE_BUGREPORT) $(PACKAGE) \
>> +        "$(PACKAGE_NAME) - Core GNU utilities"
>
> That last bit is package-specific.  Should we factor 'Core GNU utilities'
> into a string supplied by cfg.mk?
>
>> +
>> +* Run ./configure && make maintainerclean
>
> maintainer-clean

Yep.

>> +* Ensure that the desired versions of autoconf, automake, bison, etc.
>> +  are in your PATH.
>
> should we mention HACKING for the complete list?

Definitely.  I even thought of that as I was writing the above ;-)

>> +* Run bootstrap, (assuming your local copy of gnulib is in /gnulib):
>> +  ./bootstrap --gnulib-srcdir=/gnulib
>
> Is it worth adding gnulib as a git submodule, so that you can freeze which
> gnulib commit id is associated with the release?  For an example, bison
> has taken that approach.

It's been on my list for a long time, but I haven't felt the need
and haven't investigated.  What do you think?
I noticed Paolo did that for sed, too.

>> +* Run the following to create release tarballs.  Your choice selects the
>> +  corresponding upload-to destination in the emitted gnupload command.
>> +
>> +    # "TYPE" must be major, beta or alpha
>> +    XZ_OPT=-9e make TYPE
>
> Shouldn't XZ_OPT be folded into maint.mk?

Yes.  I've added "v", too.  For its progress meter.

>> +    CVS_RSH=ssh \
>> +    cvs -d:ext:address@hidden:/web/coreutils co coreutils
>> +
>> +  Be sure to "cvs add" any files that "cvs status" marks with "?".
>
> 'cvs add -ko', so that strings that would otherwise look like CVS keywords
> are not inadvertently altered.

Good ideas.
Thanks for the suggestions.
I've applied this:

>From cb0d71399c27213cd01828969424fa6b2f451515 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Tue, 3 Mar 2009 08:24:29 +0100
Subject: [PATCH] maint: improve release-related process and documentation

* README-release: Fix typo. it's "maintainer-clean".
Refer to HACKING for full list of dependencies.
Use cvs add's -ko option to inhibit $Id$-style keyword expansion.
* maint.mk (web-manual): Factor out definition of $(manual_title).
(vc-dist): Set XZ_OPT=-9ev for the final "make dist".
* cfg.mk (manual_title): Define it here.
Suggestions from Eric Blake.
---
 README-release |    8 ++++----
 cfg.mk         |    3 +++
 maint.mk       |    6 ++++--
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/README-release b/README-release
index 59c084f..5082b7b 100644
--- a/README-release
+++ b/README-release
@@ -4,10 +4,10 @@ Here are most of the steps we (maintainers) follow when 
making a release.

     git checkout master; git pull

-* Run ./configure && make maintainerclean
+* Run ./configure && make maintainer-clean

 * Ensure that the desired versions of autoconf, automake, bison, etc.
-  are in your PATH.
+  are in your PATH.  See HACKING for the complete list.

 * Ensure that you're on "master" with no uncommitted diffs.
   This should produce no output: git checkout master; git diff
@@ -41,7 +41,7 @@ FIXME: enable excluded programs like arch? to get their 
manual pages?
   corresponding upload-to destination in the emitted gnupload command.

     # "TYPE" must be major, beta or alpha
-    XZ_OPT=-9e make TYPE
+    make TYPE

 * Test the tarball.  copy it to a few odd-ball systems and ensure that
   it builds and passes all tests.
@@ -90,6 +90,6 @@ Once all the builds and tests have passed,
     CVS_RSH=ssh \
     cvs -d:ext:address@hidden:/web/coreutils co coreutils

-  Be sure to "cvs add" any files that "cvs status" marks with "?".
+  Be sure to "cvs add -ko" any files that "cvs status" marks with "?".
   That is necessary whenever a new texinfo node is added.  Each becomes
   a new file in html_node that must then be "cvs add"ed.
diff --git a/cfg.mk b/cfg.mk
index aa84b9f..e220572 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -21,6 +21,9 @@ gnu_ftp_host-beta = alpha.gnu.org
 gnu_ftp_host-major = ftp.gnu.org
 gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))

+# Used in maint.mk's web-manual rule
+manual_title = Core GNU utilities
+
 url_dir_list = \
   ftp://$(gnu_rel_host)/gnu/coreutils

diff --git a/maint.mk b/maint.mk
index ee279fe..484e303 100644
--- a/maint.mk
+++ b/maint.mk
@@ -642,7 +642,7 @@ maintainer-distcheck:
 # Don't make a distribution if checks fail.
 # Also, make sure the NEWS file is up-to-date.
 vc-dist: $(local-check) cvs-check maintainer-distcheck
-       $(MAKE) dist
+       XZ_OPT=-9ev $(MAKE) dist

 # Use this to make sure we don't run these programs when building
 # from a virgin tgz file, below.
@@ -865,8 +865,10 @@ alpha beta major: $(local-check) writable-files

 .PHONY: web-manual
 web-manual:
+       @test -z "$(manual_title)" \
+         && { echo define manual_title in cfg.mk 1>&2; exit 1; } || :
        @cd '$(srcdir)/doc'; \
          $(SHELL) ../build-aux/gendocs.sh -o '$(abs_builddir)/doc/manual' \
             --email $(PACKAGE_BUGREPORT) $(PACKAGE) \
-           "$(PACKAGE_NAME) - Core GNU utilities"
+           "$(PACKAGE_NAME) - $(manual_title)"
        @echo " *** Upload the doc/manual directory to web-cvs."
--
1.6.2.rc1.285.gc5f54




reply via email to

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