Put 'haddock' in the 'ghc' repo

Vladislav Zavialov vladislav at serokell.io
Sat Feb 16 12:44:17 UTC 2019


Hello devs,

There appears to be no good workflow for contributing patches that
change both GHC and Haddock.

For contributors who have push access to both repositories, it is at
least tolerable:

1. create a Haddock branch with the required changes
2. create a GHC branch with the required changes

Then wait for the GHC change to get merged to `master`, and

3a. fast-forward the Haddock change to the `ghc-head` branch
3b. in case a fast-forward is impossible, cherry-pick the commit to
`ghc-head` and push another commit to GHC `master` to update the
Haddock submodule

Roundabout, but possible.

For contributors who do not have push access to both repositories,
each step is much harder, as working with forks implies messing with
.gitmodules, which arguably should stay constant.

To avoid all this friction, I propose the following principle:

* all SCC (strongly connected components) of dependencies must go to
the same repo.

For example, since GHC depends on Haddock to build documentation, and
Haddock depends on GHC, they must go to the same repo. This way, a
single commit can update both of them in sync.

All the best,
Vladislav


More information about the ghc-devs mailing list