Reduce number of open PRs to 2 or 3 per dev #7692
Replies: 6 comments 5 replies
-
I am not a dev, but I approve of this idea. |
Beta Was this translation helpful? Give feedback.
-
Suggested rules can be interpreted as a barrier for new developers, but not be scared and if You (new developer) will have problem to open new PR: So I suggest some exceptions (make some PRs as exceptional - not count neither in "2 or 3 PRs per dev", nor in "exists for more than 3 months" ):
And no one can follow 40 pages of Issues ... Also I suggest some rules for new PRs: Brand new features, such as Audio Recording , External Synchronization with jack transport , should be planed in small steps (on Isuue level) and work should be started only after LMMS member approving this plan (than new Issue can be opened for every small step , then implemented, PR created, reviewed, improved, approved and merged to master). (But old ones should be continued as started - as exception.) P.S. |
Beta Was this translation helpful? Give feedback.
-
I'm having a hard time understanding this rule. I think it aims to have some type of "you scratch my back, I scratch yours" enforcement but I'm having a hard time understanding the execution of it all. I don't want to minimize the merge-conflict-mess that large PRs cause, but I'm reading that there should be an arbitrary count of how many PRs can be open per developer, which I'm failing to understand completely. I believe we should more aggressively be converting stale PRs to drafts to shorten the list. (Similar to your archive recommendation) I also believe that coordination (such as you working today with @messmerd on common PR class nomenclature and design) in regards to overlapping code, concepts and ideas is paramount. However, my fear is that such a rule would ultimately punish (reject) good work in defence of a policy. Perhaps put better - a developer that writes a lot of small patches shouldn't be bottlenecked in the same fashion as a developer who makes a sweeping change through 300 files, or one that completely refractors or overhauls a commonly used component. |
Beta Was this translation helpful? Give feedback.
-
More or less ex developer here, but anyhow... I think @tresf is closest to the truth here. 10 small bugfixes is not too much for a single developer, but one huge "Let's change X just for X's sake" refactor might be. (I'd much rather see stuff like that in a separate commit in a PR where you actually do something - fix a bug, improve a feature - unless it is something that must change everywhere at once. You know, a little touch up while you're in the neighborhood anyway.). And besides, the larger the PR, the more conflicts with other open PRs it creates on merge. So, it's really not useful to put down a hard limit on the number of PRs, but maybe on the number of files or lines they touch? I think taking care of stale PRs would be a lot better, and that would include preventing them by dealing with new PRs in a timely manner. It's not like anyone likes updating a PR to get around some arbitrary cutoff rule, and then get the thumbs down a long time later. Granted, it's been a while since my last ones, so I don't know how long it takes to get your PR reviewed these days (and I don't mean purely in a formatting sense), but I can imagine the devs doing reviews being swamped. I know my familiarity with the code never was at a level where I'd be comfortable telling contributors how to do what they do, and I'd expect a pretty small minority to have the needed amount of hours to put in to really get there. So that would be a bit of a problem (unless I'm just pessimistic). I'm not too sure on breaking new features into steps in separate issues and having a PR for each. Maybe for something huge, but one issue with a checklist of the steps should be enough most of the time, instead of filling the issue list. The PRs could then implement parts of that list in suitable chunks. But hey, sometimes more regulation and procedure is the solution. Inspired by this discussion, I had a look and closed my old stale PRs. What I had was:
|
Beta Was this translation helpful? Give feedback.
-
I mean, I guuuueeees we could create something like the "golden rule" tag for PRs if we're worried that authors are programming in a way that's a bit too selfish/narcissistic for the project. Note
Reviews for this PR are discouraged for the following reason: ... of course, this can quickly become a cat-and-mouse game. e.g.
... not to mention the backlog of PRs that were opened before such a quota existed. @JohannesLorenz I want to be clear... I'm not against encouraging better cooperation here, but due to the small amount of active developers, it may be easier to just call these individuals out as we see fit. |
Beta Was this translation helpful? Give feedback.
-
Another way to solve this: We could write a script which first uses a REST query to check all PRs. Then, it would clone all the respective branches and then could tell you for every file who is recently working on it. Disadvantages of this are
|
Beta Was this translation helpful? Give feedback.
-
The large number of PRs is often being criticized, and it has a lot of disadvantages:
I think all developers should be forced to keep at most 2 or 3 PRs open (1 may not be enough if you find out you need 1 or 2 more PRs to get an open PR working - e.g. I assume #7554 was used to help #7459 ). All other PRs have different options:
lmms/lmms-archives
and a PR draft can be opened there.Suggested rules for new PRs:
That way, everyone who would have opened new PRs now is forced to review existing PRs.
Beta Was this translation helpful? Give feedback.
All reactions