-
Notifications
You must be signed in to change notification settings - Fork 335
Change output for regression of independent ports #794
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
Conversation
From a ci command perspective, errors are regressions by default. The baseline file is only for skips, expected failures and unexpected cascades.
If a port is not changed with regard to its parent hash but fails to build, it is a real baseline regression.
f0abfd6 to
c52f9e3
Compare
|
WIP, but looking for feedback. |
# Conflicts: # src/vcpkg/commands.ci.cpp
|
In the future if you run the format and generate-message-map targets it will fix what CI complains about for you locally. I think nobody looked at this PR because it was Red. |
|
I am support of improving the output to better distinguish such output. However, I think it would be better to describe more directly what happened. Now that we have some idea of what the user changed anyway. I would prefer to include output indicating whether the thing is in the 'cone of dependencies' or 'cone of destruction' and include example causes. For example: Of course those blobs probably count as documentation or at least documentation-adjacent stuff. /cc @AugP @ras0219-msft Implementation wise I'm not sure whether 'user-requested-install' is the right metric to track here? |
|
Thanks @BillyONeal
I would have chosen three cases, too. But at the moment, we cannot generally distinguish REGRESSION from DEPENDENT-REGRESSION. This would require to track source file (hash) changes independent from ABI hashes of dependencies. (We can detect regressions as not being DEPENDENT-REGRESSION if their dependencies didn't change. But some changed port may have changed dependencies.)
I am aware of the mismatch. OTOH for the current two-case scenario, it maps quite well to what is present for regular |
|
I am happy that this is an improvement on the status quo even if it isn't what we really want. |
# Conflicts: # include/vcpkg/base/messages.h # src/vcpkg/base/messages.cpp
|
Thanks! |
|
Does this actually do anything? Every spec in |
I'm sure it did make a difference two years ago, but there is no test.
I can't dig deeper now, but IIRC "user_requested_install" was the indicator for the particular case of ABI unhash unchanged (= independent), cached artifact missing. |
Maybe this had something to do with it: vcpkg-tool/src/vcpkg/commands.ci.cpp Line 184 in 1d7fdac
|
|
Given that searching for "REGRESSION: Independent" gives no results (I would have expected over 2 years someone to have copied that into a PR), I can't seem to repro this failure, and there are no tests, I'm going to remove this code path in #1821 / #1822 . At a minimum, detecting the condition described in the description would require comparing the ABI hash of ports with their ABI hash by name... and this isn't doing that. parent_hashes in this PR are still being morally smashed into a I am also improving the report at the top a bit:
|
|
And with the test, restoring the capability was easy. |

This is an attempt to change CI output for regressions building ports which are independent, i.e. not affected by the changes in a PR, vs. regression in ports which are affected by changes.
(I try to avoid the word "baseline" here.)
Simplified scenario
vcpkg "parent" state:
Port A.
Port B.
Port C depends on A and on B.
CI successful.
After a vcpkg PR modifying C.
Port A.
Port B.
Port C depends on A and on B[non-default-feature].
CI fails on B[non-default-feature] which wasn't built before:
In less simple cases with more dependencies, contributors and reviewers are often confused:
Reviewer: "You broke B!"
Contributor: "I didn't change it at all!".
With a modified tagging of the B[non-default-feauture] failure, both parties can recognize the problem more easily:
I started this change a while ago, and I need some time to recover commands for testing the issue and change. But maybe it is already useful to discuss at this point. Actual changes start after "Merge branch 'command-ci' into HEAD" (0403be0).