A dual GPL-commercial license is the correct way to handle this. A more useful contribution to the license landscape would be to define a commercial sibling-license to the GPL that described how license payments would be disbursed.
A dual GPL-commercial license is the correct way to handle this. A more useful contribution to the license landscape would be to define a commercial sibling-license to the GPL that described how license payments would be disbursed.
I decided to go the GPL route, but am not currently accepting contributions. I've managed to successfully license the code under a companion license, which is doable since I'm the only copyright holder.
My thoughts are that there should be a contrib fork for major contributions that authors wish to maintain copyright over, but for minor contributions/bug fixes the author probably doesn't care and it would be better for everyone if the contribution was integrated into the core repository.
What if you die? What if you abandon the project? How can a fork of your project work with that if they want to change the license down the road? Copyright basically lasts forever now, so any choice about "assignment" will last forever.
Personally I really feel we need a solution that allows the current "maintainers" to have control over it. I don't really know what that would legally look like, but I've been hit by issues from open source copyright too many times to consider it a "solved problem".
Perhaps a new license "framework" that allows each contributor to say how they want to allow their contributions to be used in the future? I honestly don't know, but the current solutions are holding us back in some ways.
In any case this is worse if there are multiple contributors each owning their copyright, not simpler.
The real problem for me isn't major contributions, if these started coming in I may reevaluate my position. The problem is minor bug fixes where the complexities of acquiring another copyright holder outweigh the benefits of accepting the contribution.
As above, I don't have a good solution.
The easiest way to do this is under the umbrella of a foundation like ASF. But you could create an LLC or any other form of corporation with no income or assets other than the copyrights it holds, if you want. There would be at least some minimal annual registration costs etc.
Any framework that allows contributors to _individually_ set terms for their contributions is going to be pretty unworkable, as the actual terms for the whole product become the union of any term any contributor has ever set or something, a mess.
You can't relicense someone elses code. You dont have the right to do that.
If you fork this code, only your changes would be under MIT. So you would have a mixed-license project, and users would need to comply with both licenses.
If you don't want to use this license, you have to fork it from before the license change... giving up the changes that were made after the new license takes effect.
(As another commenter said,) sublicensing does not permit you to grant any rights under the new license that you yourself have not been granted under the original.