+1

I will likely participate in the effort of reviewing PRs when my schedule 
allows it.

As pointed out in previous comments, some of us have a limited amount of time 
available and few experience with certain areas of the codebase. One thing we 
may experiment with is a shadow review process, similar to what is done with 
shadow program committees at conferences (e.g., S&P [1]). For instance, I 
recently reviewed CALCITE-5160 [2] and asked someone else to accept the PR. 
Frank Zou provided additional feedback, and I learned new things along the way. 
I think such a mechanism would really help non-committers and new committers to 
onboard.

[1] https://www.ieee-security.org/TC/SP2021/shadowpc.html
[2] https://github.com/apache/calcite/pull/2854


> On 12 Apr 2023, at 11:51, Stamatis Zampetakis <[email protected]> wrote:
> 
> For a long time this has been one of the main issues of the project
> and I am happy to see discussions to address this issue.
> 
> I would like to mention that as a contributor, I am, and always have
> been very grateful to people reviewing my work.
> The fact that I became a committer of this project is mainly due to
> Julian and Vladimir Sitnikov who reviewed and merged many of my PRs.
> I would definitely like to help and make other contributors feel the
> same but I cannot really commit to specific volume and deadlines
> spanning several months.
> 
> I have the feeling that we don't need the PR manager role. The
> assignment work can be done by bots (e.g., [1]) if needed and we
> already have our quarterly stats for reporting purposes.
> If we want to put a human behind this then it makes more sense for
> this person to be the release manager; this should be the one nagging
> people for advancing the work and moving towards the release.
> 
> Regarding reviews coming from non-committers, I am not sure it's
> possible to do the assignment in GitHub. It's not a big deal though;
> for me a simple comment that I am going to review would be sufficient.
> Alternatively, we could consider adopting an equivalent workflow in
> JIRA and potentially introducing a new state "IN REVIEW"; don't think
> it is necessary.
> No matter the choice we should ensure that we have a trackable way to
> recognise "non-committer" reviewers but I think both GitHub (e.g.,
> "is:pr reviewed-by:julianhyde is:closed") and JIRA offer the necessary
> filters;
> Others projects tend to include such info in the commit message we
> could also opt for this if we deem necessary.
> 
> As an immediate action I would encourage everyone willing to help to
> go to the open PRs on GitHub and either assign some PRs to themselves
> (in case of committers) or leave a comment about their intention
> (non-committers).
> 
> In the meantime we can iterate on this till we reach consensus.
> 
> Best,
> Stamatis
> 
> [1] https://github.com/apps/auto-assign
> 
> 
> On Wed, Apr 12, 2023 at 10:49 AM Ruben Q L <[email protected]> wrote:
>> 
>> Hello,
>> 
>> I understand Julian's frustration. We all know that reviewing PRs is a
>> recurring problem, and it is not the first time we discuss potential
>> solutions, see e.g. the discussion a year ago [1] (also started by Julian)
>> where several ideas were mentioned: automatic assignment, emulate the RM
>> process onto the reviewing process (quite similar to the current proposal),
>> ...but in the end no change was implemented, and the problem remains.
>> 
>> I agree that something must be done in order to revert the situation.
>> 
>> In my opinion, one of the main factors is that the vast majority of PRs
>> (even the ones that get merged) are never assigned. This lack of assignee
>> can be seen as if the PR is "no-one's responsibility", so we should try
>> somehow to assign each PR to someone, and make that person accountable for
>> the PR's progression.
>> I think we could try Julian's idea of having a pool of reviewers and a PR
>> manager (taken from the pool, rotating this position every month or every
>> two months). Personally, I would not set hard deadlines (e.g. something
>> must be done within 3 days), because we are all volunteers and, even if we
>> are all trying to do our best here, it may happen that a certain week we
>> are busy with other personal or professional stuff. In the end, I think it
>> should be the PR manager's responsibility to ping the assigned reviewer if
>> a PR is not progressing after a reasonable period of time, ask them for an
>> update, maybe even involve a different reviewer / re-assign the PR as a
>> last resource.
>> 
>> Of course, it must remain clear that, even if we implement this approach,
>> anyone is still free (and encouraged) to participate in any PR review. Even
>> if someone is not the assigned reviewer, they can chime in and contribute
>> to the review nevertheless.
>> Also, I think another sensible rule would be: if someone from the reviewers
>> pool submits a PR, the PR manager will need to assign it to a different
>> person.
>> 
>> One last comment, I have the impression that with this initiative we would
>> be moving towards a "better done than perfect" approach. Calcite is a vast
>> project, with many different modules, and it could happen (it *will*
>> happen) that a certain reviewer gets assigned a PR concerning a part of the
>> project that they are not familiar with. Of course, one way of becoming
>> (progressively) familiar with unknown parts of the project is by reviewing
>> this type of PRs, but that takes time. I guess it would be possible for the
>> assignee to try to ping and involve other reviewers with more experience in
>> that area, but at the end of the day, it would be the assignee's
>> responsibility to review and merge some piece of code that might be a bit
>> obscure to them. This might lead to suboptimal or even incorrect code being
>> inadvertently merged into the main branch. This is not a catastrophe (it
>> can already happen with the current approach), and we will detect and
>> correct these mistakes; I'm just mentioning that they might become a bit
>> more frequent with the proposed approach (and we should all face them with
>> a constructive and positive attitude). In any case, I have the impression
>> that with the new idea the pros outweigh the cons, so we could give it a
>> try.
>> 
>> Best,
>> Ruben
>> 
>> [1] https://lists.apache.org/thread/30pf1o0vlcn7y3bhlcht1wdmvmxyvghn
>> 
>> 
>> 
>> On Wed, Apr 12, 2023 at 3:13 AM Chunwei Lei <[email protected]> wrote:
>> 
>>> Thanks Julian for sharing the proposal. I am +1 for it. I have been busy in
>>> the past few months, so I have only had a quick look at the new JIRA.
>>> However, I will have more time in the coming months, and I would be more
>>> than happy to review any pull requests.
>>> 
>>> 
>>> 
>>> Best,
>>> Chunwei
>>> 
>>> 
>>> On Tue, Apr 11, 2023 at 10:22 PM Jiajun Xie <[email protected]>
>>> wrote:
>>> 
>>>> Thank Julian for your idea.
>>>> Your plan helps to motivate new contributors.
>>>> 
>>>> “If there is no response to my PR,
>>>> I will be disappointed or even give up on continuing to contribute.”
>>>> 
>>>> I hope that every contributor will be encouraged,
>>>> and I also hope that the Calcite community will become stronger and
>>>> stronger.
>>>> 
>>>> +1, I am willing to join the pool of reviews.
>>>> 
>>>> On Tue, 11 Apr 2023 at 13:20, Benchao Li <[email protected]> wrote:
>>>> 
>>>>> Thanks Julian for starting the discussion!
>>>>> 
>>>>> I'm spending my spare time to contribute to Calcite, usually at
>>> weekends,
>>>>> and sometimes in the break of weekdays, hence my time would be limited
>>>>> because the spare time may varies. Review work is not that simple for
>>> me
>>>>> because Calcite has many complicated components and evolves many years
>>>>> which means we need track a lot of background. I'm still learning some
>>>> part
>>>>> while doing the review work.
>>>>> 
>>>>> The complexity of PRs varies a lot, simple ones would be easier to get
>>> in
>>>>> because it only cost me minutes to hours to review. But the complex
>>> ones,
>>>>> usually I need to spend more time to understand the background, new
>>>> design,
>>>>> the effect to the whole project, and the future direction we want to
>>>> take.
>>>>> These kinds of PRs may be preempted by small ones, and finally do not
>>>>> getting reviewed for months, there is a example[1] which I would say
>>>> sorry
>>>>> to the author that I still do not manage to give it a review till
>>> today.
>>>>> 
>>>>> Any way to improve current status would be grateful. However, if the
>>>>> proposal from Julian may require more sustainable time, I'm not sure if
>>>> it
>>>>> is suitable for guys like me who only devotes limited spare time to
>>>>> Calcite. Hence I'm +0 for this proposal. Of course, I would be happy to
>>>>> participate in the schema if we finally decide to do it.
>>>>> 
>>>>> [1] https://issues.apache.org/jira/browse/CALCITE-5413
>>>>> 
>>>>> Charles Givre <[email protected]> 于2023年4月11日周二 12:43写道:
>>>>> 
>>>>>> I for one would very much like to help with reviews.  I don't have a
>>>> lot
>>>>>> of time this month, but next month should have more time.
>>>>>> Best,
>>>>>> -- C
>>>>>> 
>>>>>>> On Apr 10, 2023, at 10:56 PM, Dan Zou <[email protected]> wrote:
>>>>>>> 
>>>>>>> +1, thanks Julian for proposing this. From my observation, there
>>> are
>>>>>> many pending PRs in Calcite and only a few active committers, this
>>>> puts a
>>>>>> lot of pressure on these committers. For example Julian have reviewed
>>>> 34
>>>>> PR
>>>>>> in 2023 Q1, it is an unimaginable number. I am very supportive of
>>>>> achieving
>>>>>> a mechanism to improve the review efficiency of PRs, and also I would
>>>>> like
>>>>>> to make contribution in reviewing PRs.
>>>>>>> 
>>>>>>> Best,
>>>>>>> Dan Zou
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> 2023年4月11日 01:56,Julian Hyde <[email protected]> 写道:
>>>>>>>> 
>>>>>>>> I don't enjoy reviewing and merging PRs. And every time I do, I
>>> feel
>>>>>>>> like a sucker, because there are over a few dozen committers who
>>> are
>>>>>>>> enjoying the project and not doing the work. (There is a small
>>> group
>>>>>>>> of committers who regularly review and merge PRs. I don't know how
>>>>>>>> they feel about the task, but I am immensely grateful.)
>>>>>>>> 
>>>>>>>> I think I would review more PRs if I saw others doing the same.
>>>>>>>> 
>>>>>>>> Can we figure out a fairer way to distribute the load? For release
>>>>>>>> managers (approximately the same amount of work, but compressed
>>>> into a
>>>>>>>> few hours or days) we have successfully run a rota for several
>>>> years.
>>>>>>>> Could we do something similar with PRs?
>>>>>>>> 
>>>>>>>> I propose the following. For each calendar month, there is a PR
>>>>>>>> manager and 6 - 8 reviewers. The PR manager does not review PRs,
>>> but
>>>>>>>> assigns them to reviewers, and politely reminds reviews to keep
>>> the
>>>> PR
>>>>>>>> moving.
>>>>>>>> 
>>>>>>>> The PR manager's goals are:
>>>>>>>> * every non-draft PR is reviewed within 3 days of submission,
>>>>>>>> * every PR is merged within 3 days of being done;
>>>>>>>> * rotate duties so that no reviewer is asked to review more than 4
>>>>>>>> PRs per month;
>>>>>>>> * email a report at the end of the month;
>>>>>>>> * work down the backlog of historic PRs if it's a slow month.
>>>>>>>> 
>>>>>>>> The PR manager rotates every month. The reviewers can rotate if
>>> they
>>>>>>>> wish, but I suspect most will stay in the pool for several months,
>>>>>>>> because the reviewing load is not very heavy, and because they see
>>>>>>>> others doing the work.
>>>>>>>> 
>>>>>>>> Other notes:
>>>>>>>> * Non-committers would be welcome to join the pool of reviews (and
>>>>>>>> that would be a good way to earn the committer bit) and a
>>> committer
>>>>>>>> could merge when the PR is approved.
>>>>>>>> * If committers join the pool, that's a good way to earn PMC
>>>>> membership.
>>>>>>>> * Committers who are not in the pool are welcome to review PRs and
>>>>>>>> assign PRs to themselves (but expect to be nagged by the PR
>>> manager
>>>> if
>>>>>>>> you don't review in a timely manner).
>>>>>>>> 
>>>>>>>> What do you think? Would you join this scheme if we introduced it?
>>>> If
>>>>>>>> you agree please +1; also happy to see revisions to this
>>> suggestion
>>>> or
>>>>>>>> other ideas to share the work.
>>>>>>>> 
>>>>>>>> Julian
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> --
>>>>> 
>>>>> Best,
>>>>> Benchao Li
>>>>> 
>>>> 
>>> 

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to