haskell / haskell/cabal

"configuration changed" is way too vague

Open
#10,617 11 comments 0 reactions 0 assignees View on GitHub
cabal-install: cmd/build re: user experience
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.