Thanks for sharing insights from the Airflow land, much appreciated. "Bulk" voting is something I have heard before. Certainly can be a solution *if* the packages don't depend on each other. Otherwise I cannot see how it helps with the cases I shared earlier. That is, `log4j-core` needs to be released first so that `log4j-bom` can be updated and released. Put another way, both can't be released simultaneously.
On Fri, Sep 1, 2023 at 9:24 AM Jarek Potiuk <ja...@potiuk.com> wrote: > I would love to hear about it, but I believe releasing any software is an > "act of Foundation" and requires 3 explicit PMC members to say "+1" in > order for it to have legal repercussions. > > So I am not so sure if releasing "software" of any kind that can be "ASF > software" should be done without voting and 3 PMC members saying +1. In > fact even the roll calls done by the board when the projects are not active > is to check "Is there enough (3) active PMC members for the PMC to make a > release). > > I believe in justified cases however, you can shorten the voting period or > even vote in "secret" and announce the voting later (for example when you > have security release). The process says that there SHOULD be 72 HRs (not > MUST) and if there are good reasons, it can be shortened. But the act of > voting and 3 +1 from the PMC members is - I believe - obligatory. > > A comment on how we deal with possibly similar cases in Airflow - where we > often release up to 90(!) packages 2 times a month (!). Maybe that can help > with designing a similar process. > > * we allow "bulk" voting. We prepare the "up to 90" provider packages as a > single "pack" of things we vote on. We have automation and tooling that > allows us to both release and verify (by PMC members) all those packages > together. We also involve the contributors and those who raised relevant > issues in testing those packages (also heavily automated - example issue > generated here https://github.com/apache/airflow/issues/33305 ) - this is > nice because it allows us to streamline the process and release multiple > things together, whil allow individuals to focus on testing all such > packages individually and report it back in that single place where we > discuss the whole "release pack". > > * when a bug / release/packaging/sources/problem is found in only one of > those packages (which does not invalidate the rest) the release manager can > decide to withdraw those faulty packages from that release "pack" but this > does not remove +1 votes that were given for the ones that are good. > > * after releasing the "good" packages (and parallel fixing of the broken > ones) - the broken ones are released with fixes as RC2 candidates. In most > cases the fixes are really small, so the "user" testing (i.e. what has been > tested and confirmed working so far) status is carried over to the RC2 > candidates. The PMC voting for those RC2 is restarted (i.e. we need three > new +1 from the PMC) . But this time we turn on "accelerated" voting. We > agree to the rule that in this case 24H (and 3 PMC +1s) is enough for the > vote to complete. > > * the 72HR -> 24 HR is only done when there are really small and few fixes > since RC1 > > This has been discussed at the devlist, agreed and captured in our > processes. For those interested: > > Discussion about introducing RC2+ accelerated voting : > https://lists.apache.org/thread/8rpq06pobp6rnm9phnbc9fz4ky32sm16 > Lazy consensus on approving it: > https://lists.apache.org/thread/cv194w1fqqykrhswhmm54zy9gnnv6kgm > Example recent vote result where two packages have been excluded due to > bugs but where release manager decided not to accelerate the voting due to > big number of fixes coming since RC1: > https://lists.apache.org/thread/1kovpkx0t2pm2xrwf61ycqdynp0kdl19 > Example vote where we had 24 HR accelerated vote: > https://lists.apache.org/thread/ndm71tjdd3mmx7s904ds6sqxy84vb1fw (BTW We > also had RC3 for google provider as another bug was found in RC2). - those > rules are transitive. RC3 was also accelerated. > > I hope it helps. > > J. > > > > > On Fri, Sep 1, 2023 at 8:53 AM Volkan Yazıcı <vol...@yazi.ci> wrote: > > > Is such a thing possible? It is pretty common that many Java projects > have > > multiple modules having their own release cycles. Some of these modules > are > > miscellaneous "utilities" to support the rest of the code base. Common > > examples I can think of are > > > > - BOM project covering a dozen other projects (e.g., `log4j-bom` for > > `log4j-core`, `log4j-layout-template-json`, etc.) > > - Utilities (e.g., `log4j-changelog` used to maintain a changelog and > > release notes for Java-based Logging Services projects) > > > > `log4j-core` release takes 72 hours due to voting. Once that is done, > > waiting another 72 hours for `log4j-bom` feels like a waste of time. > > Similarly, `log4j-changelog` is an internally used tool, yet we need to > > publish it to Maven Central and such. Wouldn't it be possible to release > > such projects (e.g., `log4j-bom`, `log4j-changelog`) with lazy voting? > That > > is, *"unless there are objections within 24 hours, I'll assume a lazy > > consensus, and release it".* Can the Release Policy > > <https://www.apache.org/legal/release-policy.html> and/or the Voting > > Process > > <https://www.apache.org/foundation/voting.html> accommodate such a > > practice? > > >