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
             ;;