haskell / haskell/cabal

Post-multilibs checklist

Open
#5,660 30 comments 5 reactions 1 assignee Claimed by @fgaz View on GitHub
meta: tracking priority: high :fire:
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

#5526 (multiple _public_ libraries) is in, but there are still a few things to add and polish

#### Visibility enforcement

* [x] **Add a visibility field to sublibraries** :fire: :fire: :fire: :exclamation: :exclamation: :exclamation:
* [x] add the field
* [x] update ghc-pkg
* [x] populate the field
* [x] enforce the field: #5848

#### cabal-install integration

* [x] Make the solver multilibs-aware #6039
* [x] Enforce visibility at the solver level #6047 #6836
* [x] Extend the compatibility to GHC<8.8 when using cabal-install #6836
* [ ] Handle installed packages
* [ ] Update `cabal init` to take into account sublibraries when populating build-depends

#### Tests
* [x] Add tests
* [x] positive (ghc>=8.8) (isssue #6409)
* [x] negative (all ghcs) (done in #5848)

#### Documentation

* [x] Update changelog 4d2ca5255c859821cd34e6c52f626b6edc9610a3
* [x] #6362 Also update the cabal spec changelog, which I forgot
* [x] #8364 Update the Cabal and cabal-install docs (can be adapted from [my post](https://fgaz.me/posts/2019-11-14-cabal-multiple-libraries/))

#### Bugfixes

* [x] #6038 (cannot depend on public sublibrary when the package does not contain a main library too)
* [ ] #8095 same but with `Setup.hs`/`Cabal` and installed packages
* [ ] #7375 (same as #8095??)
* [x] #5846 (boundless dependency fails to parse)
* [x] #6083 (edge case with the old syntax)
* [x] `mylib:{ } ^>= 42` syntax is accepted, though docs say it is not (#6083 related, makes sense to fix at the same time?) - fixedin 9b3686fb7c2bc1b7b9ea735d23f32cfe47c22353
* [x] #6281 (parse failure with mixins)
* [ ] #6358 Reconfiguration avoidance not affected by library visibility change
* [x] :fire: #7270 :fire: Cabal's simple solver may not pick up sublibraries unless --dependency is used?
* [ ] Deprecate `lookupDependency` in favor of `lookupInternalDependency` and maybe a new `lookupPackageDependency` that looks up all libraries of a package

#### Ecosystem changes

* [ ] Make hackage render sublibraries too
* [ ] haddock
* [ ] cabal #5949
* [x] hackage https://github.com/haskell/hackage-server/issues/1119
* [ ] Nix https://github.com/NixOS/cabal2nix/issues/539

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.