Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Run mvn clean verify on the project to make sure it builds cleanly.
  2. Make sure you have an up to date PGP key (at least 4096-bit RSA or stronger; use of ECDSA or EdDSA keys should be in addition to the RSA keys for broader compatibility) in the Logging KEYS file along with having it mirrored in a common public PGP key repository such as Ubuntu Keyservers.
  3. Configure your git config user.signingkeysigningKey, user.name, and user.email values to match that key.
    1. External guide: https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification/telling-git-about-your-signing-key
  4. Ensure you have your credentials set up in ~/.m2/settings.xml as described in Log4j 2 Release Process.
    1. TODO: insert information about using encrypted passwords.

...

  1. Edit pom.xml and change the Log4jKotlinVersion property to the new version n.n.n.
  2. Update the Log4jReleaseManager and Log4jReleaseKey properties if necessary.
  3. Generate the site locally and verify it looks alright.
      Run
      1. mvn site
      2. cd target/site
      3. python3 -m http.server
      4. Go to http://localhost:8000
    1. Build, sign, tag, and publish a release candidate n.n.n-rcn. If your GPG key isn't on a hardware key, it should be password protected; you'll be prompted to enter the password to sign artifacts during the build. && mvn site:stage -DstagingDirectory=$HOME/log4j-kotlin and make sure the site looks alright.Run
        1. mvn -Papache-release -DskipTests -Darguments="DskipTests" release:prepare release:perform -DreleaseVersion=n.n.n -DdevelopmentVersion=n.n.n-SNAPSHOT -Dtag=log4j-api-kotlin-n.n.n-rcn
        to start the release. Enter your GPG signing key when prompted.
      1. Login to https://repository.apache.org/ with your ASF credentials. Select "Staging Repositories", then find the newly created orgapachelogging-* staging repository and close it.
      2. Checkout the release tag and run mvn site && mvn site:stage -DstagingDirectory=$HOME/log4j-kotlin to stage the site.Commit the generated site to stage the website into a working copy of the asf-staging branch of https://github.com/apache/logging-log4j-site/tree/asf-staging to log4j-kotlin-n.n.n and update the symlink of kotlin to point to it.
        1. mvn site && mvn site:stage -DstagingDirectory=$HOME/code/logging/site-java/log4j-kotlin-n.n.n
        2. Check result of deployment: https://logging.staged.apache.org/log4j/kotlin/
      3. Copy the archives and signatures from log4j-api-kotlin/target/ to https://dist.apache.org/repos/dist/dev/logging/log4j/kotlin/.
      4. Run for f in *.bz2 *.gz *.zip; do shasum -a 512 $f >$f.sha512; shasum -a 256 $f >$f.sha256; done to generate hashsums.
      5. Send a release vote email to dev@logging.apache.org with links to everything.
      6. If the release fails, drop the staging repository on repository.a.o and start over with a fresh release candidate number.
      7. Otherwise, if the release passes, complete the release on the staging repository.
      8. Create an immutable signed release tag.Run
          1. git tag -s rel/n.n.n 'log4j-api-kotlin-n.n.n-rcn^{}' -m 'Release n.n.n of Log4j Kotlin API' && git push --tags
        1. Move the distribution artifacts to https://dist.apache.org/repos/dist/release/logging/log4j/kotlin/ where a new version directory should be made.
          1. svn mkdir '^/release/logging/log4j/kotlin/n.n.n'
          2. svn mv $(svn ls '^/dev/logging/log4j/kotlin' | xargs printf '^/dev/logging/log4j/kotlin/%s ') '^/release/logging/log4j/kotlin/n.n.n/'
        2. Login to https://reporter.apache.org/ to record the release.
        3. Wait 12-24 hours for mirrors to propagate.
        4. Delete the previous version in https://dist.apache.org/repos/dist/release/logging/log4j/kotlin/.
          1. svn rm '^/release/logging/log4j/kotlin/n.n.n-1'
        5. Merge the asf-staging site branch into asf-site like so:
          1. git checkout asf-site && git rebase asf-staging && git push origin asf-site
        6. Update any redirect to point to new version for latest (if applicable).
        7. Send announcement email (from your apache.org email) to dev@logging.apache.org, log4j-user@logging.apache.org, and announcements@apache.org.

        ...