Surface failed checks' underlying causes in fix --check - #381
Merged
Conversation
Checks run through `.result` so a failure doesn't abort the pipeline, but that also suppresses SBT's own error reporting for the wrapped task. Failures whose details only live in the exception message — like `update`'s eviction report — were reduced to "N check(s) failed" with nothing actionable in the log. Every underlying cause is now logged through the check's own banner prefix as soon as the failure is recorded.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checks run through
.resultso one failure doesn't abort the pipeline, but that also suppresses SBT's own error reporting for the wrapped task. Failures whose details only live in the exception message were reduced toN check(s) failed: ...with nothing actionable in the log — most painfullyupdate's eviction report, where the entire conflict tree is the exception message.Now every failed check logs its underlying causes (via
Incomplete.allExceptions) prefixed with the check's name, e.g.:Verified end to end against a build with a deliberately planted eviction conflict wired into
fixCheckExtraas anupdatecheck.versionPolicyCheckpasses (BinaryAndSourceCompatible— internal change only).