Any further revisions or objections to this or are we good to take it to a vote?
On Wed, Sep 28, 2022, at 10:54 AM, Josh McKenzie wrote: > So revised proposal: > > On Release Lifecycle cwiki page: > - Ensure we have parity on jobs run between circle and asf-ci > - Allow usage of circleci as gatekeeper for releases. 1 green run -> beta, 3 > green runs consecutive -> ga > - No new consistent regressions on CI for asf compared to prior branches > - Explicitly do not consider ci-cassandra asf flaky tests as release blockers > > Changes to codify into documentation: > - On patch before commit, multiplex @500 all new tests, changed tests, or > expected to be impacted tests ("expected to be impacted" piece pending > multi-class multiplexing support): > - Add support for multi-class specification in multiplexer and document > > Add informal project commitment during next major release lifecycle to > continue working on bringing asf ci-cassandra up to where it can be formal > gatekeeper for release. > > On Wed, Sep 28, 2022, at 10:13 AM, Ekaterina Dimitrova wrote: >> If we talk blockers nothing more than ensuring we see all tests we want >> pre-release, IMHO. >> The other points sound to me like future important improvements that will >> help us significantly in the flaky test fight. >> >> On Wed, 28 Sep 2022 at 10:08, Josh McKenzie <jmcken...@apache.org> wrote: >>> __ >>> I'm receptive to that but I wouldn't gate our ability to get 4.1 out the >>> door based on circle on that. Honestly probably only need to have the >>> parity of coverage be the blocker for its use in retrospect. >>> >>> On Wed, Sep 28, 2022, at 1:32 AM, Berenguer Blasi wrote: >>>> I would add an option for generate.sh to detect all changed *Test.java >>>> files, that would be handy imo. >>>> >>>> On 28/9/22 4:29, Josh McKenzie wrote: >>>>> So: >>>>> 1. 500 iterations on multiplexer >>>>> 2. Augmenting generate.sh to allow providing multiple class names and >>>>> generating a single config that'll multiplex all the tests provided >>>>> 3. Test parity / pre-release config added on circleci (see >>>>> https://issues.apache.org/jira/browse/CASSANDRA-17930), specifically >>>>> dtest-large, dtest-offheap, test-large-novnode >>>>> If we get the above 3, are we at a place where we're good to consider >>>>> vetting releases on circleci for beta / rc / ga? >>>>> >>>>> On Tue, Sep 27, 2022, at 11:28 AM, Ekaterina Dimitrova wrote: >>>>>>> “I have plans on modifying the multiplexer to allow specifying a list >>>>>>> of classes per test target, so we don't have to needlessly suffer with >>>>>>> this” >>>>>>> >>>>>>> >>>>>>> That would be great, I was thinking of that the other day too. With >>>>>>> that said I’ll be happy to support you in that effort too :-) >>>>>> >>>>>> On Tue, 27 Sep 2022 at 11:18, Josh McKenzie <jmcken...@apache.org> wrote: >>>>>>> >>>>>>>> I have plans on modifying the multiplexer to allow specifying a list >>>>>>>> of classes per test target, so we don't have to needlessly suffer with >>>>>>>> this >>>>>>> This sounds integral to us multiplexing tests on large diffs whether we >>>>>>> go with circle for releases or not and would be a great addition! >>>>>>> >>>>>>> On Tue, Sep 27, 2022, at 6:19 AM, Andrés de la Peña wrote: >>>>>>>>> 250 iterations isn't enough; I use 500 as a low water mark. >>>>>>>> >>>>>>>> I agree that 500 iterations would be a reasonable minimum. We have >>>>>>>> seen flaky unit tests requiring far more iterations, but that's not >>>>>>>> very common. We could use to 500 iterations as default, and >>>>>>>> discretionary use a higher limit in tests that are quick and might be >>>>>>>> prone to concurrency issues. I can change the defaults on CirceCI >>>>>>>> config file if we agree to a new limit, the current default of 100 >>>>>>>> iterations is quite arbitrary. >>>>>>>> >>>>>>>> The test multiplexer allows to either run test individual test methods >>>>>>>> or entire classes. It is quite frequent to see tests methods that pass >>>>>>>> individually but fail when they are run together with the other tests >>>>>>>> in the same class. Because of this, I think that we should always run >>>>>>>> entire classes when repeating new or modified tests. The only >>>>>>>> exception to this would be Python dtests, which usually are more >>>>>>>> resource intensive and not so prone to that type of issues. >>>>>>>> >>>>>>>>> For CI on a patch, run the pre-commit suite and also run multiplexer >>>>>>>>> with 250 runs on new, changed, or related tests to ensure not flaky >>>>>>>> >>>>>>>> The multiplexer only allows to run a single test class per push. This >>>>>>>> is ok for fixing existing flakies (its original purpose), and for most >>>>>>>> minor changes, but it can be quite inconvenient for testing large >>>>>>>> patches that add or modify many tests. For example, the patch for >>>>>>>> CEP-19 directly modifies 31 test classes, which means 31 CircleCI >>>>>>>> config pushes. This number can be somewhat reduced with some wildcards >>>>>>>> on the class names, but the process is still quite inconvenient. I >>>>>>>> guess that other large patches will find the same problem. I have >>>>>>>> plans on modifying the multiplexer to allow specifying a list of >>>>>>>> classes per test target, so we don't have to needlessly suffer with >>>>>>>> this. >>>>>>>> >>>>>>>> On Mon, 26 Sept 2022 at 22:44, Brandon Williams <dri...@gmail.com> >>>>>>>> wrote: >>>>>>>>> On Mon, Sep 26, 2022 at 1:31 PM Josh McKenzie <jmcken...@apache.org> >>>>>>>>> wrote: >>>>>>>>> > >>>>>>>>> > 250 iterations isn't enough; I use 500 as a low water mark. >>>>>>>>> > >>>>>>>>> > Say more here. I originally had it at 500 but neither Mick nor I >>>>>>>>> > knew why and figured we could suss this out on this thread. >>>>>>>>> >>>>>>>>> I've seen flakies that passed with less later exhibit at that point. >>>>>>>>> >>>>>>>>> > This is also assuming that circle and ASF CI run the same tests, >>>>>>>>> > which >>>>>>>>> > is not entirely true. >>>>>>>>> > >>>>>>>>> > +1: we need to fix this. My intuition is the path to getting >>>>>>>>> > circle-ci in parity on coverage is a shorter path than getting ASF >>>>>>>>> > CI to 3 green runs for GA. That consistent w/your perception as >>>>>>>>> > well or do you disagree? >>>>>>>>> >>>>>>>>> I agree that bringing parity to the coverage will be the shorter path. >>>>>>> >>>>> >>> >