You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Zelaine Fong <zf...@maprtech.com> on 2016/12/05 16:32:53 UTC

Re: [PROPOSAL] Apache Jira Workflow for Code Reviews

Any other thoughts or comments on this?

From the limited number of "votes", it seems like the preference is for
option 2 -- keeping the Assignee field set to the fixer and using other
fields to denote the code reviewer and readiness for commit.

If I don't hear any other opinions, I'll work with others to update the
wiki page to make this process change.

Thanks.

-- Zelaine

On Tue, Nov 29, 2016 at 11:59 AM, Zelaine Fong <zf...@maprtech.com> wrote:

> 1) Yes, we don't have a good system for this.  Committers can
> watch/monitor and do the assignment, as you've suggested.
>
> 2) If we go with proposal #2, then yes, adding a comment when the Reviewer
> assignment is done would be needed to trigger an email notification.  Or we
> could make the Reviewer a watcher on the issue.  In either case, the
> explicit additional step is required.
>
> Regarding adding new status states to Apache Jira -- I'm not sure how hard
> that is.  I recall discussion about attempts being made to add new fields
> into Apache Jira.  But I'm not sure about states.  Any one have experience
> with this?  If it's easy to do, I think that's a better way of tracking the
> new state change that proposal #2 needs.
>
> -- Zelaine
>
>
> On Tue, Nov 29, 2016 at 11:02 AM, Paul Rogers <pr...@maprtech.com>
> wrote:
>
>> Sounds like #2 has a clear lead. Couple of suggestions.
>>
>> 1. How do we know the reviewer to specify? In many cases, we informally
>> know a likely person. Community members may not be sure. Or, can a
>> committer watch for such cases and do the assignment?
>>
>> 2. As it turns out, JIRA does not send an e-mail notification when
>> assigning someone as a Reviewer. Instead, perhaps include a brief comment,
>> mentioning that person, to force JIRA to alert the Reviewer that they have
>> a new item.
>>
>> As a follow up, anyone know if we can lobby Apache to add status states?
>> That is, to add the states that Julian suggested? Typical workflow: Open ->
>> In Progress -> Reviewable -> Ready to Commit -> Resolved.
>>
>> (Actually, if we include QA activities, the flow should be Resolved —>
>> Verified. But, that is a different discussion.)
>>
>> The list of states (visible from clicking Resolve), includes some odd
>> items such as “Staged” and “REMIND”, which seem like specialized states
>> added for ad-hoc purposes...
>>
>> Thanks,
>>
>> - Paul
>>
>> > On Nov 29, 2016, at 9:23 AM, Julian Hyde <jh...@gmail.com>
>> wrote:
>> >
>> > I like 2 also.
>> >
>> > Is the following variant of 2 possible in JIRA? Make the "ready to
>> commit" flag into a status. Thus status changes from "open" to "in
>> progress" to "reviewable" to "ready to commit" (or "approved").
>> >
>> > The inability to search by assignee should not be a huge problem - it
>> is in the interests of the project to ensure that the number of cases in
>> "reviewable" or "ready to commit" state at any moment is small.
>> >
>> > And furthermore, the author of a bug often doesn't know or care who
>> will review or commit it. So the very notion of an assignee is suspect.
>> >
>> > Julian
>> >
>> >> On Nov 29, 2016, at 07:53, Aman Sinha <am...@apache.org> wrote:
>> >>
>> >> My preference is for #2 because of the reasons you mention.  For #1 my
>> >> recollection is the DrillCommitter was used at a time when there were
>> only
>> >> couple of committers.  Today there are many.  Changing to
>> DrillCommitter
>> >> will leave ambiguity about which committer should look at it.
>> >> Additionally,  I feel that today we are not using the field 'Reviewer'
>> for
>> >> its correct purpose.  This argues for #2.
>> >>
>> >> One note about #2 worth mentioning is that folks would have to change
>> their
>> >> search criteria  to 'assigned *OR reviewer*' to find out what is on
>> their
>> >> plate.
>> >>
>> >>> On Mon, Nov 28, 2016 at 4:51 PM, Zelaine Fong <zf...@maprtech.com>
>> wrote:
>> >>>
>> >>> I'd like to propose a small change to the current process for code
>> reviews
>> >>> in Apache Drill.  We need this change because non-committers are
>> becoming
>> >>> more involved in code reviews.
>> >>>
>> >>> The current process is described at
>> >>> https://drill.apache.org/docs/apache-drill-contribution-
>> >>> guidelines/#step-3:-get-your-code-reviewed-and-committed-to-
>> the-project.
>> >>> It assumes that the individuals doing code reviews are code
>> committers.
>> >>> Here's a brief summary of the process:
>> >>>
>> >>> *Current Process:*
>> >>> Currently, the workflow is based on updating the Status and Assignee
>> >>> fields.  When a pull request has been posted and is ready for review,
>> the
>> >>> issue status is changed to "Reviewable" and the Assignee is changed
>> to the
>> >>> designated code reviewer.  If the review is completed and the
>> reviewer is a
>> >>> committer, the reviewer/committer will commit the change. If the code
>> >>> reviewer has comments that require the contributor to address, the
>> issue
>> >>> status changes back to "In Progress" and the Assignee is changed back
>> to
>> >>> the contributor.
>> >>>
>> >>> *Proposed Change:*
>> >>> The proposed change is to address the case where another step may be
>> needed
>> >>> to commit changes, if the changes have been reviewed by a
>> non-committer.
>> >>> Here are a couple of proposals on how to address this.  In both
>> cases, once
>> >>> a review has been satisfactorily completed on a pull request, a
>> committer
>> >>> will take over, bless the changes based on the prior review comments,
>> do a
>> >>> +1 on the patch, and then commit.
>> >>>
>> >>>
>> >>> *Proposal #1:*When a fix is ready to be reviewed, set the Assignee to
>> >>> "DrillCommitter".
>> >>>
>> >>> Pros: Simple.  User "DrillCommitter" already exists.
>> >>> Cons: Similar to changing the Assignee to the code reviewer, you lose
>> track
>> >>> of who is the original contributor of an issue.  Yes, it's in the
>> comment
>> >>> history, but there is no automated/easy way to get this info.
>> >>>
>> >>> *Proposal #2:*
>> >>> Leave the Assignee field unchanged.  This is also means changing the
>> >>> current process of changing the Assignee to the code reviewer.
>> Instead,
>> >>>
>> >>> 1) Continue to set the Status to "Reviewable" to indicate that the
>> fix is
>> >>> ready for review, but set the Reviewer field to the designated code
>> >>> reviewer.
>> >>> 2) If changes are needed after code review, change the status of the
>> issue
>> >>> back to "In Progress" as today.  But again, don't change the Assignee.
>> >>> 3) If the changes are acceptable, the reviewer applies the
>> >>> "ready-to-commit" tag on the Jira.
>> >>>
>> >>> Pros: Maintains Assignee field
>> >>> Cons: Requires querying for the tag "ready-to-commit" to find
>> commit-ready
>> >>> fixes.
>> >>>
>> >>> Please comment with your preferences for proposal 1 or 2, or if you
>> have
>> >>> other suggestions.
>> >>>
>> >>> Thanks.
>> >>>
>> >>> -- Zelaine
>> >>>
>>
>>
>

Re: [PROPOSAL] Apache Jira Workflow for Code Reviews

Posted by Parth Chandra <pa...@apache.org>.
Option 2 sounds good.

On Mon, Dec 5, 2016 at 8:32 AM, Zelaine Fong <zf...@maprtech.com> wrote:

> Any other thoughts or comments on this?
>
> From the limited number of "votes", it seems like the preference is for
> option 2 -- keeping the Assignee field set to the fixer and using other
> fields to denote the code reviewer and readiness for commit.
>
> If I don't hear any other opinions, I'll work with others to update the
> wiki page to make this process change.
>
> Thanks.
>
> -- Zelaine
>
> On Tue, Nov 29, 2016 at 11:59 AM, Zelaine Fong <zf...@maprtech.com> wrote:
>
> > 1) Yes, we don't have a good system for this.  Committers can
> > watch/monitor and do the assignment, as you've suggested.
> >
> > 2) If we go with proposal #2, then yes, adding a comment when the
> Reviewer
> > assignment is done would be needed to trigger an email notification.  Or
> we
> > could make the Reviewer a watcher on the issue.  In either case, the
> > explicit additional step is required.
> >
> > Regarding adding new status states to Apache Jira -- I'm not sure how
> hard
> > that is.  I recall discussion about attempts being made to add new fields
> > into Apache Jira.  But I'm not sure about states.  Any one have
> experience
> > with this?  If it's easy to do, I think that's a better way of tracking
> the
> > new state change that proposal #2 needs.
> >
> > -- Zelaine
> >
> >
> > On Tue, Nov 29, 2016 at 11:02 AM, Paul Rogers <pr...@maprtech.com>
> > wrote:
> >
> >> Sounds like #2 has a clear lead. Couple of suggestions.
> >>
> >> 1. How do we know the reviewer to specify? In many cases, we informally
> >> know a likely person. Community members may not be sure. Or, can a
> >> committer watch for such cases and do the assignment?
> >>
> >> 2. As it turns out, JIRA does not send an e-mail notification when
> >> assigning someone as a Reviewer. Instead, perhaps include a brief
> comment,
> >> mentioning that person, to force JIRA to alert the Reviewer that they
> have
> >> a new item.
> >>
> >> As a follow up, anyone know if we can lobby Apache to add status states?
> >> That is, to add the states that Julian suggested? Typical workflow:
> Open ->
> >> In Progress -> Reviewable -> Ready to Commit -> Resolved.
> >>
> >> (Actually, if we include QA activities, the flow should be Resolved —>
> >> Verified. But, that is a different discussion.)
> >>
> >> The list of states (visible from clicking Resolve), includes some odd
> >> items such as “Staged” and “REMIND”, which seem like specialized states
> >> added for ad-hoc purposes...
> >>
> >> Thanks,
> >>
> >> - Paul
> >>
> >> > On Nov 29, 2016, at 9:23 AM, Julian Hyde <jh...@gmail.com>
> >> wrote:
> >> >
> >> > I like 2 also.
> >> >
> >> > Is the following variant of 2 possible in JIRA? Make the "ready to
> >> commit" flag into a status. Thus status changes from "open" to "in
> >> progress" to "reviewable" to "ready to commit" (or "approved").
> >> >
> >> > The inability to search by assignee should not be a huge problem - it
> >> is in the interests of the project to ensure that the number of cases in
> >> "reviewable" or "ready to commit" state at any moment is small.
> >> >
> >> > And furthermore, the author of a bug often doesn't know or care who
> >> will review or commit it. So the very notion of an assignee is suspect.
> >> >
> >> > Julian
> >> >
> >> >> On Nov 29, 2016, at 07:53, Aman Sinha <am...@apache.org> wrote:
> >> >>
> >> >> My preference is for #2 because of the reasons you mention.  For #1
> my
> >> >> recollection is the DrillCommitter was used at a time when there were
> >> only
> >> >> couple of committers.  Today there are many.  Changing to
> >> DrillCommitter
> >> >> will leave ambiguity about which committer should look at it.
> >> >> Additionally,  I feel that today we are not using the field
> 'Reviewer'
> >> for
> >> >> its correct purpose.  This argues for #2.
> >> >>
> >> >> One note about #2 worth mentioning is that folks would have to change
> >> their
> >> >> search criteria  to 'assigned *OR reviewer*' to find out what is on
> >> their
> >> >> plate.
> >> >>
> >> >>> On Mon, Nov 28, 2016 at 4:51 PM, Zelaine Fong <zf...@maprtech.com>
> >> wrote:
> >> >>>
> >> >>> I'd like to propose a small change to the current process for code
> >> reviews
> >> >>> in Apache Drill.  We need this change because non-committers are
> >> becoming
> >> >>> more involved in code reviews.
> >> >>>
> >> >>> The current process is described at
> >> >>> https://drill.apache.org/docs/apache-drill-contribution-
> >> >>> guidelines/#step-3:-get-your-code-reviewed-and-committed-to-
> >> the-project.
> >> >>> It assumes that the individuals doing code reviews are code
> >> committers.
> >> >>> Here's a brief summary of the process:
> >> >>>
> >> >>> *Current Process:*
> >> >>> Currently, the workflow is based on updating the Status and Assignee
> >> >>> fields.  When a pull request has been posted and is ready for
> review,
> >> the
> >> >>> issue status is changed to "Reviewable" and the Assignee is changed
> >> to the
> >> >>> designated code reviewer.  If the review is completed and the
> >> reviewer is a
> >> >>> committer, the reviewer/committer will commit the change. If the
> code
> >> >>> reviewer has comments that require the contributor to address, the
> >> issue
> >> >>> status changes back to "In Progress" and the Assignee is changed
> back
> >> to
> >> >>> the contributor.
> >> >>>
> >> >>> *Proposed Change:*
> >> >>> The proposed change is to address the case where another step may be
> >> needed
> >> >>> to commit changes, if the changes have been reviewed by a
> >> non-committer.
> >> >>> Here are a couple of proposals on how to address this.  In both
> >> cases, once
> >> >>> a review has been satisfactorily completed on a pull request, a
> >> committer
> >> >>> will take over, bless the changes based on the prior review
> comments,
> >> do a
> >> >>> +1 on the patch, and then commit.
> >> >>>
> >> >>>
> >> >>> *Proposal #1:*When a fix is ready to be reviewed, set the Assignee
> to
> >> >>> "DrillCommitter".
> >> >>>
> >> >>> Pros: Simple.  User "DrillCommitter" already exists.
> >> >>> Cons: Similar to changing the Assignee to the code reviewer, you
> lose
> >> track
> >> >>> of who is the original contributor of an issue.  Yes, it's in the
> >> comment
> >> >>> history, but there is no automated/easy way to get this info.
> >> >>>
> >> >>> *Proposal #2:*
> >> >>> Leave the Assignee field unchanged.  This is also means changing the
> >> >>> current process of changing the Assignee to the code reviewer.
> >> Instead,
> >> >>>
> >> >>> 1) Continue to set the Status to "Reviewable" to indicate that the
> >> fix is
> >> >>> ready for review, but set the Reviewer field to the designated code
> >> >>> reviewer.
> >> >>> 2) If changes are needed after code review, change the status of the
> >> issue
> >> >>> back to "In Progress" as today.  But again, don't change the
> Assignee.
> >> >>> 3) If the changes are acceptable, the reviewer applies the
> >> >>> "ready-to-commit" tag on the Jira.
> >> >>>
> >> >>> Pros: Maintains Assignee field
> >> >>> Cons: Requires querying for the tag "ready-to-commit" to find
> >> commit-ready
> >> >>> fixes.
> >> >>>
> >> >>> Please comment with your preferences for proposal 1 or 2, or if you
> >> have
> >> >>> other suggestions.
> >> >>>
> >> >>> Thanks.
> >> >>>
> >> >>> -- Zelaine
> >> >>>
> >>
> >>
> >
>