Moritz Angermann <[email protected]> writes:

> Alright let me add some example that is really painful with submodules.
>
> Say I have a custom ghc fork angerman/ghc, because I really don't want
> to overload CI with all my stupidity and I *know* I'd forget to mark
> every commit with [skip ci] or something.
>
> Now I need to modify a bunch of submodules as well, say
> - libraries/bytestring
> - libraires/unix
>
> And next I want to have someone else collaborate on this with me, either
> for testing or contributing or what not.
>
> So I'm going to give them the following commands to run:
>
> git clone --recursive https://gitlab.haskell.org/ghc/ghc
> (cd ghc && git remote add angerman https://gitlab.haskell.org/angerman/ghc)
> (cd ghc && git fetch --all)
> (cd ghc/libraries/bytestring && git remote add angerman 
> https://github.com/angerman/bytestring && git fetch --all)
> (cd ghc/libraries/unix && git remote add angerman 
> https://github.com/angerman/unix && git fetch --all)
> (cd ghc && git checkout angerman/awesome/sauce)
> (cd ghc && git submodule update --init --recursive)
>
If you pushed your bytestring and unix changes to your gitlab account
then this wouldn't be necessary. The fact that we use relative paths
would actually work to your advantage.

My current thinking is that the fix-submodules script run by CI should
do the following for each submodule:

 * If the branch has changed the submodule then do nothing (leaving the
   submodule URL as relative; this ensures that a user can push their
   submodule changes to their fork of the submodule on GitLab and things
   will "just work"

 * If the branch has not changed then rewrite the submodule URL to point
   to gitlab.haskell.org/ghc/packages/.... This ensures that CI will work
   for contributors making non-submodule changes in their GHC forks.

Cheers,

- Ben

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to