You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ic...@apache.org on 2021/09/03 12:35:05 UTC
svn commit: r1892861 - in /httpd/dev-tools/v2: README make-tars.sh
Author: icing
Date: Fri Sep 3 12:35:05 2021
New Revision: 1892861
URL: http://svn.apache.org/viewvc?rev=1892861&view=rev
Log:
* fixed getopts in make-tars.sh
* updated README with current state
Modified:
httpd/dev-tools/v2/README
httpd/dev-tools/v2/make-tars.sh
Modified: httpd/dev-tools/v2/README
URL: http://svn.apache.org/viewvc/httpd/dev-tools/v2/README?rev=1892861&r1=1892860&r2=1892861&view=diff
==============================================================================
--- httpd/dev-tools/v2/README (original)
+++ httpd/dev-tools/v2/README Fri Sep 3 12:35:05 2021
@@ -1,47 +1,94 @@
version2 of release scripts
-WARNING: work in progress!
+STATUS
+ - implemented up to and including pushing tarballs to the "dev" distribution
+ repository and calling for a vote.
+ - the original "announce.sh" should continue to work
-Usage:
-0. A good, stable local checkout:
- - take a local SVN checkout you have, e.g. of branches/2.4.x
- - make sure that it builds and passes the tests for you
- - make sure it has no local, uncomitted changes
-1. Make you local revision to a release candidate tag in SVN:
- > cd your-checkout
+MISSING
+ - pushing (copying?) tarballs from "dev" to the real release location
+ - the check if the gpg/pgp key used for signing is present in the
+ dist.apache.org KEYS file has been discarded. It seems to rely on
+ some output formatting of fingerprints that does not work the same
+ on all tools platforms.
+
+Usage overview:
+ in a local checkout of the branch you want to release, run
> $BUILD_TOOLS/v2/make-candidate.sh
- ...output what it does or finds missing
- - fix anything it finds and run it again
- > $BUILD_TOOLS/v2/make-candidate.sh
- ...output what it does or finds missing
- - until it is right
- - there is no hurry, you work on your local revision,
- future commits by others won't affect you
- - if creates a copy of that revision in tags/candidate-$VERSION
- - it modifies this tag's content with updated version numsbers,
- dates and re-built manual pages
- - when it runs through, it commits these changes
- - if you want to abort, remove tags/candidate-$VERSION in SVN
-2. Make the signed tar files
- > cd your-checkout
> $BUILD_TOOLS/v2/make-tars.sh
- ...output what it does or finds missing
- - fix anything it finds and run it again
- - it always starts by removing previous files
- - it's primary source is tags/candidate-$VERSION in SVN
-3. push the tars to the apache server and send a mail for testing/voting
- TBD!
-...
-NOTE: up to here, the original source branch is not modified!
- TBD: pushing tars, announcing, move candidate tag to release tag
- and increment the source branch patch number.
-
-VERSION Handling
-- the scripts take the version from your local sources, if
- you do not specify a version on the command line
-- if you specify a version on the command line, the major
- and minor parts must match the local checkout. Otherwise
- the scripts refuse. So, you cannot make a 2.5.7 in a checkout
- of branches/2.4.x
-- Versions can have a suffix, as in 2.4.50-rc1, but that is
- not really clear if we ever want to use that.
+ > $BUILD_TOOLS/v2/push-tars.sh
+ and the release files are created in the "dist" directory,
+ with checksums and signed. An email template for voting has
+ also been created.
+
+ NO CHANGES have been made to the checked out branch. This
+ means you can repeat this process over and over until you
+ are happy with the results.
+
+ push-tars.sh is asking for confirmation before commiting
+ your changes to https://dist.apache.org/repos/dist/dev/$PROJECT.
+ You may skip that and commit it later after inspection.
+
+ To revert this at any stage:
+ > rm -rf dist
+ > svn rm ^/httpd/httpd/tags/candidate-$VERSION
+ if the push was commited in REV at dist.apache.org, revert the change with
+ > svn merge -c -$REV https://dist.apache.org/repos/dist/dev/$PROJECT
+
+The local checkout:
+ - same as you otherwise use, e.g. of ^/httpd/httpd/branches/2.4.x
+ - make sure that it builds and passes the tests for you
+ - make-candidate.sh checks if "changes-entries" is empty. Do
+ > make update-changes
+ to merge them all into CHANGES.
+ - make-candidate.sh checks if there are no local, uncomitted changes
+
+Handling of VERSIONs:
+ - You *may* specify the version as argument to the scripts. If you do not,
+ the scripts will use the version they find in your local checkout. After
+ a release, we increment the version to be used next. Even on a failed
+ release candidate, we have done this in the past. This means, as long
+ as we stick to this, specifying no version should work best.
+ - The scripts are prepared to work with a version suffix, as in "2.4.51-rc1",
+ but this is not really tested. It may prove easier to follow this versioning
+ and only step the version on httpd after a successful release.
+
+What make-candidate.sh does:
+ - copies the current REVISION of your checkout to ^/httpd/httpd/tags/candidate-$VERSION
+ - Patches the $VERSION everywhere in the sources where needed
+ - Rebuilds the docs/manual, so the version and current year is properly reflected there
+ - svn commits this to tags/candidate-$VERSION
+ NOTE:
+ - it works on a checkout it creates locally in dist/candidate-$VERSION, it
+ does not modify the checkout you run this in. Once the tag is created, any
+ further modifications of your local checkout won't affect it.
+ - Say, you have not called a vote yet and someone comes with a late, important
+ commit to the branch, you should:
+ * remove ^/httpd/httpd/tags/candidate-$VERSION in SVN
+ * remove the dist directory
+ * svn update your local checkout
+ * run make-candidate.sh again
+
+What make-tars.sh does:
+ - svn exports the candidate from ^/httpd/httpd/tags/candidate-$VERSION
+ into dist/httpd-$VERSION
+ - retrieves the latest APR/APU sources and adds them to dist/httpd-$VERSION/srclib
+ - runs "buildconf" on the export
+ - moves the srclib contents into dist/httpd-$VERSION-deps/httpd-$VERSION/srclib
+ makes tarballs of the -deps subdir
+ - makes tarballs of the dist/httpd-$VERSION dir
+ - generates checksums of the tarballs
+ - signs the tarballs using gpg2/gpg/pgp whatever is first available.
+ If the gpg default key is not what you want, call the script by given
+ it the key identifier (email) it should use as:
+ > make-tars.sh -s email-id
+
+What push-tars.sh does:
+ - checks if the local files from "make-tars.sh" are found in dist directory
+ - checks out https://dist.apache.org/repos/dist/dev/httpd inside dist
+ - modifies this checkout by adding the tarballs, CHANGES_$major.$minor
+ and patching Annoucement$major.$minor.*
+ - prepares an email template for voting in dist/mail-vote-$VERSION.txt
+ - asks you, if you want to commit the changes to dist.apache.org. You
+ may skip this, do some last inspection and commit this yourself.
+
Modified: httpd/dev-tools/v2/make-tars.sh
URL: http://svn.apache.org/viewvc/httpd/dev-tools/v2/make-tars.sh?rev=1892861&r1=1892860&r2=1892861&view=diff
==============================================================================
--- httpd/dev-tools/v2/make-tars.sh (original)
+++ httpd/dev-tools/v2/make-tars.sh Fri Sep 3 12:35:05 2021
@@ -38,7 +38,7 @@ EOF
source `dirname $0`/common-lib.sh
signing_user=
-while getopts "hy" opt; do
+while getopts "hs" opt; do
case $opt in
h) usage
;;