Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review process: force push should not require re-approval #43701

Closed
Laczen opened this issue Mar 11, 2022 · 8 comments
Closed

Review process: force push should not require re-approval #43701

Laczen opened this issue Mar 11, 2022 · 8 comments
Assignees
Labels
Process Tracked by the process WG RFC Request For Comments: want input from the community

Comments

@Laczen
Copy link
Collaborator

Laczen commented Mar 11, 2022

Introduction

Due to changes the review process requires a re-approval after a branch has been force pushed. This should not be required. Even after a approval the reviewer is kept up to date with any changes that are applied before it is merged, so if a change requires new approval a reviewer can request changes.

New rules have been established for maintainers and contributors, there seems to be a unbalance in the rights and obligations for maintainers.

Problem description

These changes to the review process are slowing down the process of PR merging. The number of PR's that are waiting for approval seem to be increasing rapidly and this can't all be assigned to the growing of the community and zephyr.

A unbalance in the rights and obligations leads to frustration and unallowable power abusone by maintainers.

Proposed change

a. Remove the requirement for a PR to be re-approved after a force push. I can't imagine that there have been many problems in the past where a PR was merged before a reviewer has seen an acted upon the changes. Like it is now nearly 100% of the PR's are influenced while there might have been a problem in 1% (or even less) of the PR's.

b. Add obligations for the maintainers:
- react to a PR in a timely fashion (within a week),
- provide clear remarks whether a PR fit's in their global view of how the system should evolve,
- communicate their global view of the system (where it should go in the long run),
- do not allow maintainers to block PR's for futile reasons,
- if maintainers are unable to respond for whatever reason they should assign their task to another maintainer,

@Laczen Laczen added RFC Request For Comments: want input from the community TSC Topics that need TSC discussion labels Mar 11, 2022
@gmarull
Copy link
Member

gmarull commented Mar 16, 2022

+1

@carlocaione
Copy link
Collaborator

+1

@erwango
Copy link
Member

erwango commented Mar 16, 2022

+1

For authors, current situation is just like building card castles.
And for reviewers, this begins to be counterproductive as now I found myself trying to limit the level of my remarks on PRs that are in review for a long time and are starting to get approvals.

I'm noting that #41626 ("Device const qualifier check and fix"), was finally merged with 2 approvals (after 3 months of review and ~ 20 reviewers). I'm not sure this situation is better than the previous one.

@carlescufi
Copy link
Member

+1

Without hard data to back my statement up, my impression after 2 weeks of the option being enabled is that the new measure is not achieving its desired goal. Reviewers just click on +1 automatically without actually re-reviewing, which means that we've added overhead without any realistic gains.

@gmarull
Copy link
Member

gmarull commented Mar 16, 2022

I'll personally stop wasting my time re-approving PRs that just got rebased because there was a conflict, a CI failure or some sort of typo. I'll do that because there's no value on doing it apart from getting things in, so to blindly add +1 we have scripts/bots. I feel there's a disconnection between the reality and people that voted for this option. I'm convinced that a vote weighted by most active reviewers would not have ended in this result.

@nashif nashif removed the TSC Topics that need TSC discussion label Mar 23, 2022
@henrikbrixandersen henrikbrixandersen added the Process Tracked by the process WG label Nov 2, 2022
@nashif nashif self-assigned this Apr 13, 2023
@nashif nashif moved this to Todo in RFC Backlog Apr 13, 2023
@Laczen Laczen closed this as completed Apr 27, 2023
@github-project-automation github-project-automation bot moved this from Todo to Done in RFC Backlog Apr 27, 2023
@marc-hb marc-hb changed the title Review process Review process: force push should not require re-approval Apr 27, 2023
@nashif nashif added this to Process Aug 10, 2023
@nashif nashif moved this to Done in Process Aug 10, 2023
@marc-hb
Copy link
Collaborator

marc-hb commented Aug 20, 2024

@Laczen did you close this issue following some conversation somewhere (minutes?) or because you just gave up?

Like it is now nearly 100% of the PR's are influenced while there might have been a problem in 1% (or even less) of the PR's.

This is the best summary. ALL submitters have an extremely strong incentive NOT to act on "optional" suggestions and to stick to just "good enough" code and commit messages - otherwise they lose all approvals and a LOT of time.

Maybe this generally lower quality is the price to pay to avoid JiaT75-like attacks?

Reviewers just click on +1 automatically without actually re-reviewing, which means that we've added overhead without any realistic gains.

... or not even.

@marc-hb
Copy link
Collaborator

marc-hb commented Aug 21, 2024

Reviewers just click on +1 automatically without actually re-reviewing, which means that we've added overhead without any realistic gains.

Github has a very convenient "New changes since you last viewed" button:

image

However, that button is not compatible with the force-push based workflow:

That button merely shows newer commits: it assumes 1 "main" commit per PR and that all other commits are fixups. That's the typical Github Workflow but not the "traditional git" workflow.

The "force-pushed from... to ... " sentence is clickable and very useful to review recent changes but... only when the submitter did NOT rebase - because Github does not implement git range-diff (#39194).

Rebasing is now officially discouraged: https://docs.zephyrproject.org/latest/contribute/contributor_expectations.html#workflow-suggestions-that-help-reviewers but most submitters have no idea what "range-diff" even means. Most people just rebase without thinking.

We're screwed.

@Laczen
Copy link
Collaborator Author

Laczen commented Aug 21, 2024

@marc-hb Just gave up...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Process Tracked by the process WG RFC Request For Comments: want input from the community
Projects
Status: Done
Status: Done
Development

No branches or pull requests

8 participants