Great work! What puzzles me a little bit, is the shepherding of PR from committers. Why should it be a different committer?
1) As a committer, you don't even need to open a PR for small code changes at all (especially, if the committer is the most experience one regard a certain component/library). Just open a JIRA, fix it, and commit. 2) It is clear, that if a PR is complex and maybe touches different components, feedback from the most experiences committer on those components should be given on the PR to ensure code quality. But the role of a shepherd is a "meta" role, if a understand the guideline correctly, and not a technical one (-> everybody should discuss, comment, accept, mark to get merged, and merge PRs). So why do we need a different shepherd there? I think, committers can drive their own PRs by themselves. -Matthias On 10/23/2015 06:00 PM, Fabian Hueske wrote: > Hi everybody, > > I created a wiki page for our Pull Request Process. [1] > Please review, refine, and comment. > > I would suggest to start following the process once 0.10 is released. > What do you think? > > Cheers, > Fabian > > [1] > https://cwiki.apache.org/confluence/display/FLINK/Pull+Request+Management > > 2015-10-19 17:53 GMT+02:00 Fabian Hueske <fhue...@gmail.com>: > >> Thanks for your feedback, Alex. >> >> Chesnay is right, we cannot modify the GH assignee field at the moment. If >> this changes at some point, I would support your proposal. >> >> Regarding the PR - JIRA rule, this has been discussed as part of the new >> contribution guidelines discussion [1]. >> I agree, it is not always easy to draw a line here. However, if in doubt I >> would go for the JIRA issue because it allows everybody to track the issue >> later, esp. if it solves a bug that other people might run into as well. >> In your concrete example, you could have referenced the original JIRA >> issue to remove Spargel from your PR. >> >> I also agree that the shepherd should not be the author of the PR. >> However, every committer can always commit to the master branch (unless >> somebody raised concerns of course). So committers should be free to commit >> their own PRs, IMO. >> >> Cheers, Fabian >> >> [1] >> http://mail-archives.apache.org/mod_mbox/flink-dev/201509.mbox/%3CCAAdrtT0RLgqJgJVrK1zH_e_7VW1k8VTv4ChnumTRh7fLGA_zmw%40mail.gmail.com%3E >> >> >> >> 2015-10-17 13:00 GMT+02:00 Alexander Alexandrov < >> alexander.s.alexand...@gmail.com>: >> >>> Also, regarding the "Each PR should be backed by a JIRA" rule - please >>> don't make this strict and consider the relative effort to opening a JIRA >>> as opposed to just opening a PR for small PRs that fix something obvious. >>> >>> For example, two days ago I opened two PRs while investigating a reported >>> JIRA bug (FLINK-2858 <https://issues.apache.org/jira/browse/FLINK-2858>): >>> >>> https://github.com/apache/flink/pull/1259 >>> https://github.com/apache/flink/pull/1260 >>> >>> 1259 removes obsolete references to the (now removed 'flink-spargel' code >>> from the POM), while 1260 updates a paragraph of the "How to Build" >>> documentation and fixes some broken href anchors. >>> >>> Just my two cents here, but fixes (not only hotfixes) that >>> >>> * resolve minor and obvious issues with the existing code or the >>> documentation, >>> * can be followed by everybody just by looking at the diff >>> >>> should be just cherry-picked (and if needed amended) by a committer >>> without >>> too much unnecessary discussion and excluded from the "shepherding >>> process". >>> >>> >>> 2015-10-17 12:32 GMT+02:00 Alexander Alexandrov < >>> alexander.s.alexand...@gmail.com>: >>> >>>> One suggestion from me: in GitHub you can make clear who the current >>>> sheppard is through the "Assignee" field in the PR (which can and IMHO >>>> should be different from the user who actually opened the request). >>>> >>>> Regards, >>>> A. >>>> >>>> 2015-10-16 15:58 GMT+02:00 Fabian Hueske <fhue...@gmail.com>: >>>> >>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> >> >> >
signature.asc
Description: OpenPGP digital signature