This week I’ve been trying to pare down the list of RSS feeds and other media sources that I follow. In the past I used to run a curated link blog around distributed systems and related technology news. I still follow many of the primary sources I used back then even though they don’t really add any value to any of the things I’m working on now. So I have been cleaning up my RSS feeds and trying to find other curated information sources that filter out the noise to surface more high-value information.
Unfortunately, a lot of the curate sources today don’t natively support RSS. Instead of using a technology that was explicitly designed to watch for updates and provide notification has been largely replaced by email mailing lists. That really bums me out. Thankfully tools like Newsblur and Omnivore can receive email newsletters and turn them into RSS feeds, but it frustrates me that it’s necessary to jump through these extra hoops to get news and information into the format I want.
After reading more of the responses to Hashicorp’s decision to relicense their software under a non-free, non-open source license, I think I can better express why this irritates me so much. In short, it’s the willful violation of the open source social contract. A lot of people have drawn a comparison to Meta’s Llama license, which has a similar non-compete rider as Hashicorp’s version of the Business Source License (BSL), but I think this is a bit of a straw man. Meta never released their project with a fully open source license, and therefore never “signed” the (unwritten) open source social contract. Hashicorp on the other hand did. If you look at the contributors list for Terraform you’ll see over 1700 individual contributors, most of whom have never worked for Hashicorp. These people freely contributed to Terraform with the expectation that they would be able to continue to freely use the software under the terms of the open source license now and in the future. (That’s what I mean by the open source social contract) In the beginning, when Hashicorp was a small company and didn’t have any traction in the market, they were more than happy to accept these contributions as it was useful to help them build a community and a market. Fast forward to now, Hashicorp has relicensed the Terraform code and effectively “stolen” these contributions. I say “stolen” because legally they are covered by their Contributor License Agreement (CLA).
The CLA is what made this possible. Most CLAs are designed so that outside contributors will surrender the ownership of their code and assigns the copyright to the corporation that owns the project. This is done so that the company can claim ownership over all the code and is what allows them to unilaterally relicense the project. Without a CLA, they would have to go to each individual contributor and get their permission in writing before they could relicense a project like this.
They accepted free labor in the beginning under the terms of the CLA, then once they had traction they stopped accepting outside contributions, and now they’ve relicensed everything with a proprietary license. Whether this was their intention from the beginning or not, it’s difficult to not view this as a rug pull. At this point, even if they were to walk back the license change I don’t think I could trust them as a vendor and a steward of these projects.
The big takeaway from this event, and the many others that have proceeded it, is to just say no to signing a CLA. If a project is unwilling to let the community of contributors own their code contributions, then they don’t deserve the benefit of outside contributions. Be wary of any project that forces you to sign over your copyright in order to have your contributions accepted.
As a response to Hashicorp’s license change, a group has formed to fork the last version open source version of Terraform and to continue work on it under the name of OpenTF. I’ll be watching this with interest to see if it is able to get traction. At this point it’s the only thing that would keep me interested in anything related to Terraform.