[Top][All Lists]
[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