NOTE: I moved this post from Consolidating the 71 GitHub repositories to simplify maintenance and contribution because I think it is a different matter (albeit related) that should be in a separate thread.
The normal quick contributor just would like to do a quick patch of the documentation, or some small bug with a one-line change, etc. The first thing that user would do is to fork the swipl-devel repo in his github account. But we make it very difficult after that.
Here is what happens to that contributor who has forked swipl-devel in his github user account:
$ git clone https://github.com/someuser/swipl-devel Cloning into 'swipl-devel'... remote: Enumerating objects: 184191, done. remote: Total 184191 (delta 0), reused 0 (delta 0), pack-reused 184191 Receiving objects: 100% (184191/184191), 80.62 MiB | 3.26 MiB/s, done. Resolving deltas: 100% (147549/147549), done. $ cd swipl-devel $ git submodule update --init Submodule 'bench' (https://github.com/erlanger/bench.git) registered for path 'bench' Submodule 'debian' (https://github.com/erlanger/distro-debian.git) registered for path 'debian' Submodule 'packages/PDT' (https://github.com/erlanger/packages-PDT.git) [....submodule registration...] Submodule 'packages/zlib' (https://github.com/erlanger/packages-zlib.git) registered for path 'packages/zlib' Cloning into '/tmp/swipl-devel/bench'... Username for 'https://github.com': <<<--------- LOOK HERE
Uhh? It is asking for the user name? The user who just wants to make a one-line change will simply say: “why is it asking me for the user name? This is too hard I’ll do it sometime later”, the end result: we’ll never get the contribution.
The more persistent user will start googling around, and figure out that it is asking for the user name because of the way
.gitmodules is set up. Then he will figure out an hour later, that he has to change
.gitmodules the way it is described in this PR. This is why travis can’t build SWI-Prolog without the patch in the PR.
The reason why Jan has never experienced this is because he is the owner of the repo.
Jan, you would see the above if you fired up a VM, fork swipl-devel from a new github account, and try to make a one line patch as if you were not the author of the project.