I would like to do this as an alternative to having a CLA (which was suggested to me in my previous question) that transfers all copyright over to me. Is this a good idea and are there any potential issues with this?
Inbound = outbound licensing is the community expectation, and is also codified by Github terms of service. You want inbound ≠ licensing. That is entirely possible, but you're on your own.
- make this difference absolutely clear to potential contributors
- collect agreement from each contributor for the more permissive inbound license
What you're doing is essentially a CLA, just implemented with an open source license for the rights that you receive.
Points to consider:
- if you want to be able to use your software as a whole under the MIT license, then you must not include any third party GPLv3 code in your project. Neither you nor your contributors can make use of GPLv3 code.
- contributors are probably unable to provide an MIT license because they are bound by the terms of the GPL. This is a bit of a subtle distinction, but it's important for your inbound ≠ outbound system to work. Otherwise, other people would also be able to use the contributions under the terms of the MIT license. Your CLA will have to clarify that you are the sole recipient of this MIT license.
I think that novel licensing constructions are a headache for everyone involved and should be avoided. Sane solutions include:
- just normal inbound = outbound licensing
- cathedral-style development where you do not accept community contributions
- a fair and straightforward CLA, e.g. from Harmony Agreements