2017-12-18 17:01 GMT+01:00 Simon Peyton Jones via ghc-devs <
ghc-devs@haskell.org>:

> |  It's for technical reasons, and the strongest one being: GitHub doesn't
> |  allow us to establish strong invariants regarding submodule gitlink
> |  referential integrity for submodules (which I implemented a couple
> years ago
> |  for git.haskell.org).
>
> Interesting.  It'd be good to document what the technical reasons are.
> For example I don’t know what the strong invariants are. [...]
>

Me neither. :-] Looking at the repositories Wiki page, it seems to be
related to the fact that GitHub doesn't offer git hooks, which are used to
check the invariants. This leads to another question: Is it *really*
necessary to have the invariant checks implemented as a git hook? If you
use any kind of continuous integration, which GHC obviously does, one can
move the checks to e.g. CircleCI (or whatever CI is used). This is a
tradeoff: Doing it that way, you catch incorrect commits a little bit
later, but it makes the overall arcane repository magic quite a bit
simpler, probably removing the need for mirroring. This seems to be a good
tradeoff, but of course I might be missing some details here.
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to