Hey folks, I wanted to revive this old thread. I'd like to do the following:
* Change our stale workflow to start with the oldest PRs and move forward * Enable closing of stale PRs (over 120 days) Here's a patch with these changes: https://github.com/apache/kafka/pull/17166 Docs for actions/stale: https://github.com/actions/stale Cheers, David A On Sat, Jun 10, 2023 at 2:53 AM David Jacot <david.ja...@gmail.com> wrote: > Thanks, David. I left a few comments in the PR. > > -David > > Le ven. 9 juin 2023 à 15:31, David Arthur <david.art...@confluent.io > .invalid> > a écrit : > > > Hey all, I just wanted to bump this one more time before I merge this PR > > (thanks for the review, Josep!). I'll merge it at the end of the day > today > > unless anyone has more feedback. > > > > Thanks! > > David > > > > On Wed, Jun 7, 2023 at 8:50 PM David Arthur <mum...@gmail.com> wrote: > > > > > I filed KAFKA-15073 for this. Here is a patch > > > https://github.com/apache/kafka/pull/13827. This simply adds a "stale" > > > label to PRs with no activity in the last 90 days. I figure that's a > good > > > starting point. > > > > > > As for developer workflow, the "stale" action is quite flexible in how > it > > > finds candidate PRs to mark as stale. For example, we can exclude PRs > > that > > > have an Assignee, or a particular set of labels. Docs are here > > > https://github.com/actions/stale > > > > > > -David > > > > > > > > > On Wed, Jun 7, 2023 at 2:36 PM Josep Prat <josep.p...@aiven.io.invalid > > > > > wrote: > > > > > > > Thanks David! > > > > > > > > ——— > > > > Josep Prat > > > > > > > > Aiven Deutschland GmbH > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > m: +491715557497 > > > > > > > > w: aiven.io > > > > > > > > e: josep.p...@aiven.io > > > > > > > > On Wed, Jun 7, 2023, 20:28 David Arthur <david.art...@confluent.io > > > > .invalid> > > > > wrote: > > > > > > > > > Hey all, I started poking around at Github actions on my fork. > > > > > > > > > > https://github.com/mumrah/kafka/actions > > > > > > > > > > I'll post a PR if I get it working and we can discuss what kind of > > > > settings > > > > > we want (or if we want it all) > > > > > > > > > > -David > > > > > > > > > > On Tue, Jun 6, 2023 at 1:18 PM Chris Egerton > <chr...@aiven.io.invalid > > > > > > > > wrote: > > > > > > > > > > > Hi Josep, > > > > > > > > > > > > Thanks for bringing this up! Will try to keep things brief. > > > > > > > > > > > > I'm generally in favor of this initiative. A couple ideas that I > > > really > > > > > > liked: requiring a component label (producer, consumer, connect, > > > > streams, > > > > > > etc.) before closing, and disabling auto-close (i.e., > automatically > > > > > tagging > > > > > > PRs as stale, but leaving it to a human being to actually close > > > them). > > > > > > > > > > > > We might replace the "stale" label with a "close-by-<date>" label > > so > > > > that > > > > > > it becomes even easier for us to find the PRs that are ready to > be > > > > closed > > > > > > (as opposed to the ones that have just been labeled as stale > > without > > > > > giving > > > > > > the contributor enough time to respond). > > > > > > > > > > > > I've also gone ahead and closed some of my stale PRs. Others I've > > > > > > downgraded to draft to signal that I'd like to continue to pursue > > > them, > > > > > but > > > > > > have to iron out merge conflicts first. For the last ones, I'll > > ping > > > > for > > > > > > review. > > > > > > > > > > > > One question that came to mind--do we want to distinguish between > > > > regular > > > > > > and draft PRs? I'm guessing not, since they still add up to the > > total > > > > PR > > > > > > count against the project, but since they do also implicitly > signal > > > > that > > > > > > they're not intended for review (yet) it may be friendlier to > leave > > > > them > > > > > > up. > > > > > > > > > > > > Cheers, > > > > > > > > > > > > Chris > > > > > > > > > > > > On Tue, Jun 6, 2023 at 10:18 AM Mickael Maison < > > > > mickael.mai...@gmail.com > > > > > > > > > > > > wrote: > > > > > > > > > > > > > Hi Josep, > > > > > > > > > > > > > > Thanks for looking into this. This is clearly one aspect where > we > > > > need > > > > > > > to improve. > > > > > > > > > > > > > > We had a similar initiative last year > > > > > > > ( > > https://lists.apache.org/thread/66yj9m6tcyz8zqb3lqlbnr386bqwsopt) > > > > and > > > > > > > we closed many PRs. Unfortunately we did not follow up with a > > > process > > > > > > > or automation and we are back to the same situation. > > > > > > > > > > > > > > Manually reviewing all these PRs is a huge task, so I think we > > > should > > > > > > > at least partially automate it. I'm not sure if we should > > manually > > > > > > > review the oldest PRs (pre 2020). There's surely many > interesting > > > > > > > things but I wonder if we should instead focus on the more > recent > > > > ones > > > > > > > as they have a higher chance of 1) still making sense, 2) > getting > > > > > > > updates from their authors, 3) needing less rebasing. If > > something > > > > has > > > > > > > been broken since 2016 but we never bothered to fix the PR it > > means > > > > it > > > > > > > can't be anything critical! > > > > > > > > > > > > > > Finally as Colin mentioned, it looks like a non negligible > chunk > > of > > > > > > > stale PRs comes from committers and regular contributors. So > I'd > > > > > > > suggest we each try to clean our own backlog too. > > > > > > > > > > > > > > I wonder if we also need to do something in JIRA. Querying for > > > > > > > unresolved tickets returns over 4000 items. Considering we're > not > > > > > > > quite at KAFKA-15000 yet, that's a lot. > > > > > > > > > > > > > > Thanks, > > > > > > > Mickael > > > > > > > > > > > > > > > > > > > > > On Tue, Jun 6, 2023 at 11:35 AM Josep Prat > > > > <josep.p...@aiven.io.invalid > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > Hi Devs, > > > > > > > > I would say we can split the problem in 2. > > > > > > > > > > > > > > > > Waiting for Author feedback: > > > > > > > > We could have a bot that would ping authors for the cases > where > > > we > > > > > have > > > > > > > PRs > > > > > > > > that are stalled and have either: > > > > > > > > - Merge conflict > > > > > > > > - Unaddressed reviews > > > > > > > > > > > > > > > > Waiting for reviewers: > > > > > > > > For the PRs where we have no reviewers and there are no > > > conflicts, > > > > I > > > > > > > think > > > > > > > > we would need some human interaction to determine modules > > (maybe > > > > this > > > > > > can > > > > > > > > be automated) and ping people who could review. > > > > > > > > > > > > > > > > What do you think? > > > > > > > > > > > > > > > > Best, > > > > > > > > > > > > > > > > On Tue, Jun 6, 2023 at 11:30 AM Josep Prat < > > josep.p...@aiven.io> > > > > > > wrote: > > > > > > > > > > > > > > > > > Hi Nikolay, > > > > > > > > > > > > > > > > > > With a bot it will be complicated to determine what to do > > when > > > > the > > > > > PR > > > > > > > > > author is waiting for a reviewer. If a person goes over > them, > > > can > > > > > > > check if > > > > > > > > > they are waiting for reviews and tag the PR accordingly and > > > maybe > > > > > > ping > > > > > > > a > > > > > > > > > maintainer. > > > > > > > > > If you look at my last email I described a flow (but AFAIU > it > > > > will > > > > > > work > > > > > > > > > only if a human executes it) where the situation you point > > out > > > > > would > > > > > > be > > > > > > > > > covered. > > > > > > > > > > > > > > > > > > ——— > > > > > > > > > Josep Prat > > > > > > > > > > > > > > > > > > Aiven Deutschland GmbH > > > > > > > > > > > > > > > > > > Alexanderufer 3-7, 10117 Berlin > > > > > > > > > > > > > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > > > > > > > > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > > > > > > > > > > > > > m: +491715557497 > > > > > > > > > > > > > > > > > > w: aiven.io > > > > > > > > > > > > > > > > > > e: josep.p...@aiven.io > > > > > > > > > > > > > > > > > > On Tue, Jun 6, 2023, 11:20 Николай Ижиков < > > nizhi...@apache.org > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > >> Hello. > > > > > > > > >> > > > > > > > > >> What is actions of contributor if no feedback given? [1], > > [2] > > > > > > > > >> > > > > > > > > >> [1] https://github.com/apache/kafka/pull/13278 > > > > > > > > >> [2] https://github.com/apache/kafka/pull/13247 > > > > > > > > >> > > > > > > > > >> > 2 июня 2023 г., в 23:38, David Arthur <mum...@gmail.com > > > > > > > > > написал(а): > > > > > > > > >> > > > > > > > > > >> > I think this is a great idea. If we don’t want the > > > auto-close > > > > > > > > >> > functionality, we can set it to -1 > > > > > > > > >> > > > > > > > > > >> > I realize this isn’t a vote, but I’m +1 on this > > > > > > > > >> > > > > > > > > > >> > -David > > > > > > > > >> > > > > > > > > > >> > On Fri, Jun 2, 2023 at 15:34 Colin McCabe < > > > cmcc...@apache.org > > > > > > > > > > > > wrote: > > > > > > > > >> > > > > > > > > > >> >> That should read "30 days without activity" > > > > > > > > >> >> > > > > > > > > >> >> (I am assuming we have the ability to determine when a > PR > > > was > > > > > > last > > > > > > > > >> updated > > > > > > > > >> >> on GH) > > > > > > > > >> >> > > > > > > > > >> >> best, > > > > > > > > >> >> Colin > > > > > > > > >> >> > > > > > > > > >> >> On Fri, Jun 2, 2023, at 12:32, Colin McCabe wrote: > > > > > > > > >> >>> Hi all, > > > > > > > > >> >>> > > > > > > > > >> >>> Looking at GitHub, I have a bunch of Kafka PRs of my > own > > > > that > > > > > > I've > > > > > > > > >> >>> allowed to become stale, and I guess are pushing up > > these > > > > > > numbers! > > > > > > > > >> >>> Overall I support the goal of putting a time limit on > > PRs, > > > > > just > > > > > > so > > > > > > > > >> that > > > > > > > > >> >>> we can focus our review bandwidth. > > > > > > > > >> >>> > > > > > > > > >> >>> It may be best to start with a simple approach where > we > > > mark > > > > > PRs > > > > > > > as > > > > > > > > >> >>> stale after 30 days and email the submitter at that > > time. > > > > And > > > > > > then > > > > > > > > >> >>> delete after 60 days. (Of course the exact time > periods > > > > might > > > > > be > > > > > > > > >> >>> something gother than 30/60 but this is just an > initial > > > > > > > suggestion) > > > > > > > > >> >>> > > > > > > > > >> >>> best, > > > > > > > > >> >>> Colin > > > > > > > > >> >>> > > > > > > > > >> >>> > > > > > > > > >> >>> On Fri, Jun 2, 2023, at 00:37, Josep Prat wrote: > > > > > > > > >> >>>> Hi all, > > > > > > > > >> >>>> > > > > > > > > >> >>>> I want to say that in my experience, I always felt > > better > > > > as > > > > > a > > > > > > > > >> >> contributor > > > > > > > > >> >>>> when a person told me > > < > https://www.google.com/maps/search/%3E+%3E%3E+%3E%3E%3E%3E+when+a+person+told+me?entry=gmail&source=g > > > > something than when a bot did. That > > > > > being > > > > > > > said, > > > > > > > > >> >> I'm > > > > > > > > >> >>>> not against bots, and I think they might be a great > > > > solution > > > > > > > once we > > > > > > > > >> >> have a > > > > > > > > >> >>>> manageable number of open PRs. > > > > > > > > >> >>>> > > > > > > > > >> >>>> Another great question that adding a bot poses is > types > > > of > > > > > > > staleness > > > > > > > > >> >>>> detection. How do we distinguish between staleness > from > > > the > > > > > > > author's > > > > > > > > >> >> side > > > > > > > > >> >>>> or from the lack of reviewers/maintainers' side? > That's > > > > why I > > > > > > > started > > > > > > > > >> >> with > > > > > > > > >> >>>> a human approach to be able to distinguish between > > these > > > 2 > > > > > > cases. > > > > > > > > >> Both > > > > > > > > >> >>>> situations should have different messages and > actually > > > > > > different > > > > > > > > >> >> intended > > > > > > > > >> >>>> receivers. In case of staleness because of author > > > > inactivity, > > > > > > the > > > > > > > > >> >> message > > > > > > > > >> >>>> should encourage the author to update the PR with the > > > > > requested > > > > > > > > >> changes > > > > > > > > >> >> or > > > > > > > > >> >>>> resolve the conflicts. But In many cases, PRs are > stale > > > > > because > > > > > > > of > > > > > > > > >> lack > > > > > > > > >> >> of > > > > > > > > >> >>>> reviewers. This would need a different message, > > targeting > > > > > > > > >> maintainers. > > > > > > > > >> >>>> > > > > > > > > >> >>>> Ideally (with bot or not) I believe the process > should > > be > > > > as > > > > > > > follows: > > > > > > > > >> >>>> - Check PRs that are stale. > > > > > > > > >> >>>> - See if they have labels, if not add proper labels > > > > (connect, > > > > > > > core, > > > > > > > > >> >>>> clients...) > > > > > > > > >> >>>> - PR has merge conflicts > > > > > > > > >> >>>> -- Merge conflicts exist and target files that still > > > exist, > > > > > > ping > > > > > > > the > > > > > > > > >> >> author > > > > > > > > >> >>>> asking for conflict resolution and add some > additional > > > > label > > > > > > like > > > > > > > > >> >> `stale`. > > > > > > > > >> >>>> -- Merge conflicts exist and target files that do not > > > exist > > > > > > > anymore, > > > > > > > > >> let > > > > > > > > >> >>>> the author know that this PR is obsolete, label the > PR > > as > > > > > > > 'obsolete' > > > > > > > > >> and > > > > > > > > >> >>>> close the PR. > > > > > > > > >> >>>> - PR is mergeable, check whose action is needed > (author > > > or > > > > > > > reviewers) > > > > > > > > >> >>>> -- Author: let the author know that there are pending > > > > > comments > > > > > > to > > > > > > > > >> >> address. > > > > > > > > >> >>>> Add some additional label, maybe `stale` again > > > > > > > > >> >>>> -- Reviewer: ping some reviewers that have experience > > or > > > > > lately > > > > > > > > >> touched > > > > > > > > >> >>>> this piece of the codebase, add a label `reviewer > > needed` > > > > or > > > > > > > > >> something > > > > > > > > >> >>>> similar > > > > > > > > >> >>>> - PRs that have `stale` label after X days, will be > > > closed. > > > > > > > > >> >>>> > > > > > > > > >> >>>> Regarding the comments about only committers and > > > > > collaborators > > > > > > > being > > > > > > > > >> >> able > > > > > > > > >> >>>> to label PRs, this is true, not everyone can do this. > > > > > However, > > > > > > > this > > > > > > > > >> >> could > > > > > > > > >> >>>> be a great opportunity for the newly appointed > > > contributors > > > > > to > > > > > > > > >> exercise > > > > > > > > >> >>>> their new permissions :) > > > > > > > > >> >>>> > > > > > > > > >> >>>> Let me know if it makes sense to you all. > > > > > > > > >> >>>> > > > > > > > > >> >>>> Best, > > > > > > > > >> >> > > > > > > > > >> > -- > > > > > > > > >> > 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 > > > > > > > > > > > > > > > > > > -- > > > David Arthur > > > > > > > > > -- > > -David > > > -- David Arthur