haskell / cabal

Official upstream development repository for Cabal and cabal-install
https://haskell.org/cabal
Other
1.62k stars 691 forks source link

haddock-for-hackage doesn't hyperlink types that are declared in "sibling" libraries #6569

Open AlexeyRaga opened 4 years ago

AlexeyRaga commented 4 years ago

Description I have a multi-project that contains cabal.project with multiple Haskell project inside. My cabal.project looks like:

packages: .

When I build it with cabal v2-build all --enable-documentation --haddock-for-hackage the all the documentation tarballs are built in dist-newstyle, however the types from "sibling" libraries are not hyperkinked.

An example: image Here Range is coming from one of the "external" packages (from Hackage), and it gets hyperlinked. But LookupKey and FeedLookup are coming from a "sibling" library and they are not hyperlinked.

When I omit --haddock-for-hackage the everything is hyperlinked as expected, but, of course, no tarball is generated and, from my understanding, the directory structure of these generated docs is not suitable for Hackage.

To Reproduce Steps to reproduce the behavior:

  1. Have a repository with multiple Haskell projects sitting under an umbrella of one cabal.project
  2. Reference one project from another and use its types in an exported function
  3. Build all projects with cabal v2-build all --enable-documentation --haddock-for-hackage
  4. Look at the documentation and observe that types from a "sibling" library are not hyperlinked

Expected behavior I would expect that, since I use all, the documentation is generated assuming that all the referenced libraries are going to be uploaded to Hackage (otherwise it wouldn't work anyway?) and all the types within that multi-project are hyperlinked.

System information

gbaz commented 3 years ago

related/dup? https://github.com/haskell/cabal/issues/7068