Description
In order, the following will be built:
- my-0.1 (lib:my) (configuration changed)
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
in cabal-install/src/Distribution/Client/ProjectOrchestration.hs
.
Ultimately it comes when the ElaboratedConfiguredPackage
changes. ElaboratedConfiguredPackage
is defined in cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs
.
Equality of file monitors determined in newPackageFileMonitor
in cabal-install/src/Distribution/Client/ProjectBuilding/PackageFileMonitor.hs
.
FileMonitor
's fileMonitorKeyValid
field should return a Maybe ChangedReason
or something like that. (I'm making up ChangedReason
, could be a String
, 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 in ElaboratedConfiguredPackage
!).
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 diff