Dolt is an open source database that supports Git-style versioning. DoltHub is a place on the internet to share Dolt databases. Dolt is collectively our team's first major open source endeavor. We're learning as we go. We recently ditched our Contributor License Agreement (CLA). We think our reasoning can help other open source projects so we'll share it here.
What's a Contributor License Agreement?
A Contributor License Agreement or CLA is a legal agreement an open source contributor signs before you accept his or her code into your project. Generally, CLAs assure the contributor assigns copyright to the code he or she contributed over to the project maintainer beyond the rights transferred in the project's license. This allows the project maintainer more flexibility to change the license to the code in the future.
We wanted the least restrictive CLA possible, did a bit of online research, and came up with this. We generated it using the tool at contributoragreements.org. We used cla-assistant to integrate with GitHub. Before accepting a Pull Request (PR), GitHub required the contributor to sign the CLA.
Why did we have a CLA?
The internet told us we needed a CLA. There are a few voices in the wilderness crying out that you don't need a CLA but the consensus seems to be that you do. Most popular open source projects you run into on GitHub have one.
We thought our CLA was protecting us from being sued by our contributors if our project became popular at some later date. We weren't sure what we would be sued for, just that we would be sued. So, we decided to err on the side of caution.
We're not lawyers. Most lawyers are conservative. Finding a good open source license lawyer who is going to swim against the tide and advise you to not do more lawyering is unlikely.
Why did we ditch our CLA?
Well, 9 out of 10 potential contributors did not sign it. Contributors either rejected the premise or just abandoned their Pull Requests at the CLA step. CLAs are just not an open, welcoming environment for people trying to help you out. Asking for a CLA on a small PR is like asking for a prenuptial agreement on a first date. Why are you lawyering up? We just met.
What were we trying to gain anyway? Upon digging into the Apache 2.0 license we were using, both the contributor license agreement and Apache 2.0 granted copyright, patent, and redistribution rights to the code with limitations on liability. We're still not sure what additional protections we get from a CLA. It's possible the CLA we chose granted us less rights than Apache 2.0!
So, the harm of the CLA far outweighed any benefits as far as we can tell. We kicked our CLA to the curb last week and now you can contribute to Dolt under our Apache 2.0 license.
We're biased but we think Dolt is a great project to dig into if you are an open source contributor. Dolt is written in Go. Dolt's interface is modeled after Git and MySQL, two open source projects you know and love. Pick a Git command or MySQL function we haven't implemented yet and send us a PR. No CLA required.
If you're not quite there and just want to chat with us about open source or other topics, come hang out with us on our Discord.