Skip to content

Commit

Permalink
Improve guidelines and templates for the release process (#418)
Browse files Browse the repository at this point in the history
  • Loading branch information
swebb2066 authored Oct 19, 2024
1 parent e4abf29 commit c618242
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 43 deletions.
12 changes: 6 additions & 6 deletions admin/MailTemplate.Announce.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
To: [email protected], [email protected]
Subject: [ANNOUNCE] Apache log4cxx 1.3.0 released
Subject: [ANNOUNCE] Apache log4cxx 1.3.1 released

Hi,

The Apache log4cxx team is pleased to announce the 1.3.0 release.
The Apache log4cxx team is pleased to announce the 1.3.1 release.

For the list of new features and issues corrected, see:
https://logging.apache.org/log4cxx/1.3.0/changelog.html#rel_1_3_0
https://logging.apache.org/log4cxx/1.3.1/changelog.html#rel_1_3_1

For official release downloads, see:
https://logging.apache.org/log4cxx/1.3.0/download.html
https://logging.apache.org/log4cxx/1.3.1/download.html

For instructions on building Log4cxx, see:
https://logging.apache.org/log4cxx/1.3.0/build.html
https://logging.apache.org/log4cxx/1.3.1/build.html

All other information is available on the Log4cxx project website:
https://logging.apache.org/log4cxx/1.3.0
https://logging.apache.org/log4cxx/1.3.1
4 changes: 2 additions & 2 deletions admin/MailTemplate.Result.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
To: [email protected]
Subject: [RESULT][VOTE] Release Apache Log4cxx 1.3.0
Subject: [RESULT][VOTE] Release Apache Log4cxx 1.3.1

and here is my +1.

Expand All @@ -9,6 +9,6 @@ I will continue the release process.
Stephen

---------------------------------------------------------------------------------------------------
This is a vote to release the Apache Log4cxx 1.3.0.
This is a vote to release the Apache Log4cxx 1.3.1.

...
6 changes: 3 additions & 3 deletions admin/MailTemplate.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
To: [email protected]
Subject: [VOTE] Release Apache Log4cxx 1.3.0
Subject: [VOTE] Release Apache Log4cxx 1.3.1

This is a vote to release the Apache Log4cxx 1.3.0.
This is a vote to release the Apache Log4cxx 1.3.1.

Website: https://logging.staged.apache.org/log4cxx/1.3.0/changelog.html
Website: https://logging.staged.apache.org/log4cxx/1.3.1/changelog.html
GitHub: https://github.com/apache/logging-log4cxx
Commit: <todo insert>
Distribution: https://dist.apache.org/repos/dist/dev/logging/log4cxx/
Expand Down
8 changes: 4 additions & 4 deletions admin/release-review-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Reviewing a Log4cxx release

The review should confirm the uploaded source code is not corrupt and
is identical to the package generated by the Github action.
The steps below use version 1.3.0 as an example.
The steps below use version 1.3.1 as an example.

Prerequisites
----------
Expand All @@ -22,7 +22,7 @@ Steps
- For success, the final output line needs to include:
- `100% tests passed, 0 tests failed out of 62`
1. Download the packaged release files from Github
- Open https://github.com/apache/logging-log4cxx/commits/v1.3.0-RC1 in your web browser
- Open https://github.com/apache/logging-log4cxx/commits/v1.3.1-RC1 in your web browser
- Click the green tick mark on the top commit
- The `All checks have passed` pop-up window will display
- Click the "Details" link on the row next to `Generate release files / Package code for release`
Expand All @@ -35,5 +35,5 @@ Steps
- `mkdir /tmp/log4cxx-github`
- `cd /tmp/log4cxx-github`
- `unzip "$HOME/Downloads/Upload release files.zip"`
- `diff /tmp/log4cxx{,-github}/apache-log4cxx-1.3.0.tar.gz.sha512`
- `diff /tmp/log4cxx{,-github}/apache-log4cxx-1.3.0.zip.sha512`
- `diff /tmp/log4cxx{,-github}/apache-log4cxx-1.3.1.tar.gz.sha512`
- `diff /tmp/log4cxx{,-github}/apache-log4cxx-1.3.1.zip.sha512`
38 changes: 23 additions & 15 deletions admin/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Releasing a Log4cxx version
===================

This document lists the steps that must be performed to release Log4cxx
using 1.3.0 as the example.
using 1.3.1 as the example.

Prerequisites
----------
Expand All @@ -11,22 +11,26 @@ Prerequisites
* The change log (in src/site/markdown/change-report-gh.md) is up-to-date.
* The web-site for the new version has been published to https://logging.staged.apache.org/log4cxx (using [this procedure](staging.md) )
* An e-mail has been sent to [email protected] announcing the intention to release
* Your e-mail client can send mail from your `@apache.org` address. (Refer: https://eventmesh.apache.org/community/how-to-use-email/)
* Your public key is available in [Apache Logging KEYS file](https://dist.apache.org/repos/dist/release/logging/KEYS)

Steps
-----

1. Tag HEAD as the release candidate
- `git checkout master`
- `git push origin tag v1.3.0-RC1`
- `git push origin tag v1.3.1-RC1`
1. Remove the old artifacts from svn
- `svn co https://dist.apache.org/repos/dist/dev/logging -N apache-dist-logging-dev`
- `cd apache-dist-logging-dev`
- `svn up log4cxx`
- `cd log4cxx`
- `svn delete *`
- `mkdir 1.3.1`
- `svn add 1.3.1`
- `cd 1.3.1`
1. Download the packaged release files from Github
- Open https://github.com/apache/logging-log4cxx/commits/v1.3.0-RC1 in your web browser
- Open https://github.com/apache/logging-log4cxx/commits/v1.3.1-RC1 in your web browser
- Click the green tick mark on the top commit
- The `All checks have passed` pop-up window will display
- Click the "Details" link on the row next to `Generate release files / Package code for release`
Expand All @@ -35,44 +39,48 @@ Steps
- The numbered steps will display
- Click the link next to `Artifact download URL:`
- The browser will download the file `Upload release files.zip` onto your system
1. Unpack the release files using these commands
- `cd apache-dist-logging-dev/log4cxx`
1. Unpack the release files using these commands (with `apache-dist-logging-dev/log4cxx/1.3.1` as the working directory)
- `unzip "$HOME/Downloads/Upload release files.zip"`
1. Sign release artifacts (Refer: https://infra.apache.org/release-signing.html) (with `apache-dist-logging-dev/log4cxx` as the working directory)
- `gpg --armor --output apache-log4cxx-1.3.0.zip.asc --detach-sig apache-log4cxx-1.3.0.zip`
- `gpg --armor --output apache-log4cxx-1.3.0.tar.gz.asc --detach-sig apache-log4cxx-1.3.0.tar.gz`
1. Send the new artifacts to svn (with `apache-dist-logging-dev/log4cxx` as the working directory)
1. Sign release artifacts (Refer: https://infra.apache.org/release-signing.html) (with `apache-dist-logging-dev/log4cxx/1.3.1` as the working directory)
- `gpg --armor --output apache-log4cxx-1.3.1.zip.asc --detach-sig apache-log4cxx-1.3.1.zip`
- `gpg --armor --output apache-log4cxx-1.3.1.tar.gz.asc --detach-sig apache-log4cxx-1.3.1.tar.gz`
1. Send the new artifacts to svn (with `apache-dist-logging-dev/log4cxx/1.3.1` as the working directory)
- `svn add *`
- `svn commit -m 'log4cxx 1.3.0'`
- `svn commit -m 'log4cxx 1.3.1'`
- check https://dist.apache.org/repos/dist/dev/logging/log4cxx
1. Raise a vote on the mailing list ([email protected])
- Using [this template](MailTemplate.txt)
- Set the e-mail to `Plain text mode`
1. Wait 72 hours (the minimum)
1. When the vote has 3 or more +1's, announce the result
- Using [this template](MailTemplate.Result.txt)
1. Get artifacts up to https://downloads.apache.org/logging/log4cxx/
- `svn move -m "Release log4cxx 1.3.0" https://dist.apache.org/repos/dist/dev/logging/log4cxx https://dist.apache.org/repos/dist/release/logging/log4cxx/1.3.0`
- `svn move -m "Release log4cxx 1.3.1" https://dist.apache.org/repos/dist/dev/logging/log4cxx/1.3.1 https://dist.apache.org/repos/dist/release/logging/log4cxx/`
1. Tag the released version
- `git checkout v1.3.0-RC1`
- `git push origin tag rel/v1.3.0`
- `git checkout v1.3.1-RC1`
- `git tag rel/v1.3.1`
- `git push origin tag rel/v1.3.1`
1. Set your details in `src/site/CMakeLists.txt`
- Set your name in the LOG4CXX_RELEASE_MANAGER variable
- Set your GnuPG key in the LOG4CXX_RELEASE_MANAGER_KEY variable
1. Enter the release date in `src/site/markdown/change-report-gh.md`
- Commit the change
- Update the staged web site using [the update procedure](staging.md)
1. Check the staged web site is ready to go live
1. Check the staged web site (https://logging.staged.apache.org/log4cxx) is ready to go live
- Are you are seeing the release date on changelog?
- Do the links on download page work?
1. Make the new version of the web site live.
- `git clone https://github.com/apache/logging-log4cxx-site /tmp/log4cxx-site`
- `cd /tmp/log4cxx-site`
- `git fetch origin asf-staging`
- `git rebase origin/asf-staging`
- `git checkout asf-site`
- `git rebase asf-staging`
- `git push origin asf-site`
1. Check https://logging.apache.org/log4cxx (after a minute or two)
- Are you seeing the new pages?
- Do the download links now work?
1. Announce the release to the mailing lists ([email protected], [email protected])
- Using [this template](MailTemplate.Announce.txt)
- Send the mail using your `@apache.org` account
- Set the e-mail to `Plain text mode`

20 changes: 10 additions & 10 deletions admin/staging.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Updating the Log4cxx web site
===================

This document describes the steps used to update Log4cxx web site
using 1.3.0 as an example Log4cxx version.
using 1.3.1 as an example Log4cxx version.

Prerequisites
----------
Expand All @@ -23,9 +23,9 @@ Steps to update the Log4cxx web site
- `cd /tmp/log4cxx-site`
- `git checkout asf-staging`
1. Use the newly generated files for the web site documentation
- `git rm -r 1.3.0`
- `mv /tmp/build/src/site/html 1.3.0`
- `git add 1.3.0`
- `git rm -r 1.3.1`
- `mv /tmp/build/src/site/html 1.3.1`
- `git add 1.3.1`
1. Push the `asf-staging` branch to Github and wait a bit
- `git commit -m "Improved the ... documentation"`
- `git push origin asf-staging`
Expand All @@ -45,20 +45,20 @@ Steps to add a new version to the Log4cxx web site
- `cd /tmp/log4cxx-site`
- `git checkout asf-staging`
1. Use the newly generated files for the web site documentation
- `git rm -r 1.3.0`
- `mv /tmp/build/src/site/html /tmp/log4cxx-site/1.3.0`
- `git add 1.3.0`
- `git rm -r 1.3.1`
- `mv /tmp/build/src/site/html /tmp/log4cxx-site/1.3.1`
- `git add 1.3.1`
1. Update the symbolic links in the base of the web site working directory
- `cd /tmp/log4cxx-site`
- `rm latest_stable old_stable`
- `ln -s 1.3.0 latest_stable`
- `ln -s 1.3.1 latest_stable`
- `ln -s 1.2.0 old_stable`
- `git add latest_stable old_stable`
1. Update `.htaccess` so the final `RewriteRule` redirects to the new version
- `RewriteRule ^(.*)$ /log4cxx/1.3.0/$1 [R=temp,L]`
- `RewriteRule ^(.*)$ /log4cxx/1.3.1/$1 [R=temp,L]`
- `git add .htaccess`
1. Push the `asf-staging` branch to github and wait a bit
- `git commit -m "Add the 1.3.0 documentation"`
- `git commit -m "Add the 1.3.1 documentation"`
- `git push origin asf-staging`
1. Check https://logging.staged.apache.org/log4cxx (after a minute or two)
- Are you seeing the new pages?
Expand Down
10 changes: 7 additions & 3 deletions admin/validate-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ set -e

VERSION=$1
if [ -z "$VERSION" ] ; then
VERSION=1.3.0
VERSION=1.3.1
fi

if [ -z "$STAGE" ] ; then
STAGE=dev # Alternatively release
fi

if [ -z "$BASE_DL" ] ; then
BASE_DL=https://dist.apache.org/repos/dist/dev/logging/log4cxx
BASE_DL=https://dist.apache.org/repos/dist/$STAGE/logging/log4cxx
fi
if [ -z "$ARCHIVE" ] ; then
ARCHIVE=apache-log4cxx-$VERSION
Expand All @@ -20,7 +24,7 @@ fi
test -d "$TEST_DIRECTORY" || mkdir "$TEST_DIRECTORY"
cd "$TEST_DIRECTORY"

FULL_DL="$BASE_DL/$ARCHIVE"
FULL_DL="$BASE_DL/$VERSION/$ARCHIVE"

for EXT in "tar.gz" "zip" ; do
wget "$FULL_DL.$EXT" || exit $?
Expand Down

0 comments on commit c618242

Please sign in to comment.