Volkan, Please do not wait to release log4j-tools. I am already holding off adding more changelog entries so as to avoid creating more work when the PR is merged. As far as I can tell there is no requirement that log4j-tools MUST be released via CI.
I really would have liked to have all of this done already as this would have been an ideal time to release 2.19.1. Ralph > On Dec 28, 2022, at 6:34 PM, Matt Sicker <m...@musigma.org> wrote: > > This sounds amazing! Thanks for championing this effort! For signing, there’s > some project out there that lets you use OIDC for signing things and keeping > a sort of certificate transparency log so that you can verify that not only > was an artifact signed by a valid signature, but it’s also done by the > expected key for a particular release. See https://www.sigstore.dev/ for > details. I’m not sure if it works with GPG keys or Maven or anything, but it > could be a useful basis for further release automation in the future (even if > it’s something more custom to the ASF). > — > Matt Sicker > >> On Dec 28, 2022, at 14:42, Volkan Yazıcı <vol...@yazi.ci> wrote: >> >> Hello, >> >> I want to share some updates from my side on what I have been working on >> for the last couple of months. In particular, I expect certain changes to >> have an ASF-wide impact! Sounds interesting? Continue reading. >> >> *What is up with `maven-changes-plugin`?* >> >> The current `site` phase takes ages to complete. This significantly hinders >> releases and more frequent website updates. The main culprit is `site` >> phase plugins need to be executed for 50+ modules. As my investigation >> turned out, we can actually either drop or replace all such plugins, except >> one: `maven-changes-plugin`, that is used to generate the changelog from >> `changes.xml`. `maven-changes-plugin` is also a major source of >> merge-conflicts in between feature branches and PRs, since they all need to >> touch to the same file: `changes.xml`. >> >> *Is it only about overhauling the `site` phase?* >> >> No. As we agreed on, we want to migrate the issue tracking from JIRA to >> GitHub Issues. `maven-changes-plugin` blocks us there too, since it only >> supports a single issue tracking system. >> >> *Enter `log4j-changelog`* >> >> I have written simple Java command line applications to perform the >> following tasks: >> >> 1. Populate >> `src/site/changelog/<releaseVersion>/<issueId>_<description>.xml` files >> from `changes.xml` >> 2. Generate AsciiDoc-formatted changelog files from the populated >> `src/site/changelog` >> 3. Make `src/site/changelog` ready before a release >> >> These technical tools will not only help us to replace >> `maven-changes-plugin`, support multiple issue trackers, and enable great >> simplification of the `site` phase, due to its one-changelog-file-per-issue >> convention, they will make changelog merge conflicts a thing of the past >> too! >> >> Okay, great! Since the `maven-changes-plugin` successor is there, what are >> we exactly waiting for? >> >> *Enter `log4j-tools`* >> >> I have implemented `log4j-changelog` as a not-deployed Log4j module, though >> Ralph insisted on not having this within Log4j to make it available for >> other Log4j projects and since it needs to be shared by (and hence, sync'ed >> in between) `release-2.x` and `master` branches. He proposed that we host >> this in `log4j-tools` <https://github.com/apache/logging-log4j-tools>. >> Since `log4j-tools` repository never had a release before, I let my >> imagination go wild there: >> >> - Adopted the Maven-recommended way of setting up a BOM: >> `logging-parent` parents `log4j-bom`, which parents `log4j-parent`, which >> parents all other modules. There the effective POM of `log4j-bom` is >> stripped-down from its parent and all unnecessary weight via >> `flatten-maven-plugin` voodoo. >> - Switched to CI-friendly Maven versioning >> <https://maven.apache.org/maven-ci-friendly.html> >> - Configured GitHub Actions to make releases! >> >> (As you might guess, if experiment succeeds, I will port all these fancy >> stuff to Log4j too.) >> >> *Releasing... via GitHub Actions!?!* >> >> ASF project artifacts are required to be signed and up until now that has >> **always** been performed manually by release maintainers. Releasing **and >> signing** artifacts in a fully-automated fashion in CI... "Surely You're >> Joking, Mr. Feynman!" But I am not! I have shared a technical >> implementation proposal in `members@`, got approval from ASF Security Team >> head Mark J. Cox >> <https://lists.apache.org/thread/t1fbn11m70sy9df86xgzzp0fllg38p9q>, and now >> I am waiting for INFRA-23996 >> <https://issues.apache.org/jira/browse/INFRA-23996> to be implemented! >> >> What does this effectively mean? To the best of my knowledge, *`log4j-tools` >> will be the first ASF project ever that is released via CI!* This will >> enable various release automation enhancements, not to mention the software >> supply chain traceability it will bring as well. >> >> *Where are we now?* >> >> Once INFRA-23996 <https://issues.apache.org/jira/browse/INFRA-23996> is >> implemented and `log4j-tools` (containing `log4j-changelog`) is released, >> the following PR train will be merged: >> >> - #1145 <https://github.com/apache/logging-log4j2/pull/1145> – replace >> `maven-changes-plugin` with `log4j-changelog` >> - #1166 <https://github.com/apache/logging-log4j2/pull/1166> – simplify >> `site` goal (`./mvnw site` takes ~30 seconds!) >> - #1172 <https://github.com/apache/logging-log4j2/pull/1172> – update >> sources, docs, links, etc. to reflect the migration from JIRA to GitHub >> Issues >> >> *What are we waiting for?* >> >> We *_can_* release `log4j-tools` without INFRA-23996 >> <https://issues.apache.org/jira/browse/INFRA-23996>, the old school way, >> i.e., via running `./mvnw deploy` from a personal laptop. That said, I >> believe releasing `log4j-tools` via CI will have a way bigger impact beyond >> the scope of Log4j, and `log4j-tools` constitutes a great candidate for >> such an experiment. We are all set: `log4j-tools` GitHub Actions workflows >> <https://github.com/apache/logging-log4j-tools/blob/master/.github/workflows/build.yml> >> are ready to make an automated release. Infra team has indicated in >> INFRA-23996 <https://issues.apache.org/jira/browse/INFRA-23996> that they >> will implement it in a couple of days. Given how close we are to an >> automated release, I will wait for my grand infra revamp scheme to unfold. >