RELEASING.adoc (85 lines of code) (raw):
////
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
////
= Release instructions
[WARNING]
====
In the code examples below, assuming the version to be released is `7.8.0`.
====
== Stage the release
. Checkout the release branch: `git checkout -B release/7.8.0 origin/main`
. Perform and commit following changes:
.. Set the `revision` property to `7.8.0` in xref:pom.xml[`pom.xml`]
.. For release notes
... Run `./mvnw -N -P changelog-release` and verify `src/changelog` content (e.g., `.release-notes.md.ftl`)
... Run `./mvnw -N -P changelog-export` and verify `target/release-notes` content
. Make sure that `./mvnw clean verify` succeeds – if not, implement necessary fixes
. Commit and push the `release/7.8.0` branch
. Make sure the associated https://github.com/apache/logging-log4j-tools/actions[GitHub Actions workflow] succeeds:
.. *Signed artifacts* are uploaded to the _Staging Repositories_ in https://repository.apache.org/[repository.apache.org]
.. *Signed distribution and its checksum* (e.g., `apache-log4j-tools-7.8.0.{zip,.zip.asc,.zip.sha512}`) are uploaded to https://dist.apache.org/repos/dist/dev/logging/log4j[dist.apache.org/repos/dist/**dev**/logging/log4j] Subversion repository (along with auxiliary files; email texts, etc.)
+
If not, commit necessary fixes, push, and repeat.
. _Close_ the repository in https://repository.apache.org/[repository.apache.org]
== Vote the release
. Send the vote email uploaded to the https://dist.apache.org/repos/dist/dev/logging/log4j[dist.apache.org/repos/dist/**dev**/logging/log4j] Subversion repository
+
[WARNING]
====
Double-check the cited https://repository.apache.org[repository.apache.org] URL in the generated email, it might have changed!
====
+
[WARNING]
====
Make sure your email is sent in plain text, that is, https://infra.apache.org/contrib-email-tips#nohtml[no HTML]!
If you are using GMail, simply enable the _"Plain text mode"_ while composing your message.
====
. Once the consensus is reached within the set time frame, respond to the first post in the thread as follows:
+
[source]
----
Adding my +1.
With that, the release passes with 3 binding +1 votes from <PMC-member-1>, ..., <PMC-member-N>, and me.
I will continue the release process.
----
== Publish the release
=== In the git repository
. Pull the most recent changes and tags
. Tag the release (e.g., `rel/7.8.0`) and push it
+
[source,bash]
----
git tag -a rel/7.8.0 <COMMIT-ID> -m 7.8.0
git push origin rel/7.8.0
----
+
[IMPORTANT]
====
The ASF infrastructure treats ``rel/``-prefixed git tags special and ensures they are immutable for provenance reasons.
====
. Merge `release/7.8.0` to `main`
. Set the revision property to the next development version (e.g., `7.9.0-SNAPSHOT`) in xref:pom.xml[`pom.xml`]
. Commit changes and push the `main` branch
. Delete the local and remote copies of the `release/7.8.0` branch
=== In the ASF infrastructure
. _Release_ the repository in https://reporter.apache.org/addrelease.html?logging[repository.apache.org]
. In https://dist.apache.org/repos/dist/release/logging/log4j[dist.apache.org/repos/dist] Subversion repository,
.. create the `*release*/logging/log4j-tools/7.8.0` folder, and copy the signed sources and their checksum from `*dev*/logging/log4j` to there
.. delete the folder from an earlier release in `*release*/logging/log4j-tools`
.. commit changes
. Report the release at https://reporter.apache.org/[reporter.apache.org]
=== In GitHub
Once the artifacts are visible in https://central.sonatype.dev/[central.sonatype.dev], https://github.com/apache/logging-log4j-tools/releases/new[create a new release in GitHub]
. Use the `rel/7.8.0` tag
. Copy release notes from the generated emails