Differences between revisions 27 and 28
Revision 27 as of 2014-02-15 16:31:51
Size: 7930
Editor: NickWilliams
Comment:
Revision 28 as of 2014-02-16 17:05:00
Size: 7916
Editor: NickWilliams
Comment:
Deletions are marked like this. Additions are marked like this.
Line 80: Line 80:
 1. 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 send the release announcement.
 1. At the same time the release announcement is sent
, the following steps must be performed by a PMC member:
 1. 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:
Line 86: Line 85:
 1. After the website is updated, send the release announcement email.

Log4j 2.x Release Process

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

  1. Login to http://repository.apache.org using your ASF credentials. Click 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 corrected. You will be unable to get the necessary notifications until it's corrected.

  2. 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://pgp.mit.edu/. Also make sure the public key is published to http://www.apache.org/dist/logging/KEYS.

  3. Edit ~/.m2/settings.xml to add the corresponding private key and its passphrase to your settings. Also add the Apache Subversion server credentials and Sonatype repository credentials to your settings (this is your ASF credentials). You'll want to blank out the passphrase after each release and fill it back in prior to each release so that it isn't compromised.

    <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 executable 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.

  2. Check out from https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk.

  3. Run mvn -P release-notes generate-resources to create the release notes.

  4. Update src/changes/changes.xml with the release date.

  5. Run svn commit to commit the RELEASE-NOTES.txt file that was just generated.

  6. Run mvn -P apache-release release:prepare release:perform to start the release. Enter the password to your signing key when prompted.

  7. Login to http://repository.apache.org using your ASF credentials. Select "Staging Repositories" then check the org.apache.logging repository and close it.

  8. Check out the release tag that was created via the Maven release plugin.
  9. Run mvn site in the tag directory. When that completes run mvn site:stage-deploy -DstagingSiteURL=file:///$HOME/log4j where $HOME is your home directory.

  10. Zip the contents of $HOME/log4j with zip -r log4j.zip log4j and copy to your account at people.apache.org with scp log4j.zip myUsername@people.apache.org:/home/myUsername. Unzip the contents into your public html directory.

  11. Generate the release vote email:
    1. Create the email addressed to log4j-dev@logging.apache.org and private@logging.apache.org. Sending the email to the PMC is not strictly necessary, but due to the small size of the logging PMC it is expedient to do so in order to get the required votes.

    2. Copy the changes in the release from RELEASE-NOTES.txt into the email.

    3. Provide a link to the tag, web site on http://people.apache.org, and the artifacts in the Nexus repository.

    4. Provide the command to download all the artifacts: wget -e robots=off --cut-dirs=3 -r -p -np --no-check-certificate $LINK where $LINK is the URL to the repository you just closed.

    5. Provide a list of the artifacts by copying from the email notification sent from the Nexus Repository.
  12. If the release vote fails proceed as described in the section below, otherwise if it passes:
    1. Download all the distribution files from the Nexus repository (you can download using the wget above and then going to the distribution sub-directory).
    2. Rename the distribution files back to their original names (Maven renamed them when they were deployed to Nexus) using for f in log4j-distribution-*; do mv $f $(echo $f | sed 's/^log4j-distribution-/apache-log4j-/g'); done

    3. Delete the *.asc.md5 and *.asc.sha1 files and *.pom*.

    4. Copy the site ZIP file you created earlier to the distribution release directory.
    5. 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.

    6. Generate the md5 checksum of the site ZIP using md5 apache-log4j-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 apache-log4j-2.x-site.zip > apache-log4j-2.x-site.zip.md5.

    7. Generate the sha1 checksum of the site zip using sha apache-log4j-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 SHA1 apache-log4j-2.x-site.zip > apache-log4j-2.x-site.zip.sha1.

  13. The following steps must be performed by a PMC member:
    1. Checkout https://dist.apache.org/repos/dist/release/logging/log4j.

    2. Create the release directory under the log4j directory.

    3. Move all the distribution artifacts to that directory.
    4. Perform an svn add of the release directory.

    5. Commit the release to Subversion.
  14. The following steps can then be taken by whomever started the release:
    1. Delete the distribution directory from the Nexus repository.
    2. Release the remaining artifacts in the Nexus Repository.
  15. 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:
    1. 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).

    2. Commit the delete to Subversion.
    3. See ManagingTheWebSite regarding sub-projects.

    4. Copy the release web site from the local directory where it was deployed into the sub-project directory and make it be the current link.
  16. After the website is updated, send the release announcement email.

If the release fails before sending the vote email:

  1. Login to http://repository.apache.org using your ASF credentials. Select "Staging Repositories" then check the org.apache.logging repository and drop it.

  2. Delete the release tag in subversion.
  3. Reset the version numbers in all of the poms back to the release snapshot.
  4. 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. Select "Staging Repositories" then check the org.apache.logging repository and drop it.

  2. Rename the release tag in subversion to add rcn to the end of the tag.

  3. Reset the version numbers in all of the poms back to the release snapshot.
  4. Restart the release process as a new release candidate.

Log4j2ReleaseGuide (last edited 2014-08-30 03:14:17 by msicker)