"configuration changed" is way too vague
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
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
Contributor guide
Assessment
This issue has not been assessed yet.