...
Edit
pom.xml
and change theLog4jReleaseVersion
property to the version you are releasing.Make a fresh Git clone of the master branch of https://github.com/apache/logging-log4j2.git.
Update
src/changes/announcement.vm
Run
mvn -P release-notes generate-resources
to create the release notes.Update
src/changes/changes.xml
with the release date.Run
git add
,git commit
, andgit push
to commit theRELEASE-NOTES.md
file that was just generated along with the other files that were modified.- Verify whether the bug with the Maven DOAP plugin still exists. If it does configure the build computer to use Oracle Java 1.8.0_202-b08.
Build the site:
Code Block mvn site mvn site:stage -DstagingDirectory=$HOME/log4j
where
$HOME
is your home directory and verify that the site looks good.Run
Code Block mvn -P apache-release -DskipTests -Darguments="-DskipTests" release:prepare release:perform -DreleaseVersion=n.n.n -DdevelopmentVersion=n.n.n-SNAPSHOT -Dtag=log4j-n.n.n-rcn
to start the release. Enter the password to your signing key when prompted.Login to http://repository.apache.org using your ASF credentials. Select "Staging Repositories" then check the org.apache.logging repository and close it.
Check out the release tag that was created via the Maven release plugin using
git checkout tags/tagname
.Run
mvn site
in the tag directory. When that completes runmvn site:stage -DstagingDirectory=$HOME/log4j
where $HOME is your home directory.Zip the contents of
$HOME/log4j
withzip -r log4j.zip log4j
.- Create the preview web site:
- Clone the Log4j web site from https://github.com/apache/logging-log4j-site.git. Checkout the asf-staging branch.
- Create a directory matching the target release version. Unzip the site zip file into that directory. Unlink the 2.x symlink and link it to the newly created directory.
- Commit and push the web site preview.
Copy the distribution archive files from
log4j-distribution/target
to where https://dist.apache.org/repos/dist/dev/logging/log4j/ is checked out on your machine.- Generate the release vote email:
Create the email addressed to dev@logging.apache.org. Sending the email to the PMC is not necessary.
Copy the changes in the release from
RELEASE-NOTES.txt
into the email.Provide a link to the tag, web site on http://people.apache.org, and the artifacts in the Nexus repository.
Provide the command to download all the artifacts:
Code Block wget -e robots=off --cut-dirs=7 -nH -r -p -np --no-check-certificate $LINK
where
$LINK
is the URL to the repository you just closed (plus theorg/apache/logging/log4j/
path appended).
- If the release vote fails proceed as described in the section below, otherwise if it passes:
Create a new (immutable) tag named
rel/n.n
from thelog4j-n.n.n-rcn
tag by changing to the changing to the directory containing the source for the release and performingCode Block git tag [--local-user userId] -s rel/n.n.n -m "Release n.n.n of Log4j"
where --local-user is optional, followed by
Code Block git push --tags
- The following steps must be performed by a PMC member:
Checkout https://dist.apache.org/repos/dist/release/logging/log4j.
Create the release directory under the log4j directory.
- Move all the distribution artifacts from the distribution dev location to that directory.
Perform an
svn add
of the release directory.Example:
Code Block # create directory for release svn mkdir https://dist.apache.org/repos/dist/release/logging/log4j/n.n.n svn commit # move files from dev to release (fully server-side; no more uploads!); this action is its own commit svn mv $(svn ls '^/dev/logging/log4j' | grep apache-log4j-n.n.n | xargs printf '^/dev/logging/log4j/%s ') '^/release/logging/log4j/n.n.n' # remove previous release svn rm https://dist.apache.org/repos/dist/release/logging/log4j/n.n.n-1 svn commit
- Login to reporter.apache.org and add the release version and date.
- Login to Jira and mark the version as released today.
- The following steps can then be taken by whomever started the release:
- Delete the core-its (along with log4j-perf and samples when releasing old versions) project from the Nexus repository.
- Release the remaining artifacts in the Nexus Repository.
- Wait 12-24 hours (or after the distribution artifacts have been propagated to the mirrors and the Maven artifacts have been propagated to the Central Repository), and then the following steps must be performed by a PMC member:
Perform
svn delete
on the previous release directory for the same version under the log4j directory (https://dist.apache.org/repos/dist/release/logging/log4j).- Commit the delete to Subversion.
See ManagingTheWebSite regarding sub-projects.
In your log4j web site repo checkout the asf-site branch. Perform
git checkout asf-site
thengit rebase asf-staging
and finallygit push
. Wait 5 to 10 minutes and verify the web site is live.
After the website is updated, send the release announcement email. This should be sent out to dev@logging.apache.org, and log4j-user@logging.apache.org, private@logging.apache.org, and general@logging.apache.org.
Send the release announcement to announce@apache.org using your apache.org email address. This can be combined with the previous step as a Cc field as long as the To field is the dev@ list and you send the email from your ASF email.
If the release fails before sending the vote email:
...