Some points I know:
- Contributors own copyright over their contributions, which means the author (= the owner of the repo and original author) cannot re-license the code (= change the license of the code) without asking every contributor.
- That's why some companies require you to sign a Contributor License Agreement which - easily said - transfers your rights to them, so that they can do what they want with the code (relicense, make proprietary, ...).
- When making changes to another repo (you've forked) do you release your changes under the license (usually a file called
LICENSEor similar) of that repo?
- If so there is one abnormality: If contributing to an MIT licensed project means you release your changes under the MIT license, this still does not mean the contributor has to be attributed in the new code base, but this is a requirement of the MIT license.
- If I fork a (MIT licensed) project where contributors contributed to it does this really mean I fork one project which is licensed under one MIT license or does it rather mean I fork one project licensed under multiple MIT licenses of all contributors? So is this rather splitting of a cake or can I consider the project a big block of a license?
I think a step-by-step explanation (from forking the repo until the Pull Request is merged) would be useful. Bonus points for any kind of metaphors.
This question has been cross-posted in open source Stackexchange as it overlaps.