haskell / haskell/cabal

Usefulness of releasing `cabal-install` the library

Open
#12,326 3 comments 0 reactions 0 assignees View on GitHub
type: discussion type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

Summary: `cabal-install` API is big, unused, is holding us back. Should we axe/trim it?

---

During the release of `3.18.2.0`, a number of PRs (e.g. #12289) were not backported because they break `cabal-install` API.

While we should be extra careful with `Cabal` and `Cabal-syntax`, how much damage does breaking `cabal-install` API causes?

Reverse dependencies for `cabal-install` are: `cabal-add`, `cabal-hoogle`, `cabal-matrix`, `guardian`, `hackage-revdeps`, `hix`, and the memetic `acme-everything`.

`cabal-install` API is quite wide, with ≃140 exported modules. Do we need them all? Can we axe most of it?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the exported modules of the cabal-install library and the listed reverse dependencies: cabal-add, cabal-hoogle, cabal-matrix, guardian, hackage-revdeps, hix, and acme-everything. Determine which API is actually used and whether trimming it is feasible; done would require an agreed scope for removing or retaining modules, but the issue does not name specific files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
build-system, cli, developer-experience
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.