automake-patches
[Top][All Lists]
Advanced

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

FYI: cvs-dist tweaks


From: Alexandre Duret-Lutz
Subject: FYI: cvs-dist tweaks
Date: Tue, 11 Nov 2003 23:48:27 +0100
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3 (gnu/linux)

I've always been annoyed by the need to commit the version bump
before running `make cvs-dist'.  The problem is that when cvs
commit fails then you have to do another commit to fix that bug
and the version bump is no longer at the top of the ChangeLog.
To me the correct procedure is to commit the version bump only
after distcheck was successful (and before tagging, of course).
This way, if cvs-dist fails you can commit any bug fix before
the version bump.  The following patch change cvs-dist to call
clcommit between `distcheck' and `cvs tag' that time.

Also checking that NEWS is up-to-date is better done before
distcheck.  I've been caught by this a few times (back in the
time when distcheck needed 2 hours on my box).

Finally, I've removed the last `$(MAKE) dist', because it
predates the use of distcheck, and distcheck already builds the
tarballs.  (I hope I'm not missing something subtle here.)

2003-11-11  Alexandre Duret-Lutz  <address@hidden>

        * Makefile.am: Do not rerun `make dist' after tagging, `make distcheck'
        already build the tarballs.  Commit files right before tagging.
        Check NEWS before running distcheck.

Index: HACKING
===================================================================
RCS file: /cvs/automake/automake/HACKING,v
retrieving revision 1.19
diff -u -r1.19 HACKING
--- HACKING     24 Sep 2003 21:20:05 -0000      1.19
+++ HACKING     11 Nov 2003 22:45:33 -0000
@@ -124,13 +124,13 @@
   The repository will always have its own "odd" number so we can easily
   distinguish net and repo versions.)
 
-* Configure, build, and install.
+* Update ChangeLog.
 
-* Run aclocal, automake, and autoconf.
+* Run ./bootstrap, ./configure, make.
 
-* Commit
-
-* Run `make cvs-dist'
+* Run `make cvs-dist'.
+  This will run distcheck to create the tarball, commit the last
+  NEWS/configure.ac/ChangeLog changes, and tag the repository.
 
 * Put new release on ftp site and send announcement to automake list.
   If not an alpha, announcement must also go to FSF:
@@ -140,7 +140,7 @@
   address@hidden, and address@hidden
 
 * Update version number in configure.ac to next alpha number.
-  Re-run autoconf and commit.
+  Re-run ./bootstrap and commit.
 
 -----
 
Index: Makefile.am
===================================================================
RCS file: /cvs/automake/automake/Makefile.am,v
retrieving revision 1.223
diff -u -r1.223 Makefile.am
--- Makefile.am 11 Nov 2003 21:39:25 -0000      1.223
+++ Makefile.am 11 Nov 2003 22:45:33 -0000
@@ -244,15 +244,24 @@
        fi
 
 
-# Tag before making distribution.  Also, don't make a distribution if
-# checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check distcheck
+cvs-dist: maintainer-check
+## Make sure clcommit exists (we use it at the end of cvs-dist).
+       @if (clcommit --version)>/dev/null 2>/dev/null; then :; else \
+         echo "Get clcommit from module cvs-utils on Savannah."; \
+         exit 1; \
+       fi
+## Make sure the NEWS file is up-to-date.
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; 
else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
        fi
-       cd $(srcdir) && cvs -q tag `echo "Release-$(VERSION)" | sed 's/\./-/g'`
-       $(MAKE) dist
+## Build the distribution
+       $(MAKE) distcheck
+## Finally, if anything was successful, commit the last changes and tag
+## the release in the repository.  We don't use RCS keywords so it's OK
+## to distribute the files before they were committed.
+       cd $(srcdir) && clcommit && \
+         cvs -q tag -c `echo "Release-$(VERSION)" | sed 's/\./-/g'`
 
 cvs-diff:
        thisver=`echo "Release-$(VERSION)" | sed 's/\./-/g'`; \
-- 
Alexandre Duret-Lutz





reply via email to

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