Skip to content

Adopt cabal-add? #10272

@ulysses4ever

Description

@ulysses4ever

Describe the feature request
People often ask for a programmatic way to manipulate parts of the cabal file, especially w.r.t dependencies. A recent tool, cabal-add, delivers on the particular task. Should it be integrated into cabal proper?

Additional context
cabal-add (a tool adding entries in build-depends without ruining formatting in a cabal file) is being integrated into HLS: Bodigrim/cabal-add#7 This confirms my feeling that there's a user base for this feature, however partial this feature is.

I tried to read the implementation (it's reasonably small and clean). It juggles between [Field Position] and GenericPackageDescription like no tomorrow, starting from:
https://github.com/Bodigrim/cabal-add/blob/267eb6802477076b64568bff774aa7833bcbfa7b/src/Distribution/Client/Add.hs#L202-L210

... as is expected in the absence of a holistic solution for exact parsing (cf. #7544).

The core of it is three "algorithms" to solve the task (add a dependency) that spread across the spectrum: accuracy --- robustness (e.g. the first algorithm preserves formatting the best but is more fragile than the others)

Given that all of them are Maybe, I assume, the tool doesn't guarantee success...

Maybe we should wait and see how the HLS feature fares and what its users think?

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