Why would I ever need to sign such s thing? If I contribute to an open source project, isn’t it obvious that I agree to publish my code under whichever license the project is published under?
Why would I ever need to sign such s thing? If I contribute to an open source project, isn’t it obvious that I agree to publish my code under whichever license the project is published under?
They can remove it from their repository but once you have a copy with a GPL license (maybe also MIT but not sure) they cannot revoke it. The GPL license says explicitly that it cannot be revoked just like this.
From the GPLv3:
2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.
And as you say, the further additions might then be proprietary.
Note that there might be licenses around which can be revoked or terminated. Many proprietary licenses can be terminated. Also common open-source licenses have clauses which allows to be terminated them under certain conditions. For if you violate the license terms, the GPLv3 is terminated for you (but not for others):
8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License [...]
I think it is generally helpful to understand the fundamental mechanism behind licenses. They common licenses used for open-source software are all build on the ‘copyright law’. Copyright law basically forbids you to copy information which is subject to copyright law (music, movies, texts, computer programs, …). The license is a statement which explicitly permits you to copy the information under certain conditions. In case of the GPLv3 one of the conditions is that you publish your changes with the same license terms.