> "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.
Oh yeah. Those we have a fair share of. Even in the last release we had a chicken-egg problem of dependencies and we had to split and manually tweak the release process - that was a bit of a headache. Maybe what will help - in essence with Airflow we do keep two "separate" release trains a) core airflow <- single package release b) providers <- this is where the bulk voting happens (and here often happens that there are cross-dependencies between them - but when you release them together it's fine) But sometimes we release certain "providers" first even if they are not "usable" - precisely so that the later "core airflow" release makes use of them. So "smart" splitting the releases might also help. J On Fri, Sep 1, 2023 at 10:25 AM Volkan Yazıcı <vol...@yazi.ci> wrote: > 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? > > > > > >