*[Apologies for the cross-post in BCC. I find this development important
for all Java-based ASF projects. Hence, my push to reach a wider audience.]*

In my crusade to automate whatever [practically] possible in the release
process of a Java-based ASF project, I have cracked a new puzzler:
uploading the distribution to Subversion.

*Why should you care?*

Because this implements the most easy-to-run and ASF-compliant release
process out there in the wild for Java-based ASF projects.

*Status*

At this point, `logging-log4j-tools` GitHub repository CI performs the
following tasks during a release:

   1. Build & sign artifacts
   2. Upload artifacts to Nexus
   3. Generate the release notes
   4. Generate & sign the distribution ZIP containing artifacts,
   Git-tracked sources, and the release notes
   5. Generate the vote and announcement emails (incl. the release notes)
   6. Upload the signed distribution along with the emails to SVN

I deliberately did *not* automate sending out the vote email, since that is
irreversible whereas all the steps I have shared above are. Therefore, the
RM is still in control of polishing and retrying the CI before sealing it
with a vote email.

*Future work*

Moving what is possible (GitHub Actions workflow, email generation,
BeanShell, etc.) to a separate GitHub repository and reusing it in
`logging-log4j-tools`.

*References*

   - INFRA ticket requesting SVN credentials in GitHub Secrets
   <https://issues.apache.org/jira/browse/INFRA-24803>
   - CI run of a successful SVN upload
   <https://github.com/apache/logging-log4j-tools/actions/runs/5655424129>
   - GitHub Actions Workflow (aka. CI script)
   
<https://github.com/apache/logging-log4j-tools/blob/main/.github/workflows/build.yml#L197>
   - Release instructions (for the RM)
   <https://github.com/apache/logging-log4j-tools/blob/main/RELEASING.adoc>
   - Email script (incorporating changelog and such)
   
<https://github.com/apache/logging-log4j-tools/blob/main/.github/generate-email.sh>
   - BeanShell script generating the distribution (JARs + Git-tracked
   sources)
   <https://github.com/apache/logging-log4j-tools/blob/main/pom.xml#L467>

Reply via email to