-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Policy for PR blocking? #2078
Comments
Ok, let's generalize this a bit. We have two PRs (A) and (B), that each touch the same code. Let's say that (A) is semver-major while (B) is semver-minor.
In the case of #893 and #1650, we should go ahead and get #893 landed. The improvements in #1650 are great to have, but are a lower priority. |
That's basically my feeling on the matter. I'm wondering if we need to decide on a specific protocol for these sort of situations though. I think the main reason #893 got blocked is because Petka suggested #1650 get in first, but I'm not sure that was a valid reason to block it. It might be nice to have a specifically documented policy we can point to when those sort of comments come up in the future. |
@nodejs/tsc : do any of you have specific thoughts on this? |
My only thought is whether this needs to be formalised rather than leaving it to interested parties to champion their code and argue for the way forward, as we do with almost all other changes. In this specific case, I'd like to see @yorkie or yourself @Qard, since you seem concerned, to start arguing for an alternative path. I'm not going to block formalisation, I'm just not sure how much you can generalise from this case and would prefer to see our standard "if you want to make a change, you have to convince others to get it in or bad luck" work in this case. |
Also need to consider the case where developer (X) has patch (A) and developer (Y) has patch (B). Say (B) is blocked by (A) finishing, but dev (X) for some reason can't finish it up. Does someone finish it for them? If the majority of the code was dev (X)'s are they author? Just a couple scenarios to think about. |
We've had a few of those already (I've been involved in a couple), mostly it works by simply taking someone's commits into your own PR and extending them with your own; leaving theirs intact in the history. |
Err, #893 isn't solely blocking on another PR. It also stands to break a lot of code (for many of the same reasons the other URL change broke a lot of code.) Specifically, since folks tend to parse strings into |
IOW: we absolutely should not merge #893 as it stands, since we haven't gone through a messaging cycle about "Hey, ecosystem! Your url formatting code will break a few major versions from now, here's how you fix it!" |
Yup. The dev-policy requires at least one major release cycle...
|
@rvagg While I would normally agree with not introducing too much process, that suggestion sounds dangerously close to "loudest voice wins" to me. I'm sure we don't want PRs to devolve into arguments about which has more immediate merit. I think a formal policy could help to prevent that. That having been said, I made this issue more to solicit feedback about if we think it's something we should formalize, not as a demand that we do so. |
I was suspended by #1650 just is because the 2 PRs have introduced the |
Transcript from the last TSC meeting: https://docs.google.com/document/d/1TN3Ks0fC4ciY3jeS0VxXxXRkT_dq8-tfs-bWQqZGRoE/edit
I think the general consensus is that this is probably a misunderstanding and ends up having to be handled case-by-case anyways. @Qard does this suffice, or is there more we should be doing? |
I think we can put this issue aside for now. As Rod said, there's not much immediately actionable here. I created this thinking it could become more of an issue in the future, as we have more and more PRs coming in. In this case, it was minor. If it comes up again, we can always revisit the issue. |
I think we should clarify and document how we feel about PRs blocking each other. In particular, I'd like to draw attention to #893, which seems to have been blocked on #1650, despite not having any strict dependency on it. While #893 is major and #1650 is not, I think #893 could have easily landed in 2.0.0 but it did not. Now, with 3.0.0 approaching and @petkaantonov not having the time for #1650, I think it makes sense to add #893 to 3.0.0.
This all makes me think, what if we had a shifting priority window? Normally minors take precedence over majors, but when we near the major release window, we should switch to prioritizing getting major changes merged, because if they miss the release they have a somewhat longer wait until the next chance to merge. During that window, minors probably shouldn't be allowed to block majors unless there is something specifically lacking for the major to be deemed "complete" in isolation.
Perhaps we should codify some specific policy for these situations? With more and more contributions coming in, there's more and more chances for PRs to step on each others toes a bit.
The text was updated successfully, but these errors were encountered: