This fixes release procedure problems discovered whilst making

the 1.5.2 release.

* Makefile.am (cvs-dist): Because we check whether ChangeLog
has been committed, this rule can't be run with uncommitted
source so we can't run 'commit' and don't need to run
'make dist' a second time.  Fix CVS tag as it should be
"release-X" not "Release-X".
(cvs_commit): New rule for the cvs-release chain that runs
'commit'
(cvs-release): Depend on cvs-commit, depend on deltas instead of
cvs-diff and xdelta.
(cvs-diff): Removed, replaced with delta-diff.
(delta-diff): Unpack and diff the old and new tarballs rather
than using CVS, so we get a genuinely complete diff.
(xdelta): Removed, replaced with delta-xdelta.
(got-xdelta): New rule for improved reading.
(delta-xdiff): Copied and cleaned up version of old xdelta rule.
(deltas): Depends on delta-diff and delta-xdelta (make deltas).
(cvs-news): Don't depend on timestamps, cvs-dist itself does now.
(prev-tarball): This is the only place we need a LASTRELEASE check
so copy the code here and remove the CHECK_RELEASE variable.
(new-tarball): Check there's a new tarball (did cvs-dist work?)
(FETCHFILES): Remove obsolete libltdl mentions.
* README-alpha: Update CVS instructions as everything's changed
on Savannah.
(Release procedure): Update NEWS and ChangeLog after changing
the version number (both times); Run 'make fetch' after running
'configure' (difficult to do it beforehand); Require 'commit'
before 'make cvs-dist' as that checks ChangeLog is committed;
'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE
to make instead of OLDVERSION (and it's mandatory); Clean up
uploading paragraph; Clearer announcement sending instruction;
Removed ftp-upload@gnu.org mail as that's not necessary now;
Make web page updating instructions a bit clearer; Add an instruction
to update the manual for non-alphas.
(Alpha release note template): Add a Subject; update CVS instructions.
(Full release note template): Add a Subject; update CVS instructions.
* configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk
about bz2 files in our release announcements; remove old reference
to OLDVERSION.
This commit is contained in:
Scott James Remnant 2004-01-27 12:38:47 +00:00
parent a702e8a9fb
commit d608987264
4 changed files with 145 additions and 81 deletions

View File

@ -1,3 +1,47 @@
2004-01-27 Scott James Remnant <scott@netsplit.com>
This fixes release procedure problems discovered whilst making
the 1.5.2 release.
* Makefile.am (cvs-dist): Because we check whether ChangeLog
has been committed, this rule can't be run with uncommitted
source so we can't run 'commit' and don't need to run
'make dist' a second time. Fix CVS tag as it should be
"release-X" not "Release-X".
(cvs_commit): New rule for the cvs-release chain that runs
'commit'
(cvs-release): Depend on cvs-commit, depend on deltas instead of
cvs-diff and xdelta.
(cvs-diff): Removed, replaced with delta-diff.
(delta-diff): Unpack and diff the old and new tarballs rather
than using CVS, so we get a genuinely complete diff.
(xdelta): Removed, replaced with delta-xdelta.
(got-xdelta): New rule for improved reading.
(delta-xdiff): Copied and cleaned up version of old xdelta rule.
(deltas): Depends on delta-diff and delta-xdelta (make deltas).
(cvs-news): Don't depend on timestamps, cvs-dist itself does now.
(prev-tarball): This is the only place we need a LASTRELEASE check
so copy the code here and remove the CHECK_RELEASE variable.
(new-tarball): Check there's a new tarball (did cvs-dist work?)
(FETCHFILES): Remove obsolete libltdl mentions.
* README-alpha: Update CVS instructions as everything's changed
on Savannah.
(Release procedure): Update NEWS and ChangeLog after changing
the version number (both times); Run 'make fetch' after running
'configure' (difficult to do it beforehand); Require 'commit'
before 'make cvs-dist' as that checks ChangeLog is committed;
'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE
to make instead of OLDVERSION (and it's mandatory); Clean up
uploading paragraph; Clearer announcement sending instruction;
Removed ftp-upload@gnu.org mail as that's not necessary now;
Make web page updating instructions a bit clearer; Add an instruction
to update the manual for non-alphas.
(Alpha release note template): Add a Subject; update CVS instructions.
(Full release note template): Add a Subject; update CVS instructions.
* configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk
about bz2 files in our release announcements; remove old reference
to OLDVERSION.
2004-01-25 Scott James Remnant <scott@netsplit.com> 2004-01-25 Scott James Remnant <scott@netsplit.com>
* NEWS: Include 1.5.2 release information. * NEWS: Include 1.5.2 release information.

View File

@ -87,12 +87,9 @@ install-data-local:
## not to anybody else (inspiration from automake/Makefile.am). ## ## not to anybody else (inspiration from automake/Makefile.am). ##
## ---------------------------------------------------------------- ## ## ---------------------------------------------------------------- ##
CHECK_LASTRELEASE = if test -z "$(LASTRELEASE)"; \
then echo "LASTRELEASE is not set"; exit 1; fi
.PHONY: cvs-release .PHONY: cvs-release
cvs-release: version-check prev-tarball cvs-news fetch cvs-dist cvs-diff xdelta cvs-release: version-check prev-tarball cvs-news fetch cvs-commit cvs-dist deltas
@$(CHECK_LASTRELEASE); tarname="$(PACKAGE)-$(VERSION).tar.gz"; \ @tarname="$(PACKAGE)-$(VERSION).tar.gz"; \
diffname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \ diffname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \
xdeltaname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \ xdeltaname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \
echo " *** Upload $$tarname, $$tarname.sig,";\ echo " *** Upload $$tarname, $$tarname.sig,";\
@ -115,9 +112,11 @@ version-check:
.PHONY: prev-tarball .PHONY: prev-tarball
prev-tarball: prev-tarball:
## Make sure we have the previous release tarball in the tree. ## Make sure we have the previous release tarball in the tree.
@$(CHECK_LASTRELEASE); ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \ @if test -z "$(LASTRELEASE)"; \
then echo "LASTRELEASE is not set"; exit 1; fi
@ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \
if test -f $$ofile; then :; \ if test -f $$ofile; then :; \
else echo "Cannot make xdelta without $$ofile"; exit 1; fi else echo "Cannot make deltas without $$ofile"; exit 1; fi
# TSDEPS will be defined to TSDEPS_DIST at `make dist' time # TSDEPS will be defined to TSDEPS_DIST at `make dist' time
TSDEPS = TSDEPS =
@ -133,7 +132,7 @@ update-timestamps:
.PHONY: cvs-news .PHONY: cvs-news
cvs-news: timestamps cvs-news:
## Make sure the NEWS file is up-to-date: ## Make sure the NEWS file is up-to-date:
@if sed '1,2d;3q' $(srcdir)/NEWS | grep -e "$(VERSION)" >/dev/null; \ @if sed '1,2d;3q' $(srcdir)/NEWS | grep -e "$(VERSION)" >/dev/null; \
then :; \ then :; \
@ -151,9 +150,7 @@ WGETSGO = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~
FETCHFILES = \ FETCHFILES = \
./INSTALL \ ./INSTALL \
config/config.guess \ config/config.guess \
libltdl/config.guess \
config/config.sub \ config/config.sub \
libltdl/config.sub \
config/texinfo.tex config/texinfo.tex
## Fetch the latest versions of files we care about. ## Fetch the latest versions of files we care about.
@ -186,46 +183,33 @@ fetch:
GPG = gpg # set it to `:' to avoid gpg operations GPG = gpg # set it to `:' to avoid gpg operations
.PHONY: cvs-commit
cvs-commit: cvs-news
cd $(srcdir) && $(SHELL) ./commit
.PHONY: cvs-dist .PHONY: cvs-dist
cvs-dist: cvs-news cvs-dist: cvs-news timestamps
## Build the distribution: ## Build the distribution:
$(MAKE) distcheck $(MAKE) distcheck
## Finally, if everything was successful, commit the last changes and tag ## Finally, if everything was successful, tag the release
## the release in the repository:
cd $(srcdir) \ cd $(srcdir) \
&& $(SHELL) ./commit \ && $(CVS) -q tag -c `echo "release-$(VERSION)" | sed 's/\./-/g'`
&& $(CVS) -q tag -c `echo "Release-$(VERSION)" | sed 's/\./-/g'` ## Generate signatures and directives for FSF ftp-upload:
## We do want the timestamped version numbers from the CVS keywords in
## ChangeLog to be correct, so we must rebuild the release tarball after
## a successfull commit, and then generate the signatures needed for
## FSF ftp-upload:
ofile="$(PACKAGE)-$(VERSION).tar.gz"; \ ofile="$(PACKAGE)-$(VERSION).tar.gz"; \
$(MAKE) dist \ $(GPG) --detach-sign $$ofile \
&& $(GPG) --detach-sign $$ofile \ && echo "directory: libtool" > $$ofile.directive \
&& echo "directory: libtool" > $$ofile.directive \ && $(GPG) --clearsign $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \ && rm -f $$ofile.directive
&& rm -f $$ofile.directive
.PHONY: cvs-diff .PHONY: new-tarball
cvs-diff: new-tarball:
## Figure out which cvs tags we are diffing, and if the diff works we ## Make sure we have the new release tarball in the tree.
## compress it and then generate the signatures needed for FSF ftp-upload: @ofile="$(PACKAGE)-$(VERSION).tar.gz"; \
thisver=`echo "release-$(VERSION)" | sed 's/\./-/g'`; \ if test -f $$ofile; then :; \
$(CHECK_LASTRELEASE); \ else echo "Cannot make deltas without $$ofile"; exit 1; fi
prevver=release-`echo $(LASTRELEASE) | sed 's/\./-/g'`; \
ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \
$(CVS) -f rdiff -c -r $$prevver -r $$thisver $(PACKAGE) \
| GZIP=$(GZIP_ENV) gzip -c > $$ofile \
&& $(GPG) --detach-sign $$ofile \
&& echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive
XDELTA = xdelta .PHONY: got-xdelta
XDELTA_OPTIONS = --pristine -9 got-xdelta:
.PHONY: xdelta
xdelta: prev-tarball
## Make sure xdelta exists; ## Make sure xdelta exists;
@if ($(XDELTA) --version 2>&1 | grep version)>/dev/null 2>/dev/null; \ @if ($(XDELTA) --version 2>&1 | grep version)>/dev/null 2>/dev/null; \
then :;\ then :;\
@ -233,10 +217,41 @@ xdelta: prev-tarball
echo "Get xdelta from http://sourceforge.net/projects/xdelta."; \ echo "Get xdelta from http://sourceforge.net/projects/xdelta."; \
exit 1; \ exit 1; \
fi fi
.PHONY: deltas
deltas: delta-diff delta-xdelta
DIFF = diff
DIFF_OPTIONS = -ruNp
.PHONY: delta-diff
delta-diff: prev-tarball new-tarball
## Unpack the tarballs somewhere to diff them
rm -rf delta-diff
mkdir delta-diff
ofile="../$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \
cd delta-diff \
&& tar xzf "../$(PACKAGE)-$(LASTRELEASE).tar.gz" \
&& tar xzf "../$(PACKAGE)-$(VERSION).tar.gz" \
&& $(DIFF) $(DIFF_OPTIONS) \
$(PACKAGE)-$(LASTRELEASE) $(PACKAGE)-$(VERSION) \
| GZIP=$(GZIP_ENV) gzip -c > $$ofile \
&& $(GPG) --detach-sign $$ofile \
&& echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive
rm -rf delta-diff
XDELTA = xdelta
XDELTA_OPTIONS = --pristine -9
.PHONY: delta-xdelta
delta-xdelta: prev-tarball new-tarball got-xdelta
## Generate the delta file (xdelta has wierd exit statuses, so we need to ## Generate the delta file (xdelta has wierd exit statuses, so we need to
## add some shell code to keep make happy), and then generate the signatures ## add some shell code to keep make happy), and then generate the signatures
## for FSF ftp-upload: ## for FSF ftp-upload:
$(CHECK_LASTRELEASE); \
ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \ ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \
( test -z `$(XDELTA) delta $(XDELTA_OPTIONS) \ ( test -z `$(XDELTA) delta $(XDELTA_OPTIONS) \
$(PACKAGE)-$(LASTRELEASE).tar.gz $(PACKAGE)-$(VERSION).tar.gz \ $(PACKAGE)-$(LASTRELEASE).tar.gz $(PACKAGE)-$(VERSION).tar.gz \
@ -246,3 +261,4 @@ xdelta: prev-tarball
&& echo "directory: libtool" > $$ofile.directive \ && echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \ && $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive && rm -f $$ofile.directive

View File

@ -1,9 +1,8 @@
This is an alpha testing release of GNU Libtool. To get the latest This is an alpha testing release of GNU Libtool. To get the latest
CVS version of this package, do: CVS version of this package, do:
cvs -d :pserver:anoncvs@subversions.gnu.org:/home/cvs login export CVS_RSH=ssh
[Hit return when prompted for the password] cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool co libtool
cvs -d :pserver:anoncvs@subversions.gnu.org:/home/cvs checkout libtool
cd libtool cd libtool
./bootstrap ./bootstrap
@ -83,56 +82,63 @@ using (by typing `libtool --version').
keys will be registered on ftp-upload.gnu.org and only then will you be keys will be registered on ftp-upload.gnu.org and only then will you be
authorized to upload files to the FSF ftp machines. authorized to upload files to the FSF ftp machines.
* Update NEWS, ChangeLog.
* Update the version number in configure.ac. * Update the version number in configure.ac.
See http://www.gnu.org/software/libtool/contribute.html for details of See http://www.gnu.org/software/libtool/contribute.html for details of
the numbering scheme. the numbering scheme.
* Update NEWS, ChangeLog.
* Run ./bootstrap. * Run ./bootstrap.
* Run ./configure and then make.
* Run `make fetch', which will fetch new versions of the files that are * Run `make fetch', which will fetch new versions of the files that are
maintained outside of libtool. maintained outside of libtool.
* Run ./configure and then make. * Run ./commit.
* Run `make cvs-dist' which will build a release tarball (with `make * Run `make cvs-dist' which will build a release tarball (with `make
distcheck'), commit the last NEWS, ChangeLog and configure.ac changes, distcheck'), tag the tree with release-$(VERSION) and generate the
tag the tree with release-$(VERSION), and generate gpg signature files. gpg signature files.
* Run `make cvs-diff' which will create a diff file against the previous
release tag (set OLDVERSION=min.maj[.mic[alpha]] in the environment
beforehand if necessary), and generate gpg signature files.
* Make sure you have a copy of xdelta installed, and a copy of the previous * Make sure you have a copy of xdelta installed, and a copy of the previous
release tarball in the build directory, then run `make xdelta', which will release tarball in the build directory.
create an xdelta file between this and the previous release tarballs (set
OLDVERSION=min.maj[.mic[alpha]] in the environment beforehand if necessary), * Run 'make deltas' (pass LASTRELEASE=min.maj[.mic[alpha]] if needed) to
and generate gpg signature files. create both diff and xdelta files between the previous release tarball
and the new with detached gpg signature files and clear signed directive
files.
* Upload release tarball, diff file and xdelta file, plus their associated * Upload release tarball, diff file and xdelta file, plus their associated
detached gpg signature files and clear signed directive files to detached gpg signature files and clear signed directive files to
ftp-upload.gnu.org. If the upload is destined for ftp.gnu.org, then the ftp-upload.gnu.org. If the upload is destined for ftp.gnu.org, then the
files should be placed in the /incoming/ftp directory. If the upload is files should be placed in the /incoming/ftp directory. If the upload is
an alpha release destined for alpha.gnu.org, then the files should be an alpha release destined for alpha.gnu.org, then the files should be
placed in the /incoming/alpha directory.incoming/ftp/gnu/libtool. Then send placed in the /incoming/alpha directory.
announcement to libtool@gnu.org and autotools-announce@gnu.org.
* If not an alpha, announcement must also go to info-gnu@gnu.org, and an
upload request be sent to ftp-upload@gnu.org requesting files be transferred
from ftp://alpha.gnu.org/gnu/libtool to ftp://ftp.gnu.org/gnu/libtool.
* Send announcement to libtool@gnu.org and autotools-announce@gnu.org,
if not an alpha send to info-gnu@gnu.org as well.
* Update version number in configure.ac to next alpha number. * Update version number in configure.ac to next alpha number.
See http://www.gnu.org/software/libtool/contribute.html for details of
the numbering scheme.
* Commit. * Update NEWS, ChangeLog.
* Update the front libtool webpage to indicate the latest release * Run ./commit.
number, and the news page to reflect the latest release note.
* Update the webpages, libtool.html will need to indicate the latest
release number and the news page should get a HTMLified copy of your
release announcement.
* If not an alpha, replace manual.html with the new one
(generate with cd doc && texi2html libtool.texi)
================================================================ ================================================================
= Alpha release note template = Alpha release note template
To: libtool@gnu.org, autotools-announce@gnu.org To: libtool@gnu.org, autotools-announce@gnu.org
Subject: GNU Libtool @VERSION@ released (alpha release).
The Libtool Team is pleased to announce alpha release @VERSION@ of GNU The Libtool Team is pleased to announce alpha release @VERSION@ of GNU
Libtool. Libtool.
@ -177,12 +183,10 @@ but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own
projects. projects.
Alternatively, you can fetch the unbootstrapped sourcecode from Alternatively, you can fetch the unbootstrapped sourcecode from
anonymous cvs by using the following commands (just hit return when anonymous cvs by using the following commands:
you are prompted for the password):
$ export CVS_RSH=ssh
$ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool login $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
Password:
$ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool \
co -r @CVS_RELEASE_TAG@ libtool co -r @CVS_RELEASE_TAG@ libtool
You will then need to have recent (possibly as yet unreleased) versions You will then need to have recent (possibly as yet unreleased) versions
@ -200,6 +204,7 @@ Please report bugs to <bug-libtool@gnu.org>.
To: info-gnu@gnu.org To: info-gnu@gnu.org
Cc: libtool@gnu.org, autotools-announce@gnu.org Cc: libtool@gnu.org, autotools-announce@gnu.org
Subject: GNU Libtool @VERSION@ released.
The Libtool Team is pleased to announce the release of GNU Libtool The Libtool Team is pleased to announce the release of GNU Libtool
@VERSION@. @VERSION@.
@ -258,9 +263,8 @@ Alternatively, you can fetch the unbootstrapped sourcecode from
anonymous cvs by using the following commands (just hit return when anonymous cvs by using the following commands (just hit return when
you are prompted for the password): you are prompted for the password):
$ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool login $ export CVS_RSH=ssh
Password: $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \
$ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool \
co -r @CVS_RELEASE_TAG@ libtool co -r @CVS_RELEASE_TAG@ libtool
You will then need to have the latest release versions of Automake You will then need to have the latest release versions of Automake

View File

@ -58,7 +58,7 @@ test "$LT_MICRO" = "AC_PACKAGE_VERSION" && LT_MICRO=""
# Then we try to work out what the release before this one would have been # Then we try to work out what the release before this one would have been
# numbered. The only time we come unstuck is when this is the first release # numbered. The only time we come unstuck is when this is the first release
# from a stable branch (LT_MICRO=LT_ALPHA=""), so OLDVERSION is the last # from a stable branch (LT_MICRO=LT_ALPHA=""), so LASTRELEASE is the last
# release from the old stable branch, and we don't know what version that # release from the old stable branch, and we don't know what version that
# was, so leave it unset so that the Makefile can complain. # was, so leave it unset so that the Makefile can complain.
case $LT_ALPHA in case $LT_ALPHA in
@ -110,7 +110,7 @@ AC_SUBST([TIMESTAMP])
dnl These are bootstrap requirements, once built, libtool may work with dnl These are bootstrap requirements, once built, libtool may work with
dnl much older releases of autoconf and automake. See release notes. dnl much older releases of autoconf and automake. See release notes.
AM_INIT_AUTOMAKE([1.8 gnits]) ## We use auto-m4_including AM_INIT_AUTOMAKE([1.8 gnits dist-bzip2]) ## We use auto-m4_including
## ------------------------------- ## ## ------------------------------- ##