haskell / haskell/cabal

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

Open
#6,569 1 comment 0 reactions 0 assignees View on GitHub
cabal-install: cmd/haddock type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

**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](https://user-images.githubusercontent.com/1394391/75738327-1fc81b80-5d56-11ea-8cfc-dc7b93195441.png)
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**
- Linux, OSX
- `cabal-3.0.0.0`, `ghc-8.6.5`, `haddock-2.22.0`

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.