-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decide about Contribute License Agreement #4
Comments
I can give you the definitive answer: "It depends." 8-)
The real question is: which goal is more valuable to your project roadmap? Hopefully collecting a few more contributors without a CLA? Or ensuring that you might be able to better commercialize the whole work later by relicensing/dual licensing? CLAs with for-profit companies are indeed to be shunned in most cases. CLAs with long-established foundations are fine to use, because the industry can see that the FSF/ASF/PSF and the like use those only for their own legal risk management, and would never abuse the trust. CLAs with indivduals or small projects like this... who knows? Good luck in any case. |
You can also chose to accept contributions under a permissive license. You (and anyone else, too) can relicense those contributions at any point, without needing a CLA. Edit: Update to make my intent clearer. |
Very valid point. Thank you. |
Rather than using CLA for a webserver, and limiting probability of usage further I would suggest making base code OSS and provide support and other exclusive features
Since it's AGPL (and they uphold their side) "theoretically" the source for the fork will always be available for you to be able to copy and paste that code from if you want since it's in public domain. Also, since commercialization will only prove beneficial when project becomes popular enough, I would suggest having two different orgs one non-profit that maintains code and one for profit that adds more features and provides it as a service, also you can provide their services to improve the project more. |
I'm not sure how I feel about CLAs. On one hand, they seem to go against the open-source spirit. On the other hand, they take away the main developer's freedom regarding future commercialisation options. I've created this issue mainly to provoke some discussion and to have myself convinced one way or another.
So let's take two hypothetical situations:
There is no CLA
A developer works on the software and accepts contributions without a CLA. Unfortunately, at some point, he/she is bored with the project, or signs some serious non-compete at their $day_job, or just gets hit by a bus.
What can the community do? They need to fork the last available version and carry on.
There is a CLA and the software is available under some open-source license.
A developer works on the software, makes it successful and popular. At some point, they decide to commercialise it.
So he/she declares that they won't work on free versions anymore and changes the license.
What can the community do? They need to fork the last available open source version and carry on working on the project.
Unless I'm seriously mistaken, the MIT/Apache/GPL licenses cannot be taken away, and the last published version will always remain under the old license, with all the benefits. A CLA doesn't affect what the community can do when the owner decides to "pull the rug". And from the other side: the lack of CLA doesn't create any obligations for the owner. He/she can stop working on the project at any time for any reason.
In fact (and I admit it's a bit twisted logic), if I (as the owner) see some options to commercialise the project in the future, I'm more likely to work on it while it's still GPL. Writing the code is fairly simple. Making a project popular is much harder (and so is dealing with crappy PRs, users' entitlement, and such).
And even this assumes that I will get some valuable contributions. Most OSS doesn't get any, or gets something trivial. A very small fraction of OSS is actually developed by the community.
Then there is a question: why would anyone make a PR to contribute to the main repo? After all, they could just fork the repository, make the required changes, and use their fork forever. Instead, they prefer if it's the main developer that deals with maintenance pains. Admittedly, this was my reasoning for my contributions: I just didn't want another piece of software that I needed to maintain. I'm not sure if it's fair to ask the owner of the repo to give up his/her rights just because I fix the bug that hit me personally.
So, to summarise:
With CLA: fewer contributions but more commercialisation options in the future. Project may be developed towards being "more professional".
Without CLA: potentially more valuable contributions, but probably always remain a "pet project".
Any thoughts?
The text was updated successfully, but these errors were encountered: