[Logging Wiki] Update of "Log4j2ReleaseGuide" by RalphG oers

Apache Wiki <[email protected]> Sun, 11 Mar 2018 23:36:07 -0000
Newsgroups gmane.comp.apache.logging
Message-ID <[email protected]>
Dear wiki user,

You have subscribed to a wiki page "Logging Wiki" for change notification.

The page "Log4j2ReleaseGuide" has been deleted by RalphGoers:

https://wiki.apache.org/logging/Log4j2ReleaseGuide?action=3Ddiff&rev1=3D44&=
rev2=3D45

- =3D Log4j 2.x Release Process =3D
  =

- Before beginning your first release, take the following preparatory steps:
- =

-  1. Run {{{mvn clean install}}} on the project to make sure it will build=
 cleanly.
-  1. Run {{{mvn -P rat -DskipTests verify}}} to verify all the licenses ar=
e valid.
-  1. Login to http://repository.apache.org using your ASF credentials. Cli=
ck on your username in the upper-right-hand corner and click Profile. Make =
sure your email address is correct. If not, contact Infra to get it correct=
ed. You will be unable to get the necessary notifications until it's correc=
ted.
-  1. Make sure you have a 4096-bit RSA PGP key pair for code signing. The =
public key should be published in a public repository, preferably http://pg=
p.mit.edu/. Also make sure the public key is published to http://www.apache=
.org/dist/logging/KEYS.
-  1. Edit {{{~/.m2/settings.xml}}} to add the corresponding private key an=
d its passphrase to your settings. Also add the Apache Subversion server cr=
edentials and Sonatype repository credentials to your settings (this is you=
r ASF credentials). You'll want to blank out the passphrase after each rele=
ase and fill it back in prior to each release so that it isn't compromised.
- ~-{{{#!xml
-     <profiles>
-         <profile>
-             <id>apache-release</id>
-             <properties>
-                 <gpg.keyname>ABC123FC</gpg.keyname>
-                 <gpg.passphrase>thisIsMyPassphrase</gpg.passphrase>
-                 <gpg.executable>gpg2</gpg.executable><!-- Use this if exe=
cutable differs from "gpg" -->
-             </properties>
-         </profile>
-     </profiles>
- =

-     <activeProfiles>
-         <activeProfile>apache-release</activeProfile>
-     </activeProfiles>
- =

-     ...
- =

-     <servers>
-         <server>
-             <id>svn.apache.org</id>
-             <username>myUsername</username>
-             <password>myPassword</password>
-         </server>
-         <server>
-             <id>apache.releases.https</id>
-             <username>myUsername</username>
-             <password>myPassword</password>
-         </server>
-         <server>
-             <id>apache.snapshots.https</id>
-             <username>myUsername</username>
-             <password>myPassword</password>
-         </server>
-     </servers>
- }}}-~
- =

- Once you've done this, take the following steps to perform a release:
- =

-  1. Edit {{{pom.xml}}} and change the {{{Log4jReleaseVersion}}} property =
to the version you are releasing.
-  1. Make a fresh Git clone of the master branch of {{{https://git-wip-us.=
apache.org/repos/asf/logging-log4j2.git}}}
-  1. Update {{{src/changes/announcement.vm}}}
-  1. Run {{{mvn -P release-notes generate-resources}}} to create the relea=
se notes.
-  1. Update {{{src/changes/changes.xml}}} with the release date.
-  1. Pick a logo from src/site/resources/logos. Edit it with Gimp to add t=
he release version number and save it as a png. Copy the saved logo to src/=
site/resources/images/logo.png.
-  1. Run {{{git add, git commit, and git push}}} to commit the {{{RELEASE-=
NOTES.txt}}} file that was just generated along with the other files that w=
ere modified.
-  1. Run {{{mvn site}}} followed by {{{mvn site:stage -DstagingDirectory=
=3D$HOME/log4j}}} where {{{$HOME}}} is your home directory and verify that =
the site looks good.
-  1. Run {{{mvn -P apache-release release:prepare release:perform -Dreleas=
eVersion=3Dn.n -DdevelopmentVersion=3Dn.n-SNAPSHOT -Dtag=3Dlog4j-n.n-rcn}}}=
 to start the release. Enter the password to your signing key when prompted.
-  1. Login to http://repository.apache.org using your ASF credentials. Sel=
ect "Staging Repositories" then check the {{{org.apache.logging}}} reposito=
ry and close it.
-  1. Check out the release tag that was created via the Maven release plug=
in using {{{git checkout tags/tagname}}}.
-  1. Run {{{mvn site}}} in the tag directory. When that completes run {{{m=
vn site:stage -DstagingDirectory=3D$HOME/log4j}}} where {{{$HOME}}} is your=
 home directory.
-  1. Zip the contents of {{{$HOME/log4j}}} with {{{zip -r log4j.zip log4j}=
}}. Commit the site to your github.io account. =

-  1. 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.
-     a. Generate the md5 checksum of the bin and source archive files usin=
g {{{md5 apache-log4j-2.x-site.zip > apache-log4j-2.x-xxx.zip.md5}}}, {{{md=
5sum apache-log4j-2.x-xxx.zip > apache-log4j-2.x-xxx.zip.md4}}}, or {{{gpg =
--print-md MD5 apache-log4j-2.x-xxx.zip > apache-log4j-2.x-xxx.zip.md5}}}.
-     a. Generate the sha1 checksum of the bin and source archive files usi=
ng {{{sha apache-log4j-2.x-site.zip > apache-log4j-2.x-xxx.zip.sha1}}}, {{{=
shasum apache-log4j-2.x-xxx.zip > apache-log4j-2.x-xxx.zip.sha1}}}, or {{{g=
pg --print-md SHA1 apache-log4j-2.x-xxx.zip > apache-log4j-2.x-xxx.zip.sha1=
}}}.
-  1. Add the site zip to where https://dist.apache.org/repos/dist/dev/logg=
ing/log4j/ is checked out on your machine.
-     a. Sign the site ZIP file using {{{gpg --armor --output apache-log4j-=
2.x-site.zip.asc --detach-sig apache-log4j-2.x-site.zip}}}. You can use the=
 {{{--local-user [key ID]}}} option (it must come before {{{--detach-sig}}}=
) to specify the exact key to use when signing the ZIP file.
-     a. Generate the md5 checksum of the site ZIP using {{{md5 apache-log4=
j-2.x-site.zip > apache-log4j-2.x-site.zip.md5}}}, {{{md5sum apache-log4j-2=
.x-site.zip > apache-log4j-2.x-site.zip.md4}}}, or {{{gpg --print-md MD5 ap=
ache-log4j-2.x-site.zip > apache-log4j-2.x-site.zip.md5}}}.
-     a. Generate the sha1 checksum of the site zip using {{{sha apache-log=
4j-2.x-site.zip > apache-log4j-2.x-site.zip.sha1}}}, {{{shasum apache-log4j=
-2.x-site.zip > apache-log4j-2.x-site.zip.sha1}}}, or {{{gpg --print-md SHA=
1 apache-log4j-2.x-site.zip > apache-log4j-2.x-site.zip.sha1}}}.
-  1. Generate the release vote email:
-     a. Create the email addressed to [email protected]. Sending the =
email to the PMC is not necessary.
-     a. Copy the changes in the release from {{{RELEASE-NOTES.txt}}} into =
the email.
-     a. Provide a link to the tag, web site on http://people.apache.org, a=
nd the artifacts in the Nexus repository.
-     a. Provide the command to download all the artifacts: {{{wget -e robo=
ts=3Doff --cut-dirs=3D3 -r -p -np --no-check-certificate $LINK}}} where {{{=
$LINK}}} is the URL to the repository you just closed (plus the {{{org/apac=
he/logging/log4j/}}} path appended).
-     a. Provide a list of the artifacts by copying from the email notifica=
tion sent from the Nexus Repository.<<FootNote(Nexus has not been sending t=
his email for the past few releases at least)>>
-  1. If the release vote fails proceed as described in the section below, =
otherwise if it passes:
-     a. Create a new tag named log4j-n.n from the log4j-n.n-rcn tag by cha=
nging to the changing to the directory containing the source for the releas=
e and performing {{{git tag -a log4j-n.n -m "Release n.n of Log4j"}} follow=
ed by {{{git push --tags}}}
-  1. The following steps must be performed by a PMC member:
-     a. Checkout https://dist.apache.org/repos/dist/release/logging/log4j. =

-     a. Create the release directory under the {{{log4j}}} directory.
-     a. Move all the distribution artifacts from the distribution dev loca=
tion to that directory.
-     a. Perform an {{{svn add}}} of the release directory.
-     a. Commit the release to Subversion.
-     a. Login to reporter.apache.org and add the release version and date.
-  1. The following steps can then be taken by whomever started the release:
-     a. Delete the core-its project from the Nexus repository.
-     a. Release the remaining artifacts in the Nexus Repository.
-  1. Wait 12-24 hours (or after the distribution artifacts have been propa=
gated to the mirrors and the Maven artifacts have been propagated to the Ce=
ntral Repository), and then the following steps must be performed by a PMC =
member:
-     a. Perform {{{svn delete}}} on the '''''previous''''' release directo=
ry for the same version under the {{{log4j}}} directory (https://dist.apach=
e.org/repos/dist/release/logging/log4j).
-     a. Commit the delete to Subversion.
-     a. See ManagingTheWebSite regarding sub-projects.
-     a. Copy the release web site from the local directory where it was de=
ployed into the sub-project directory and make it be the current link. =

-  1. After the website is updated, send the release announcement email. Th=
is should be sent out to [email protected], [email protected].=
org, [email protected], and [email protected].
-  2. Send the release announcement to [email protected] using your =
apache.org email address.
- =

- If the release fails before sending the vote email:
-  1. Login to http://repository.apache.org using your ASF credentials. Sel=
ect "Staging Repositories" then check the org.apache.logging repository and=
 drop it.
-  1. Revert any changes that have not been committed.
-  1. Restart the release process as the same release candidate.
- =

- If the release fails after sending the vote email:
-  1. Login to http://repository.apache.org using your ASF credentials. Sel=
ect "Staging Repositories" then check the org.apache.logging repository and=
 drop it.
-  1. Rename the release tag in Git to add {{{rcn}}} to the end of the tag.=
 '''Note that this may not be possible in Git depending on configuration'''
-  1. Restart the release process as a new release candidate.
-=20