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
> >>>>
> >>>
> >>>
> >>
> >
>
>

Reply via email to