I tried to enable the merge queue on my public fork, but the option is not
available. I did a little searching and it looks like ASF does not allow
this feature to be used. I've filed an INFRA ticket to ask again
https://issues.apache.org/jira/browse/INFRA-25485

-David

On Fri, Feb 9, 2024 at 7:18 PM Ismael Juma <m...@ismaeljuma.com> wrote:

> Also, on the mockito stubbings point, we did upgrade to Mockito 5.8 for the
> Java 11 and newer builds:
>
> https://github.com/apache/kafka/blob/trunk/gradle/dependencies.gradle#L64
>
> So, we should be good when it comes to that too.
>
> Ismael
>
> On Fri, Feb 9, 2024 at 4:15 PM Ismael Juma <m...@ismaeljuma.com> wrote:
>
> > Nice!
> >
> > Ismael
> >
> > On Fri, Feb 9, 2024 at 3:43 PM Greg Harris <greg.har...@aiven.io.invalid
> >
> > wrote:
> >
> >> Hey all,
> >>
> >> I implemented a fairly aggressive PR [1] to demote flaky tests to
> >> integration tests, and the end result is a much faster (10m locally,
> >> 1h on Jenkins) build which is also very reliable.
> >>
> >> I believe this would make unitTest suitable for use in the merge
> >> queue, with the caveat that it doesn't run 25k integration tests, and
> >> doesn't perform the mockito strict stubbing verification.
> >> This would still be a drastic improvement, as we would then be running
> >> the build and 87k unit tests that we aren't running today.
> >>
> >> Thanks!
> >> Greg
> >>
> >> [1] https://github.com/apache/kafka/pull/15349
> >>
> >> On Fri, Feb 9, 2024 at 9:25 AM Ismael Juma <m...@ismaeljuma.com> wrote:
> >> >
> >> > Please check https://github.com/apache/kafka/pull/14186 before making
> >> the
> >> > `unitTest` and `integrationTest` split.
> >> >
> >> > Ismael
> >> >
> >> > On Fri, Feb 9, 2024 at 9:16 AM Josep Prat <josep.p...@aiven.io.invalid
> >
> >> > wrote:
> >> >
> >> > > Regarding "Split our CI "test" job into unit and integration so we
> can
> >> > > start collecting data on those suites", can we run these 2 tasks in
> >> the
> >> > > same machine? So they won't need to compile classes twice for the
> same
> >> > > exact code?
> >> > >
> >> > > On Fri, Feb 9, 2024 at 6:05 PM Ismael Juma <m...@ismaeljuma.com>
> wrote:
> >> > >
> >> > > > Why can't we add @Tag("integration") for all of those tests? Seems
> >> like
> >> > > > that would not be too hard.
> >> > > >
> >> > > > Ismael
> >> > > >
> >> > > > On Fri, Feb 9, 2024 at 9:03 AM Greg Harris
> >> <greg.har...@aiven.io.invalid
> >> > > >
> >> > > > wrote:
> >> > > >
> >> > > > > Hi David,
> >> > > > >
> >> > > > > +1 on that strategy.
> >> > > > >
> >> > > > > I see several flaky tests that aren't marked with
> >> @Tag("integration")
> >> > > > > or @IntegrationTest, and I think those would make using the
> >> unitTest
> >> > > > > target ineffective here. We could also start a new tag
> >> @Tag("flaky")
> >> > > > > and exclude that.
> >> > > > >
> >> > > > > Thanks,
> >> > > > > Greg
> >> > > > >
> >> > > > > On Fri, Feb 9, 2024 at 8:57 AM David Arthur <mum...@gmail.com>
> >> wrote:
> >> > > > > >
> >> > > > > > I do think we can add a PR to the merge queue while bypassing
> >> branch
> >> > > > > > potections (like we do for the Merge button today), but I'm
> not
> >> 100%
> >> > > > > sure.
> >> > > > > > I like the idea of running unit tests, though I don't think we
> >> have
> >> > > > data
> >> > > > > on
> >> > > > > > how long just the unit tests run on Jenkins (since we run the
> >> "test"
> >> > > > > target
> >> > > > > > which includes all tests). I'm also not sure how flaky the
> unit
> >> test
> >> > > > > suite
> >> > > > > > is alone.
> >> > > > > >
> >> > > > > > Since we already bypass the PR checks when merging, it seems
> >> that
> >> > > > adding
> >> > > > > a
> >> > > > > > required compile/check step before landing on trunk is
> strictly
> >> an
> >> > > > > > improvement.
> >> > > > > >
> >> > > > > > What about this as a short term plan:
> >> > > > > >
> >> > > > > > 1) Add the merge queue, only run compile/check
> >> > > > > > 2) Split our CI "test" job into unit and integration so we can
> >> start
> >> > > > > > collecting data on those suites
> >> > > > > > 3) Add "unitTest" to merge queue job once we're satisfied it
> >> won't
> >> > > > cause
> >> > > > > > disruption
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > On Fri, Feb 9, 2024 at 11:43 AM Josep Prat
> >> > > <josep.p...@aiven.io.invalid
> >> > > > >
> >> > > > > > wrote:
> >> > > > > >
> >> > > > > > > Hi David,
> >> > > > > > > I like the idea, it will solve the problem we've seen a
> >> couple of
> >> > > > > times in
> >> > > > > > > the last 2 weeks where compilation for some Scala version
> >> failed,
> >> > > it
> >> > > > > was
> >> > > > > > > probably overlooked during the PR build because of the
> >> flakiness of
> >> > > > > tests
> >> > > > > > > and the compilation failure was buried among the amount of
> >> failed
> >> > > > > tests.
> >> > > > > > >
> >> > > > > > > Regarding the type of check, I'm not sure what's best, have
> a
> >> real
> >> > > > > quick
> >> > > > > > > check or a longer one including unit tests. A full test
> suite
> >> will
> >> > > > run
> >> > > > > per
> >> > > > > > > each commit in each PR (these we have definitely more than 8
> >> per
> >> > > day)
> >> > > > > and
> >> > > > > > > this should be used to ensure changes are safe and sound.
> I'm
> >> not
> >> > > > sure
> >> > > > > if
> >> > > > > > > having unit tests run as well before the merge itself would
> >> cause
> >> > > too
> >> > > > > much
> >> > > > > > > of an extra load on the CI machines.
> >> > > > > > > We can go with `gradlew unitTest` and see if this takes too
> >> long or
> >> > > > > causes
> >> > > > > > > too many delays with the normal pipeline.
> >> > > > > > >
> >> > > > > > > Best,
> >> > > > > > >
> >> > > > > > > On Fri, Feb 9, 2024 at 4:16 PM Ismael Juma <
> m...@ismaeljuma.com
> >> >
> >> > > > wrote:
> >> > > > > > >
> >> > > > > > > > Hi David,
> >> > > > > > > >
> >> > > > > > > > I think this is a helpful thing (and something I hoped we
> >> would
> >> > > use
> >> > > > > when
> >> > > > > > > I
> >> > > > > > > > learned about it), but it does require the validation
> >> checks to
> >> > > be
> >> > > > > > > reliable
> >> > > > > > > > (or else the PR won't be merged). Sounds like you are
> >> suggesting
> >> > > to
> >> > > > > skip
> >> > > > > > > > the tests for the merge queue validation. Could we perhaps
> >> > > include
> >> > > > > the
> >> > > > > > > unit
> >> > > > > > > > tests as well? That would incentivize us to ensure the
> unit
> >> tests
> >> > > > are
> >> > > > > > > fast
> >> > > > > > > > and reliable. Getting the integration tests to the same
> >> state
> >> > > will
> >> > > > > be a
> >> > > > > > > > longer journey.
> >> > > > > > > >
> >> > > > > > > > Ismael
> >> > > > > > > >
> >> > > > > > > > On Fri, Feb 9, 2024 at 7:04 AM David Arthur <
> >> mum...@gmail.com>
> >> > > > > wrote:
> >> > > > > > > >
> >> > > > > > > > > Hey folks,
> >> > > > > > > > >
> >> > > > > > > > > I recently learned about Github's Merge Queue feature,
> >> and I
> >> > > > think
> >> > > > > it
> >> > > > > > > > could
> >> > > > > > > > > help us out.
> >> > > > > > > > >
> >> > > > > > > > > Essentially, when you hit the Merge button on a PR, it
> >> will add
> >> > > > > the PR
> >> > > > > > > > to a
> >> > > > > > > > > queue and let you run a CI job before merging. Just
> >> something
> >> > > > > simple
> >> > > > > > > like
> >> > > > > > > > > compile + static analysis would probably save us from a
> >> lot of
> >> > > > > > > headaches
> >> > > > > > > > on
> >> > > > > > > > > trunk.
> >> > > > > > > > >
> >> > > > > > > > > I can think of two situations this would help us avoid:
> >> > > > > > > > > * Two valid PRs are merged near one another, but they
> >> create a
> >> > > > code
> >> > > > > > > > > breakage (rare)
> >> > > > > > > > > * A quick little "fixup" commit on a PR actually breaks
> >> > > something
> >> > > > > (less
> >> > > > > > > > > rare)
> >> > > > > > > > >
> >> > > > > > > > > Looking at our Github stats, we are averaging under 40
> >> commits
> >> > > > per
> >> > > > > > > week.
> >> > > > > > > > > Assuming those primarily come in on weekdays, that's 8
> >> commits
> >> > > > per
> >> > > > > day.
> >> > > > > > > > If
> >> > > > > > > > > we just run "gradlew check -x tests" for the merge queue
> >> job, I
> >> > > > > don't
> >> > > > > > > > think
> >> > > > > > > > > we'd get backlogged.
> >> > > > > > > > >
> >> > > > > > > > > Thoughts?
> >> > > > > > > > > David
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > --
> >> > > > > > > > > David Arthur
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > --
> >> > > > > > > [image: Aiven] <https://www.aiven.io>
> >> > > > > > >
> >> > > > > > > *Josep Prat*
> >> > > > > > > Open Source Engineering Director, *Aiven*
> >> > > > > > > josep.p...@aiven.io   |   +491715557497
> >> > > > > > > aiven.io <https://www.aiven.io>   |   <
> >> > > > > https://www.facebook.com/aivencloud
> >> > > > > > > >
> >> > > > > > >   <https://www.linkedin.com/company/aiven/>   <
> >> > > > > > > https://twitter.com/aiven_io>
> >> > > > > > > *Aiven Deutschland GmbH*
> >> > > > > > > Alexanderufer 3-7, 10117 Berlin
> >> > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen
> >> > > > > > > Amtsgericht Charlottenburg, HRB 209739 B
> >> > > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > --
> >> > > > > > David Arthur
> >> > > > >
> >> > > >
> >> > >
> >> > >
> >> > > --
> >> > > [image: Aiven] <https://www.aiven.io>
> >> > >
> >> > > *Josep Prat*
> >> > > Open Source Engineering Director, *Aiven*
> >> > > josep.p...@aiven.io   |   +491715557497
> >> > > aiven.io <https://www.aiven.io>   |   <
> >> https://www.facebook.com/aivencloud
> >> > > >
> >> > >   <https://www.linkedin.com/company/aiven/>   <
> >> > > https://twitter.com/aiven_io>
> >> > > *Aiven Deutschland GmbH*
> >> > > Alexanderufer 3-7, 10117 Berlin
> >> > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen
> >> > > Amtsgericht Charlottenburg, HRB 209739 B
> >> > >
> >>
> >
>


-- 
David Arthur

Reply via email to