-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
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
Investigate failing PR check (check-by-name) #289649
Comments
@infinisil is the ratchet absolute not relative so this breaks all PRs in the meantime and doesn't say that there is already a failure on the target? I would guess ideally «relative increase» — including the things currently in the absolute exception list → red, «absolute increase but fine relatively» → gray, «absolute and relative are both fine» → green. It's another question whether this should have been a failure at all with non-default |
See #289751 In this case it wasn't a ratchet check (relative) failure, but rather an absolute failure, the PR shouldn't have been merged at all. |
Oh, in the sense that the initially-hoped-to-be-avoided «need to move out of |
Yeah changing it to a non- |
I ask about keeping the wrong version from the base branch here (but apparently this is not taken into account). Could we get gray instead of red if the base branch fails relative to itself? Hopefully this could shift the balance from blind reverts to looking a bit longer for an easy fix, and also matches the semantics better (red should be when a PR breaks something…) |
Ah I see what you mean. I don't think it's a good idea though. If master is broken like that (which btw can happen for all CI checks), it's generally impossible to know whether PRs are valid by themselves anymore. So if you merge PRs while the base branch is broken, you risk breaking it even more! Marking such base branch failures as red makes sure that it has to get fixed first. We should make sure that we never get to such a state in the first place, e.g. by enforcing that CI is green before merging. But in the absence of that, if PRs do still get merged with failing CI and it causes master to break (as was the case here), it just has to get fixed ASAP, and reverting is the fastest way to do that. |
@infinisil @7c6f434c Should we reopen this issue to have more discussion ? |
You have enabled the red checks before having data whether all the corner cases behave like you would expect. This was a mistake. By now, I am not sure you can quickly give a summary of what should be done in each corner case (via general rules, not by looking at a specific case) — and I am sure nobody else can. So I think at least «not caused by the local PR» problems should be gray. From all the writing, the problems are per-top-level-attribute anyway, so if the list of problematic attributes has not changed…
Sorry, but for check-by-name I am not buying this logic. The hard part is basically figuring out and telling everyone what to do in the newly discovered non-obvious corner case. Fixing the things is supposed to be a zero-rebuild (ofborg checks this!) moving files around, moving a few easy cases around doesn't really add that much to it. And, really — «This can make some security fixes more complicated to get right» was not a discussed drawback in the accepted RFC, so reducing the amount of security fixes reverted for trivial naming reasons is not less important than being slightly closer to the full migration while nobody is even sure the tooling is currently correct. Gray for «probably not your fault» failures encourages fix-forward. |
I think you're confusing something here, this failure was not an edge case. The RFC clearly specifies that only This was caught in the original PRs CI check, properly causing it to fail. And I could've confirmed that the failure is legitimate if I got a ping beforehand (which I didn't). The PR was merged regardless, probably because of there being false positives in the past, but these were all fixed already, so this was not the case here. If failing CI is ignored, I expect the one merging it to have made sure that it won't cause problems, which was not done here. I can't take the blame for this. So really, this is simply a case of the master branch being broken. And just like all other CI checks, the The only things I do take the blame for are the past false positives which caused some confusion, but by now these are all fixed, and I actively informed all affected PRs of this. I also take the blame for the confusion regarding error messages and the one unanticipated edge case (totally unrelated to master failing fyi). The CI check should indicate whether merging a PR would break master, and what one can do to make CI succeed. This is already tracked and I already started working on it this week. It's really tricky to get right though, so please be patient. |
I'll bite the bait: as long as the mass-renaming has not landed anywhere, violating
You are handling the error reports very well and impressively quickly. Sorry if I had given the impression I doubt that part. However, not many false positives are needed to burn the confidence temporarily. So yeah, people will ignore some of the complaints from CI until the classes of CI check complaints get to be common knowledge. And it is hard to predict which ones. (I am not sure what is the true situation with the multi-versioned packages, to be honest, but I am kind of waiting for what the mass-migration PR will do with them… because I am not 100% sure everything is settled right now) |
That's entirely orthogonal. The automated renaming won't have any effect on the checks.
That is the one unanticipated edge case. My recommendation for now is to refactor the multiple versions such that the The automated migration won't touch such packages, it's smart enough to detect when two packages depend on the same file. Once the automated migration code is in place though, I'm considering weakening the new package check to only complain when the new package could be migrated automatically. So this means new versions of packages would still be allowed in For now, you can check out #290743 for some improved error messages. |
Steps To Reproduce
Steps to reproduce the behavior:
Any PR created after the merge of:
Seems to fail PR checks.
Logs:
Add a 👍 reaction to issues you find important.
The text was updated successfully, but these errors were encountered: