Abstract: Signing release artifacts using an automated release
infrastructure has been officially approved by LEGAL. This enables
projects to sign artifacts using, say, GitHub Actions.

I have been trying to overhaul the Log4j release process and make it
as frictionless as possible since last year. As a part of that effort,
I wanted to sign artifacts in CI during deployment and in a
`members@a.o` thread[0] I explained how one can do that securely with
the help of Infra. That was in December 2022. It has been a long,
rough journey, but we succeeded. In this PR[1], Legal has updated the
release policy to reflect that this process is officially allowed.
Further, Infra put together guides[2][3] to assist projects. Logging
Services PMC has already successfully performed 4 Log4j Tools releases
using this approach, see its release process[4] for a demonstration.

[0] (members only!)
https://lists.apache.org/thread/1o12mkjrhyl45f9pof94pskg55vhs61n
[1] https://github.com/apache/www-site/pull/235
[2] https://infra.apache.org/release-publishing.html#signing
[3] https://infra.apache.org/release-signing.html#automated-release-signing
[4] https://github.com/apache/logging-log4j-tools/blob/master/RELEASING.adoc

# F.A.Q.

## Why shall a project be interested in this?

It greatly simplifies the release process. See Log4j Tools release
process[4], probably the simplest among all Java-based ASF projects.

## How can a project get started?

1. Make sure your project builds are reproducible (otherwise there is
no way PMC can verify the integrity of CI-produced and -signed
artifacts)
2. Clone and adapt INFRA-23996 (GPG keys in GitHub secrets)
3. Clone and adapt INFRA-23974 (Nexus creds. in GitHub secrets for
snapshot deployments)
4. Clone and adapt INFRA-24051 (Nexus creds. in GitHub secrets for
staging deployments)

You might also want to check this[5] GitHub Action workflow for inspiration.

[5] 
https://github.com/apache/logging-log4j-tools/blob/master/.github/workflows/build.yml

## Does the "automated release infrastructure" (CI) perform the full release?

No. CI *only* uploads signed artifacts to Nexus. The release manager
(RM) still needs to copy the CI-generated files to SVN, PMC needs to
vote, and, upon consensus, RM needs to "close" the release in Nexus
and so on.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
For additional commands, e-mail: dev-h...@community.apache.org

Reply via email to