[Hackage] #788: Optionally exposed modules / APIs should be banned

#788: Optionally exposed modules / APIs should be banned ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.8.0.6 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- It is a deliberate decision that packages cannot depend on package + flag combinations, only on packages. The point is that flags are not supposed to change the API of a package. This needs to be enforced. Consider a real example (from Chart package: http://hackage.haskell.org/packages/archive/Chart/0.14/Chart.cabal) {{{ if flag(gtk) build-depends: gtk >= 0.9.11 exposed-modules: Graphics.Rendering.Chart.Gtk }}} The criterion package depends on Chart and imports `Graphics.Rendering.Chart.Gtk` meaning that it breaks if you build Chart with the gtk flag turned off. The solution is that Chart should be prevented from conditionally exposing modules. We should add a QA check that looks for exposed modules that are conditional on a flag. It is annoying but somewhat less bad for modules to change between platforms. Should it be a hard failure or just a warning? -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/788 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#788: Optionally exposed modules / APIs should be banned ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.8.0.6 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- Changes (by lemming): * cc: cabal@… (added) -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/788#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#788: Optionally exposed modules / APIs should be banned ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.8.0.6 Severity: normal | Keywords: Difficulty: unknown | Ghcversion: Platform: | ----------------------------+----------------------------------------------- Comment(by elga): * [http://www.releve-identite-operateur.fr/rio-bouygues.html rio bouygues] -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/788#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects
participants (1)
-
Hackage