-
Notifications
You must be signed in to change notification settings - Fork 697
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
"configuration changed" is way too vague #10617
Comments
The ghost of #9476 walks again! |
This is the error I'm seeing in a CI run, https://github.com/haskell/cabal/actions/runs/12138982850/job/33845593860?pr=10546, that I'm not seeing when I run the same test locally (on Windows):
|
And that's pretty much what I was thinking of; I've seen it in CI as well. |
@geekosaur, I was seeing this with #10546. I was using the same project twice in I was accessing the same project from two different directories:
|
Thing is, I occasionally see it with tests that weren't changed by the PR, and generally on only one platform. |
@philderbeast For an example spurious 'configuration changed', see: #10524 (comment). Excerpt (NB this is about code in #10524, not code on
|
Thanks @9999years. Putting related tests in the same folder using projects seems risky. |
So this happens when the full, expanded configuration changes. This could mean a lot of things! Here's an easy solution: we write an Or we could just write a "describe configured package diff" function, which maybe wouldn't be too hard? |
What do you mean the configuration changed? How did the configuration change?
Notes
I've investigated this problem a bit. Here are my notes; they'll be useful to anyone interested in fixing this. Producing a diff of the
ElaboratedConfiguredPackage
s (and keeping the code to do so up-to-date when that record gets a new field) is the hard part."configuration changed" comes from
showBuildStatus
incabal-install/src/Distribution/Client/ProjectOrchestration.hs
.Ultimately it comes when the
ElaboratedConfiguredPackage
changes.ElaboratedConfiguredPackage
is defined incabal-install/src/Distribution/Client/ProjectPlanning/Types.hs
.Equality of file monitors determined in
newPackageFileMonitor
incabal-install/src/Distribution/Client/ProjectBuilding/PackageFileMonitor.hs
.FileMonitor
'sfileMonitorKeyValid
field should return aMaybe ChangedReason
or something like that. (I'm making upChangedReason
, could be aString
, could be a structured diff...)IMO the tricky part is keeping the diff display code up-to-date when someone adds or changes a field to
ElaboratedConfiguredPackage
(or any type contained inElaboratedConfiguredPackage
!).We don't have
tree-diff
in scope RN (maybe we could vendor some minimal subset of it?), so we can't automatically generate a diffThe text was updated successfully, but these errors were encountered: