Node.js, the JavaScript-based server that commands a strong developer audience, has been open source from the beginning. It's about to open up a little more.
When developers contribute code to an open source project maintained by a corporation or foundation, they typically pass control of the donated code's copyright to the steward company or give it an explicitly irrevocable license to use the contribution. Such arrangements are usually made through a contributor licensing agreement (CLA).
But not all open source stewards work that way. The latest addition to that list is Joyent, the corporation that develops Node.js. Joyent has decided to dispense with the CLA for Node.js altogether.
What brought this change on? Developer feedback, mainly. According to TJ Fontaine, project lead for Node.js, the issue surfaced time and again when talking to people in the Node.js development community. Fontaine found that "having to sign the CLA could at times be a stumbling block for a contribution."
On hearing this, Bryan Cantrill, CTO at Joyent, decided the CLA had outlived its usefulness. not only because of the barrier it presented to would-be contributors, but because there were other projects within Joyent -- Illumos and SmartOS -- that had no CLA. Ditching the CLA for Node.js would bring it into line with Joyent's other projects.
CLAs ensure that an open source project can be distributed under the auspices of an open source license by having any copyright or patent interests for contributions assigned to the owner of the project. Many existing software foundations that govern open source projects, such as the Apache Software Foundation, have their own CLAs. Others are maintained by corporations that have both open source and proprietary products, such as Oracle.
CLAs vary in terms of what they require of contributors; not all require that contributions have their copyrights transferred. Canonical, creator of the Ubuntu Linux distribution, uses a Harmony Contribution Licence Agreement that states the contribution's copyright continues to rest with the contributor, and Canonical is given free license to reuse the contribution.
In Cantrill's opinion, the mere existence of the CLA is an artifact of an older era of open source. "In the last five years, after the rise of GitHub, there's a lot more open source out there and a lot more people contributing to a lot more things. This has all accelerated the cross-pollination of projects, and engineers contributing to projects," he said. "In the face of this, the CLA looks long in the tooth: before anyone can contribute, they have to consult their legal department, who will then redline it."
To that end, Cantrill doesn't believe the items covered by a CLA matter as much anymore to modern developers. "The value added by a CLA is pretty minor," he said. "Much of what happens around these scenarios is arguably fictional, since there's never been a case where they actually happened. And they clearly do slow down one's ability to contribute."
InfoWorld's Simon Phipps sees a problem with CLAs: They have an unbalancing effect on the community around the project. "The presence of a 'contributor agreement' that involves copyright aggregation may be a warning sign that the community using it has one member who is more equal than all the others."
In Joyent's case, the company wants to represent itself as the top-dog sponsor of the project, but also be honest about it and do it right. "We would rather be upfront about our leadership, and explain our principles for Node, and exert that leadership honestly and directly by having Node remain explicitly Joyent sponsored," said Cantrill.
Cantrill asked himself whether the CLA needed to be a part of that process, and in the end found the CLA wanting. "What does [the CLA] buy us, and what does this potentially cost us? And the conclusion that we came to was that it was costing us more than it was buying us."
One fatct that isn't changing, both Cantrill and Fontaine affirm, is the licensing for the software. V8 was licensed under the highly liberal MIT license. as was Node.js -- and both will remain that way.
This story, "Joyent makes it easier to contribute code to Node.js," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow InfoWorld.com on Twitter.