Hi folks, I think we can split of the discussion of a PR meeting.
Are there any more comments on the proposal itself? Otherwise, I would go ahead and put the described process (modulo the comments) into a document for our website. Cheers, Fabian 2015-10-07 16:57 GMT+02:00 Fabian Hueske <fhue...@gmail.com>: > I like the idea of meeting once a week to discuss about PRs as well. > > Regarding lingering PRs, you can simply sort the Flink PRs in Github by > "least recently updated" > > Cheers, > Fabian > > 2015-10-07 16:48 GMT+02:00 Theodore Vasiloudis < > theodoros.vasilou...@gmail.com>: > >> > >> > Could we maybe do a "PR overall status assessment" once per week or so, >> > where we find those problematic PRs and try to assign them / close them? >> >> >> I like this idea, as it would raise awareness about lingering PRs. Does >> anybody know if there is >> some way to integrate this into JIRA, so we can easily see (and >> filter/sort) lingering PRs? >> >> Cheers, >> Theo >> >> On Wed, Oct 7, 2015 at 12:04 PM, Vasiliki Kalavri < >> vasilikikala...@gmail.com >> > wrote: >> >> > Hey, >> > >> > I agree that we need to organize the PR process. A PR management tool >> would >> > be great. >> > >> > However, it seems to me that the shepherding process described is -more >> or >> > less- what we've already been doing. There is usually a person that >> reviews >> > the PR and kind-of drives the process. Maybe making this explicit will >> make >> > things go faster. >> > >> > There is a problem I see here, quite related to what Theo also >> mentioned. >> > For how long do we let a PR lingering around without a shepherd? What >> do we >> > do if nobody volunteers? >> > Could we maybe do a "PR overall status assessment" once per week or so, >> > where we find those problematic PRs and try to assign them / close them? >> > >> > Finally, I think shepherding one's own PR is a bad idea (the review >> part) >> > unless it's something trivial. >> > >> > Cheers and see you very soon, >> > -Vasia. >> > On Oct 7, 2015 11:24 AM, "Matthias J. Sax" <mj...@apache.org> wrote: >> > >> > > Ok. That makes sense. So most people will need to change behavior and >> > > start discussions in JIRA and not over dev list. Furthermore, issues >> > > list must be monitored more carefully... (I personally, watch dev >> > > carefully and only skip over issues list right now) >> > > >> > > -Matthias >> > > >> > > On 10/07/2015 10:22 AM, Fabian Hueske wrote: >> > > > @Matthias: That's a good point. Each PR should be backed by a JIRA >> > issue. >> > > > If that's not the case, we have to make the contributor aware of >> that >> > > rule. >> > > > I'll update the process to keep all discussions in JIRA (will be >> > mirrored >> > > > to issues ML), OK? >> > > > >> > > > @Theo: You are right. Adding this process won't be the silver >> bullet to >> > > fix >> > > > all PR related issues. >> > > > But I hope it will help to improve the overall situation. >> > > > >> > > > Are there any other comment? Otherwise I would start to prepare add >> > this >> > > to >> > > > our website. >> > > > >> > > > Thanks, Fabian >> > > > >> > > > 2015-10-06 9:46 GMT+02:00 Theodore Vasiloudis < >> > > > theodoros.vasilou...@gmail.com>: >> > > > >> > > >> One problem that we are seeing with FlinkML PRs is that there are >> > simply >> > > >> not enough commiters to "shepherd" all of them. >> > > >> >> > > >> While I think this process would help generally, I don't think it >> > would >> > > >> solve this kind of problem. >> > > >> >> > > >> Regards, >> > > >> Theodore >> > > >> >> > > >> On Mon, Oct 5, 2015 at 3:28 PM, Matthias J. Sax <mj...@apache.org> >> > > wrote: >> > > >> >> > > >>> One comment: >> > > >>> We should ensure that contributors follow discussions on the dev >> > > mailing >> > > >>> list. Otherwise, they might miss important discussions regarding >> > their >> > > >>> PR (what happened already). Thus, the contributor was waiting for >> > > >>> feedback on the PR, while the reviewer(s) waited for the PR to be >> > > >>> updated according to the discussion consensus, resulting in >> > unnecessary >> > > >>> delays. >> > > >>> >> > > >>> -Matthias >> > > >>> >> > > >>> >> > > >>> >> > > >>> On 10/05/2015 02:18 PM, Fabian Hueske wrote: >> > > >>>> Hi everybody, >> > > >>>> >> > > >>>> Along with our efforts to improve the “How to contribute” guide, >> I >> > > >> would >> > > >>>> like to start a discussion about a setting up a review process >> for >> > > pull >> > > >>>> requests. >> > > >>>> >> > > >>>> Right now, I feel that our PR review efforts are often a bit >> > > >> unorganized. >> > > >>>> This leads to situation such as: >> > > >>>> >> > > >>>> - PRs which are lingering around without review or feedback >> > > >>>> - PRs which got a +1 for merging but which did not get merged >> > > >>>> - PRs which have been rejected after a long time >> > > >>>> - PRs which became irrelevant because some component was >> rewritten >> > > >>>> - PRs which are lingering around and have been abandoned by their >> > > >>>> contributors >> > > >>>> >> > > >>>> To address these issues I propose to define a pull request review >> > > >> process >> > > >>>> as follows: >> > > >>>> >> > > >>>> 1. [Get a Shepherd] Each pull request is taken care of by a >> > shepherd. >> > > >>>> Shepherds are committers that voluntarily sign up and *feel >> > > >> responsible* >> > > >>>> for helping the PR through the process until it is merged (or >> > > >> discarded). >> > > >>>> The shepherd is also the person to contact for the author of the >> > PR. A >> > > >>>> committer becomes the shepherd of a PR by dropping a comment on >> > Github >> > > >>> like >> > > >>>> “I would like to shepherd this PR”. A PR can be reassigned with >> lazy >> > > >>>> consensus. >> > > >>>> >> > > >>>> 2. [Accept Decision] The first decision for a PR should be >> whether >> > it >> > > >> is >> > > >>>> accepted or not. This depends on a) whether it is a desired >> feature >> > or >> > > >>>> improvement for Flink and b) whether the higher-level solution >> > design >> > > >> is >> > > >>>> appropriate. In many cases such as bug fixes or discussed >> features >> > or >> > > >>>> improvements, this should be an easy decision. In case of more a >> > > >> complex >> > > >>>> feature, the discussion should have been started when the >> mandatory >> > > >> JIRA >> > > >>>> was created. If it is still not clear whether the PR should be >> > > accepted >> > > >>> or >> > > >>>> not, a discussion should be started in JIRA (a JIRA issue needs >> to >> > be >> > > >>>> created if none exists). The acceptance decision should be >> recorded >> > by >> > > >> a >> > > >>>> “+1 to accept” message in Github. If the PR is not accepted, it >> > should >> > > >> be >> > > >>>> closed in a timely manner. >> > > >>>> >> > > >>>> 3. [Merge Decision] Once a PR has been “accepted”, it should be >> > > brought >> > > >>>> into a mergeable state. This means the community should quickly >> > react >> > > >> on >> > > >>>> contributor questions or PR updates. Everybody is encouraged to >> > review >> > > >>> pull >> > > >>>> requests and give feedback. Ideally, the PR author does not have >> to >> > > >> wait >> > > >>>> for a long time to get feedback. The shepherd of a PR should feel >> > > >>>> responsible to drive this process forward. Once the PR is >> considered >> > > to >> > > >>> be >> > > >>>> mergeable, this should be recorded by a “+1 to merge” message in >> > > >> Github. >> > > >>> If >> > > >>>> the pull request becomes abandoned at some point in time, it >> should >> > be >> > > >>>> either taken over by somebody else or be closed after a >> reasonable >> > > >> time. >> > > >>>> Again, this can be done by anybody, but the shepherd should feel >> > > >>>> responsible to resolve the issue. >> > > >>>> >> > > >>>> 4. Once, the PR is in a mergeable state, it should be merged. >> This >> > can >> > > >> be >> > > >>>> done by anybody, however the shepherd should make sure that it >> > happens >> > > >>> in a >> > > >>>> timely manner. >> > > >>>> >> > > >>>> IMPORTANT: Everybody is encouraged to discuss pull requests, give >> > > >>> feedback, >> > > >>>> and merge pull requests which are in a good shape. However, the >> > > >> shepherd >> > > >>>> should feel responsible to drive a PR forward if nothing happens. >> > > >>>> >> > > >>>> By defining a review process for pull requests, I hope we can >> > > >>>> >> > > >>>> - Improve the satisfaction of and interaction with contributors >> > > >>>> - Improve and speed-up the review process of pull requests. >> > > >>>> - Close irrelevant and stale PRs more timely >> > > >>>> - Reduce the effort for code reviewing >> > > >>>> >> > > >>>> The review process can be supported by some tooling: >> > > >>>> >> > > >>>> - A QA bot that checks the quality of pull requests such as >> increase >> > > of >> > > >>>> compiler warnings, code style, API changes, etc. >> > > >>>> - A PR management tool such as Sparks PR dashboard (see: >> > > >>>> https://spark-prs.appspot.com/) >> > > >>>> >> > > >>>> I would like to start discussions about using such tools later as >> > > >>> separate >> > > >>>> discussions. >> > > >>>> >> > > >>>> Looking forward to your feedback, >> > > >>>> Fabian >> > > >>>> >> > > >>> >> > > >>> >> > > >> >> > > > >> > > >> > > >> > >> > >