The question is what would such tool offer on top of over a Github’s view of PR sorted by “least recently updated”:
https://github.com/apache/flink/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc <https://github.com/apache/flink/pulls?q=is:pr+is:open+sort:updated-asc> ? Maybe it would be good enough to have a policy about waiting x months/weeks for a contributor to respond. If he doesn’t, we either take over PR we or close it. Having “clean” view of oldest PRs would be beneficial for reviewing PRs in ~FIFO order as part of community work. Having > On 16 May 2018, at 10:57, Fabian Hueske <fhue...@gmail.com> wrote: > > Hi, > > I'm not objecting closing stale PRs. > We have quite a few PRs with very little chance of being merged and I would > certainly appreciate cleaning up those. > However, I think we should not automate closing PRs for the reasons I gave > before. > > A tool that reminds us of state PRs as proposed by Till seems like a good > idea and might actually help to re-adjust priorities from time to time. > > @Yazdan: Right now there is no assignment happening. Committers decide > which PRs they want to review and merge. > > Best, Fabian > > 2018-05-16 4:26 GMT+02:00 Yaz Sh <yazda...@gmail.com>: > >> I have questions in this regard (you guys might have addressed it in this >> email chain): >> how PRs get assigned to a reviewer apart of a contributor tag someone? >> what if PR never gets a reviewer attention and it became in-active due to >> long review respond? should Bot assign a reviewer to a PR based on >> reviewers interest (i.e., defined via tags) and notify he/she if PR is >> waiting for review? >> >> >> Cheers, >> /Yazdan >> >> >>> On May 15, 2018, at 12:06 PM, Thomas Weise <t...@apache.org> wrote: >>> >>> I like Till's proposal to notify the participants on the PR to PTAL. But >> I >>> would also suggest to auto-close when no action is taken, with a friendly >>> reminder that PRs can be reopened anytime. >>> >>> The current situation with 350 open PRs may send a signal to contributors >>> that it may actually be too much hassle to get a change committed in >> Flink. >>> Since the count keeps on rising, this is also not a past problem. Pruning >>> inactive PRs may help, that will also give a more accurate picture of the >>> lack of review bandwidth, if that is the root cause. >>> >>> Thanks, >>> Thomas >>> >>> >>> >>> >>> >>> On Tue, May 15, 2018 at 8:24 AM, Ted Yu <yuzhih...@gmail.com> wrote: >>> >>>> How does the bot decide whether the PR is waiting for reviews or is >> being >>>> abandoned by contributor ? >>>> >>>> How about letting the bot count the number of times contributor pings >>>> committer(s) for review ? >>>> When unanswered ping count crosses some threshold, say 3, the bot >> publishes >>>> the JIRA and PR somewhere. >>>> >>>> Cheers >>>> >>>> On Tue, May 15, 2018 at 8:19 AM, Till Rohrmann <trohrm...@apache.org> >>>> wrote: >>>> >>>>> I'm a bit torn here because I can see the pros and cons for both sides. >>>>> >>>>> Maybe a compromise could be to not have a closing but a monitoring bot >>>>> which notifies us about inactive PRs. This could then trigger an >>>>> investigation of the underlying problem and ultimately lead to a >>>> conscious >>>>> decision to close or keep the PR open. As such it is not strictly >>>> necessary >>>>> to have such a bot but it would at least remind us to make a decision >>>> about >>>>> older PRs with no activity. >>>>> >>>>> Cheers, >>>>> Till >>>>> >>>>> On Tue, May 15, 2018 at 3:26 PM, Chesnay Schepler <ches...@apache.org> >>>>> wrote: >>>>> >>>>>> /So far I did it twice for older PRs. In both cases I didn’t get any >>>>>> response and I even forgot in which PRs I had asked this question, so >>>>> now I >>>>>> can not even close them :S/ >>>>>> >>>>>> To be honest this sounds more like an issue with how your organize >> your >>>>>> work. No amount of closing PRs can fix that. >>>>>> With GitBox we can assign reviewers to a PR, but I'm not sure whether >>>> it >>>>>> only allows committers to assign people. >>>>>> Bookmarks or text files might help as well./ >>>>>> / >>>>>> >>>>>> /Regarding only 30% blocked on contributor. I wonder what would be >> this >>>>>> number if we tried to ask in the rest of old PRs “Hey, are you still >>>>>> interested in reviewing/merging this?”. If old PR is waiting for a >>>>>> reviewer for X months, it doesn’t mean that’s not abandoned. Even if >> it >>>>>> doesn’t, reducing our overhead by those 30% of the PRs is something./ >>>>>> >>>>>> No doubt the number would be higher if we were to go back, but as i >>>>>> explained earlier that is not a reason to close it. If a PR is >>>> abandoned >>>>>> because we messed up we should still /try /to get it in. >>>>>> >>>>>> /This is kind of whole point of what I was proposing. If the PR author >>>> is >>>>>> still there, and can respond/bump/interrupt the closing timeout, >> that’s >>>>>> great. Gives us even more sense of urgency to review it./ >>>>>> >>>>>> Unfortunately knowing that it is more urgent is irrelevant, as we >>>>>> currently don't have the manpower to review them. Reviving them now >>>> would >>>>>> serve no purpose. The alternative is to wait until more people become >>>>>> active reviewers. >>>>>> >>>>>> /As a last resort, closing PR after timeout is not the end of the >>>> world. >>>>>> It always can be reopened./ >>>>>> >>>>>> Let's be realistic here, it will not be reopened. >>>>>> >>>>>> >>>>>> On 15.05.2018 14:21, Piotr Nowojski wrote: >>>>>> >>>>>>> I agree that we have other, even more important, problems with >>>> reviewing >>>>>>> PR and community, but that shouldn’t block us from trying to clean up >>>>>>> things a little bit and minimise the effort needed for reviewing PRs. >>>>> Now >>>>>>> before reviewing/picking older PRs I had to ask this “Hey, are you >>>> still >>>>>>> interested in merging this?” manually and wait for the response. If >> it >>>>>>> doesn’t come, I have to remember to go back and close PR, which I of >>>>> course >>>>>>> forget to do. Bah, so far I did it twice for older PRs. In both cases >>>> I >>>>>>> didn’t get any response and I even forgot in which PRs I had asked >>>> this >>>>>>> question, so now I can not even close them :S Wasted effort and >> wasted >>>>> time >>>>>>> on context switching for me and for everyone else that will have to >>>>> scroll >>>>>>> pass or look on those PR to check their status. >>>>>>> >>>>>>> Keep in mind that I am not proposing to close the PR automatically >>>>>>> straight on after 3 months of inactivity. Only after asking a >> question >>>>>>> whether original contributor is still there and he is interested in >>>> the >>>>> PR >>>>>>> to be reviewed. >>>>>>> >>>>>>> for Flink 1.5, I merged a contribution from PR #1990 after it was >>>>>>>> requested a few times by users. >>>>>>>> >>>>>>> This is kind of whole point of what I was proposing. If the PR author >>>> is >>>>>>> still there, and can respond/bump/interrupt the closing timeout, >>>> that’s >>>>>>> great. Gives us even more sense of urgency to review it. On the other >>>>> hand >>>>>>> if there is no response (no interest from the author for whatever the >>>>>>> reasons) and nobody so far has picked this PR to review/merge, what’s >>>>> the >>>>>>> point of keeping such PR open? As a last resort, closing PR after >>>>> timeout >>>>>>> is not the end of the world. It always can be reopened. >>>>>>> >>>>>>> Regarding only 30% blocked on contributor. I wonder what would be >> this >>>>>>> number if we tried to ask in the rest of old PRs “Hey, are you still >>>>>>> interested in reviewing/merging this?”. If old PR is waiting for a >>>>> reviewer >>>>>>> for X months, it doesn’t mean that’s not abandoned. Even if it >>>> doesn’t, >>>>>>> reducing our overhead by those 30% of the PRs is something. >>>>>>> >>>>>>> Piotrek >>>>>>> >>>>>>> On 15 May 2018, at 10:10, Fabian Hueske <fhue...@gmail.com> wrote: >>>>>>>> >>>>>>>> I'm with Chesnay on this issue. >>>>>>>> Stale PRs, i.e., a PR where a contributor becomes inactive, are one >>>> of >>>>>>>> our >>>>>>>> smallest issues, IMO. >>>>>>>> >>>>>>>> There are more reasons for the high number of PRs. >>>>>>>> * Lack of timely reviews. >>>>>>>> * Not eagerly closing PRs that have no or very little chance of >> being >>>>>>>> merged. Common reasons are >>>>>>>> 1) lack of interest in the feature by committers, >>>>>>>> 2) too extensive changes and hence time consuming reviews, or >>>>>>>> 3) bad quality. >>>>>>>> >>>>>>>> For 1), there are lots of older JIRA issues, that have low priority >>>> but >>>>>>>> which are picked up by contributors. In the contribution guidelines >>>> we >>>>>>>> ask >>>>>>>> contributors to let us know when they want to work on an issue. So >>>> far >>>>>>>> our >>>>>>>> attitude has been, yes sure go ahead. I've seen very little attempts >>>> of >>>>>>>> warning somebody to work on issues that won't be easily merged. >>>>>>>> Once a PR has been opened, we should also be honest and let >>>>> contributors >>>>>>>> know that it has no chance or might take a while to get reviewed. >>>>>>>> For 2) this is typically not so much of an issue if the feature is >>>>>>>> interesting. However, if 1) and 2) meet, chances to get a change in >>>>> drop >>>>>>>> even more. >>>>>>>> >>>>>>>> A common "strategy" to deal with PRs that fall into 1), 2), or 3) is >>>> to >>>>>>>> not >>>>>>>> look at them or giving a shallow review. >>>>>>>> Of course, contributors become unresponsive if we don't look at >> their >>>>> PRs >>>>>>>> for weeks or months. But that's not their fault. >>>>>>>> Instead, I think we should be honest and communicate the chances of >> a >>>>> PR >>>>>>>> more clearly. >>>>>>>> >>>>>>>> Browsing over the list of open PRs, I feel that most older PRs fall >>>>> into >>>>>>>> the category of low-priority (or even unwanted) features. >>>>>>>> Bug fixes or features that the committers care about usually make it >>>>> into >>>>>>>> the code base. >>>>>>>> In case a contributor becomes inactive, committers often take over >> an >>>>>>>> push >>>>>>>> a contribution over the line. >>>>>>>> >>>>>>>> So, I do not support an auto-close mechanism. >>>>>>>> I think a better way to address the issue is better communication, >>>> more >>>>>>>> eagerly closing PRs with no chance, and putting more reviewing >>>> effort. >>>>>>>> IMO, we should only eagerly close PRs that have no chance of being >>>>>>>> merged. >>>>>>>> PRs with low-prio features might be picked up later (for Flink 1.5, >> I >>>>>>>> merged a contribution from PR #1990 after it was requested a few >>>> times >>>>> by >>>>>>>> users). >>>>>>>> >>>>>>>> However, I think we could do a pass over the oldest PRs and check if >>>> we >>>>>>>> can >>>>>>>> close a bunch. >>>>>>>> There are quite a few contributions (many for flink-ml) that I don't >>>>> see >>>>>>>> a >>>>>>>> chance for getting merged. >>>>>>>> >>>>>>>> Best, Fabian >>>>>>>> >>>>>>>> >>>>>>>> - >>>>>>>> >>>>>>>> 2018-05-15 9:13 GMT+02:00 Chesnay Schepler <ches...@apache.org>: >>>>>>>> >>>>>>>> -1 >>>>>>>>> >>>>>>>>> For clarification (since the original mail indicates otherwise), >> the >>>>>>>>> number of pull requests that this would affect is fairly small. >>>>>>>>> Only about 25-30% of all open PRs are blocked on the contributor, >>>> the >>>>>>>>> remaining ones are actually blocked on the review. >>>>>>>>> Thus is reject the premise that one has to search through that many >>>>> PRs >>>>>>>>> to >>>>>>>>> find something to review, there is plenty. >>>>>>>>> >>>>>>>>> I believe it to be highly unfair for us to close PRs due to >>>>> inactivity, >>>>>>>>> when the primary cause has been /our /own inactivity. >>>>>>>>> If a PR is opened and the first comment comes in 3 months late, >>>> then I >>>>>>>>> don't blame the contributor for not responding. >>>>>>>>> IMO we owe it to the contributor to evaluate their PR, and if >>>>> necessary >>>>>>>>> bring it to a merge-able state (to a certain extend). >>>>>>>>> >>>>>>>>> There's also the fact that closing these PRs outright would waste a >>>>> lot >>>>>>>>> of >>>>>>>>> good contributions. >>>>>>>>> >>>>>>>>> Finally, this solution is overkill for what we want to achieve. If >>>> we >>>>>>>>> want >>>>>>>>> to make it easier to find PRs to review all we need is >>>>>>>>> GitBox integration and tagging or PRs. That's it. We could have a >>>>> /fully >>>>>>>>> /tagged PR list /tomorrow/, if we really wanted to. >>>>>>>>> >>>>>>>>> >>>>>>>>> On 15.05.2018 05:10, Ted Yu wrote: >>>>>>>>> >>>>>>>>> bq. this pull request requires a review, please simply write any >>>>>>>>>> comment. >>>>>>>>>> >>>>>>>>>> Shouldn't the wording of such comment be known before hand ? >>>>>>>>>> >>>>>>>>>> Otherwise pull request waiting for committers' review may be >>>>>>>>>> mis-classified. >>>>>>>>>> >>>>>>>>>> Cheers >>>>>>>>>> >>>>>>>>>> On Mon, May 14, 2018 at 7:59 PM, blues zheng <kisim...@163.com> >>>>> wrote: >>>>>>>>>> >>>>>>>>>> +1 for the proposal. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Best, >>>>>>>>>>> blues >>>>>>>>>>> On 05/14/2018 20:58, Ufuk Celebi wrote: >>>>>>>>>>> Hey Piotr, >>>>>>>>>>> >>>>>>>>>>> thanks for bringing this up. I really like this proposal and also >>>>> saw >>>>>>>>>>> it work successfully at other projects. So +1 from my side. >>>>>>>>>>> >>>>>>>>>>> - I like the approach with a notification one week before >>>>>>>>>>> automatically closing the PR >>>>>>>>>>> - I think a bot will the best option as these kinds of things are >>>>>>>>>>> usually followed enthusiastically in the beginning but eventually >>>>>>>>>>> loose traction >>>>>>>>>>> >>>>>>>>>>> We can enable better integration with GitHub by using ASF GitBox >>>>>>>>>>> (https://gitbox.apache.org/setup/) but we should discuss that in >>>> a >>>>>>>>>>> separate thread. >>>>>>>>>>> >>>>>>>>>>> – Ufuk >>>>>>>>>>> >>>>>>>>>>> On Mon, May 14, 2018 at 12:04 PM, Piotr Nowojski >>>>>>>>>>> <pi...@data-artisans.com> wrote: >>>>>>>>>>> >>>>>>>>>>> Hey, >>>>>>>>>>>> >>>>>>>>>>>> We have lots of open pull requests and quite some of them are >>>>>>>>>>>> >>>>>>>>>>>> stale/abandoned/inactive. Often such old PRs are impossible to >>>>> merge >>>>>>>>>>> due >>>>>>>>>>> to >>>>>>>>>>> conflicts and it’s easier to just abandon and rewrite them. >>>>> Especially >>>>>>>>>>> there are some PRs which original contributor created long time >>>> ago, >>>>>>>>>>> someone else wrote some comments/review and… that’s about it. >>>>> Original >>>>>>>>>>> contributor never shown up again to respond to the comments. >>>>>>>>>>> Regardless >>>>>>>>>>> of >>>>>>>>>>> the reason such PRs are clogging the GitHub, making it difficult >>>> to >>>>>>>>>>> keep >>>>>>>>>>> track of things and making it almost impossible to find a little >>>> bit >>>>>>>>>>> old >>>>>>>>>>> (for example 3+ months) PRs that are still valid and waiting for >>>>>>>>>>> reviews. >>>>>>>>>>> To do something like that, one would have to dig through tens or >>>>>>>>>>> hundreds >>>>>>>>>>> of abandoned PRs. >>>>>>>>>>> >>>>>>>>>>> What I would like to propose is to agree on some inactivity dead >>>>> line, >>>>>>>>>>>> >>>>>>>>>>>> lets say 3 months. After crossing such deadline, PRs should be >>>>>>>>>>> marked/commented as “stale”, with information like: >>>>>>>>>>> >>>>>>>>>>> “This pull request has been marked as stale due to 3 months of >>>>>>>>>>>> >>>>>>>>>>>> inactivity. It will be closed in 1 week if no further activity >>>>>>>>>>> occurs. If >>>>>>>>>>> you think that’s incorrect or this pull request requires a >> review, >>>>>>>>>>> please >>>>>>>>>>> simply write any comment.” >>>>>>>>>>> >>>>>>>>>>> Either we could just agree on such policy and enforce it manually >>>>>>>>>>>> (maybe >>>>>>>>>>>> >>>>>>>>>>>> with some simple tooling, like a simple script to list inactive >>>>> PRs - >>>>>>>>>>> seems >>>>>>>>>>> like couple of lines in python by using PyGithub) or we could >>>> think >>>>>>>>>>> about >>>>>>>>>>> automating this action. There are some bots that do exactly this >>>>> (like >>>>>>>>>>> this >>>>>>>>>>> one: https://github.com/probot/stale <https://github.com/probot/ >>>>> stale >>>>>>>>>>>> >>>>>>>>>>> ), >>>>>>>>>>> but probably they would need to be adopted to limitations of our >>>>>>>>>>> Apache >>>>>>>>>>> repository (we can not add labels and we can not close the PRs >> via >>>>>>>>>>> GitHub). >>>>>>>>>>> >>>>>>>>>>> What do you think about it? >>>>>>>>>>>> >>>>>>>>>>>> Piotrek >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> >>