svn commit: r1936926 - apr/site/trunk/release

[email protected]
Newsgroups gmane.comp.apache.apr.cvs
Message-ID <178602572583.3074997.13087085225360652900@svn03-he-fi>
Author: covener
Date: Thu Aug  6 14:15:25 2026
New Revision: 1936926

Log:
release process and script updates from apu164

Modified:
   apr/site/trunk/release/README.md
   apr/site/trunk/release/common-lib.sh
   apr/site/trunk/release/r2-prep-vote.sh
   apr/site/trunk/release/r3-push-release-tars.sh
   apr/site/trunk/release/r4-stage-release.sh
   apr/site/trunk/release/r5-commit-staged-release.sh

Modified: apr/site/trunk/release/README.md
==============================================================================
--- apr/site/trunk/release/README.md	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/README.md	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -4,9 +4,8 @@
 
 1. Remind yourself of your GPG password
 2. Make sure your key is in the KEYS file of the project and has some useful signatures.
-3. Check CVE status in https://svn.apache.org/repos/private/pmc/apr checkout and make sure there aren't
-   ready CVE's from both APR and APU.  Move the other projects' stuff into a subdir that doesn't begin with `CVE`
-   so tools/readiness.sh will ignore it.
+3. Check CVE status in https://svn.apache.org/repos/private/pmc/apr checkout and make sure the ready items
+   are what you expect.
 
 ## 1) Release basics
 
@@ -35,23 +34,31 @@
 8. If unsuccessful, cleanup https://dist.apache.org/repos/dist/dev/apr and repeat with a later rcX.
 9. On successful vote:
    1. Run `$APR_DEV_TOOLS/r3-push-release-tars.sh` from your APR checkout to fixup and move the artifacts from dev/ to release
-   2. Run `$APR_DEV_TOOLS/r4-stage-release.sh` to stage an update to the project checkout and website.  Review the changes.
+   2. Run `$APR_DEV_TOOLS/r4-stage-release.sh` to stage an update to the project checkout and website.  
+
+      Review the changes, especially ./CHANGES and dist/apache.org-dist/release/apr/CHANGES-*
+
+      If something goes wrong and you need to re-run, `svn revert CHANGES  NOTICE STATUS include/apu_version.h`
+
    3. Wait for dlcdn links (immediate) and directory listings (up to 2 hours) to show the new files.
       - https://dist.apache.org/repos/dist/release/apr/
       - https://dlcdn.apache.org/apr/
    4. Run `$APR_DEV_TOOLS/r5-commit-staged-release.sh` to update the website and dev tree (and remove n-1 release)
-   5. Run r6-announce.sh from this dir to generate announce emails (output will tell you what to do)
+   5. Run `$APR_DEV_TOOLS/r6-announce.sh` to generate announce emails (output will tell you what to do)
 
 ## 2) If there were CVES
 
-0. Wait for either the dev@apr or [email protected] emails to be visible.
+1. Wait for either the dev@apr or [email protected] emails to be visible.
+1. Update
 1. Process the CVEs on the cveprocess site
    - Set the CVE to `READY`
-   - Find the revision[s] used to backport the security fix and:
-     - amend the commit messages to mention the CVE number (you can append the entire CHANGES entry)
-       `svn propedit --revprop -r... svn:log`
-     - add a timeline entry to the CVE 
-       > fixed by rXXX in 1.7.x
+   - Use $APR_SECURITY/tools/update_svn_logs_with_cve.py to add the CVE to the stable releases svn commit messages.
+   - add a timeline entry to the CVEs:
+     ```
+     $APR_SECURITY/tools/update_svn_logs_with_cve.py ~/data/apu164 --cveprocess /tmp/cve.sh
+     ```
+     And run the resulting /tmp/cve.sh from $APR_SECURITY/ answering the many prompts (watch the diff closely!)
+
    - Use the 'OSS/ASF Emails' tab to send the emails to oss-security and to Apache lists.
    - Find the CVE email to dev@apr on lists.apache.org and grab a permalink
    - Fill in a 'reference' tag 'vendor-advisory' with the URL to your public post about
@@ -59,6 +66,7 @@
    - Save the CVE entry.
    - ASF Security will be notified and will submit to the CVE project and then set state to 'PUBLIC'.
 2. Add the release to bugzilla: https://bz.apache.org/bugzilla/editversions.cgi?action=add&product=apr
+3. Add the Apache Reporter info https://reporter.apache.org/addrelease.html?apr
 
 ## 3) Cleanup
 

Modified: apr/site/trunk/release/common-lib.sh
==============================================================================
--- apr/site/trunk/release/common-lib.sh	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/common-lib.sh	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -118,6 +118,7 @@ detect_version() {
       ANNOUNCEFILE=Announcement1.x
       CHANGES=CHANGES-APR
       is_apr=1
+      CHANGES_BANNER_PREFIX="Changes for APR"
     elif test -f include/apu_version.h; then
       # determine version from local files
       v_major=`grep -E '#define\sAPU_MAJOR_VERSION' include/apu_version.h | awk '{print $3}'`
@@ -126,6 +127,7 @@ detect_version() {
       ANNOUNCEFILE=Announcement-aprutil-1.x
       CHANGES=CHANGES-APR-UTIL
       is_apr=0
+      CHANGES_BANNER_PREFIX="Changes with APR-util"
     else
       fail "unable to determine version in local checkout"
     fi
@@ -180,6 +182,7 @@ v_suffix="${v_suffix}"
 is_apr="${is_apr}"
 ANNOUNCEFILE="${ANNOUNCEFILE}"
 CHANGES="${CHANGES}"
+CHANGES_BANNER_PREFIX="${CHANGES_BANNER_PREFIX}"
 EOF
 }
 
@@ -437,17 +440,26 @@ add_changes_entry() {
   cp "${ABS_CHANGES}" "${ABS_CHANGES}.tmp" ;
   cve_changes "${CVE_JSON}" > "${ABS_CHANGES}.entry.tmp"
   awk -v fname="${ABS_CHANGES}.entry.tmp" \
-    'BEGIN{done = 0; active = 0} done == 0 && active == 0 && /^Changes for APR/{
-        active = 1; print; next};
-      /^( *\*|Changes for APR)/ && active == 1 && done == 0 {
-        rec=$0; while(getline<fname) {
-          if (! ($0 ~ /^ *$/)){print}
-        }
-        printf "\n"; print rec; active = 0; done = 1; next
-      } //;' "${ABS_CHANGES}".tmp > "${ABS_CHANGES}"
+      'BEGIN{done = 0; active = 0}
+       done == 0 && active == 0 && /^Changes (for|with) APR/{
+         active = 1; print; next
+       }
+       active == 1 && done == 0 && /^$/ {
+         print; done = 1; active = 0
+         while(getline<fname) {
+           if (! ($0 ~ /^ *$/)){print}
+         }
+         printf "\n"; next
+       }
+       //;' "${ABS_CHANGES}".tmp > "${ABS_CHANGES}"
   rm -f "${ABS_CHANGES}".tmp "${ABS_CHANGES}.entry.tmp"
 }
 
+add_next_changes_banner() {
+  # Add the corresponding version placeholder at the top of CHANGES.
+  perl -pi -e "s{(.*coding: utf-8.*)}{\$1\n${CHANGES_BANNER_PREFIX} ${NEXT_VERSION}\n}" CHANGES
+}
+
 stage_checkout_release() {
   # make sure we are up-to-date
   svn up
@@ -463,8 +475,6 @@ stage_checkout_release() {
     PROJHEADER=apu_version.h
   fi
 
-  # Add the corresponding version placeholder in CHANGES.
-  perl -pi -e "s{(.*coding: utf-8.*)}{\$1\nChanges for ${PROJNAME} ${NEXT_VERSION}\n}" CHANGES
   # Note the tag date in the STATUS file.
   if test -f STATUS; then
     date_string=`date '+%B %d, %Y'`

Modified: apr/site/trunk/release/r2-prep-vote.sh
==============================================================================
--- apr/site/trunk/release/r2-prep-vote.sh	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/r2-prep-vote.sh	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -77,7 +77,7 @@ cp "${TAR_PATH}"*.tar.* "${AO_DIST_DEV_P
 cp "${TAR_PATH}"*.zip* "${AO_DIST_DEV_PATH}"/
 svn add "${AO_DIST_DEV_PATH}"/${TAR_BASENAME}*.tar.* "${AO_DIST_DEV_PATH}"/${TAR_BASENAME}*.zip* >/dev/null
 
-cp "${DIST_DIR}/${TAR_BASENAME}"/CHANGES "${AO_DIST_DEV_PATH}"/${CHANGES}-${v_major}-${v_minor}
+cp "${DIST_DIR}/${TAR_BASENAME}"/CHANGES "${AO_DIST_DEV_PATH}"/${CHANGES}-${v_major}.${v_minor}
 # maybe already added
 svn add "${AO_DIST_DEV_PATH}"/${CHANGES}-${v_major}-${v_minor} >/dev/null 2>/dev/null || true
 

Modified: apr/site/trunk/release/r3-push-release-tars.sh
==============================================================================
--- apr/site/trunk/release/r3-push-release-tars.sh	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/r3-push-release-tars.sh	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -56,8 +56,9 @@ TAR_PATH="${DIST_DIR}/${TAR_BASENAME}"
 
 #Ensure scratch space is in a state we are ready to work with
 AO_DIST_PATH="dist/apache.org-dist"
-AO_DIST_DEV_PATH="${AO_DIST_PATH}/dev/${PROJECT}"
-AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/${PROJECT}"
+# /apr/ even for apr-util
+AO_DIST_DEV_PATH="${AO_DIST_PATH}/dev/apr"
+AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/apr"
 
 # SVN repository is huge, carefully check out only what we need
 rm -rf "${AO_DIST_PATH}"

Modified: apr/site/trunk/release/r4-stage-release.sh
==============================================================================
--- apr/site/trunk/release/r4-stage-release.sh	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/r4-stage-release.sh	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -72,7 +72,8 @@ svn ls "$SVN_BASE/$SVN_RELEASE" >/dev/nu
   fail_not_dry "release does not exist in SVN: $SVN_RELEASE"
 
 AO_DIST_PATH="dist/apache.org-dist"
-AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/${PROJECT}"
+# /apr/ even for apr-util
+AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/apr"
 
 DIST_SITEPATH="${DIST_DIR}/site"
 
@@ -121,27 +122,26 @@ echo "adding src tree changes"
 stage_checkout_release
 
 
-# XXX: r0-make-candidate.sh doesn't differentiate between APR and APU if both have ready CVES.
-
 # checkout/update pmc and get dir dir names that have
 # been recorded there for this release
 get_version_CVE_DIRS "${DIST_DIR}/pmc"
 if test -n "${CVE_DIRS}"; then
   echo "adding CVEs: ${CVE_DIRS}"
   for changes_file in CHANGES \
-    "${AO_DIST_RELEASE_PATH}/${CHANGES}"; do
+    "${AO_DIST_RELEASE_PATH}/${CHANGES}-${v_major}.${v_minor}"; do
     for CVE in $CVE_DIRS; do
       add_changes_entry "$changes_file" "${DIST_DIR}/pmc/SECURITY/${CVE}/CVE.json"
     done
   done
 fi
+add_next_changes_banner
 
 echo
 echo "PENDING REPOSITORY CHANGES"
 echo "--------"
 echo "SVN changes staged for ${SVN_DIST_URL}"
 svn stat "${AO_DIST_RELEASE_PATH}"
-svn diff "${AO_DIST_RELEASE_PATH}/CHANGES*"
+svn diff "${AO_DIST_RELEASE_PATH}/CHANGES"*
 echo "--------"
 echo "svn changes staged in ${DIST_SITEPATH}"
 (cd "${DIST_SITEPATH}" && svn stat)

Modified: apr/site/trunk/release/r5-commit-staged-release.sh
==============================================================================
--- apr/site/trunk/release/r5-commit-staged-release.sh	Thu Aug  6 14:15:10 2026	(r1936925)
+++ apr/site/trunk/release/r5-commit-staged-release.sh	Thu Aug  6 14:15:25 2026	(r1936926)
@@ -42,7 +42,8 @@ detect_checkout
 detect_version $1
 
 AO_DIST_PATH="dist/apache.org-dist"
-AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/${PROJECT}"
+# /apr/ even for apr-util
+AO_DIST_RELEASE_PATH="${AO_DIST_PATH}/release/apr"
 
 SVN_SITE_CONTENT_URL="${SVN_SITE_URL}/${PROJECT}/site/trunk/content/"
 DIST_SITEPATH="${DIST_DIR}/site"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.