Skip to content

"configuration changed" is way too vague #10617

Open
@9999years

Description

@9999years
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 ElaboratedConfiguredPackages (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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions