Node.js and io.js Merge Under the Node Foundation
The io.js TC has voted to join the upcoming Node Foundation. The project will be named Node.js but it will be based on io.js’ repository.
Node.js was forked several months ago, and the new project called io.js saw its first release 1.0 in early January, 2015. While Node.js was forked before, this time was different: a number of top contributors left Node.js and started making pull requests for io.js. The community was split. Other than the fact that the number of commits to Node.js fell constantly during 2014, a trend that continued throughout 2015, the main reason for this fork was governance: some contributors were not happy with seeing Node.js in the hands of any particular company, and having to convince the project leader to accept every improvement to be made to the code.
io.js started aiming for “faster and predictable release cycles” and by merging the “latest language, API and performance improvements to V8” under an "open governance model". They started with 1.0 in January and soon enough they reached 2.0. The numbering scheme may not mean much, but the number of commits does: io.js has seen increased activity compared to Node.js, having a spike in January that surpassed all past activity peaks.
But the future of io.js was not clear, some community members wondering if they should step into the new boat:
Benjamin Lupton: This is the problem with IO.js. Is it a long time thing, or a short term thing? No one has the answer to that.
Yuri Soloviov: What I fear the most is that having N forks means N times more efforts, so it will slow down everyone.
Joyent reacted promptly, announcing in February the intent to create the Node Foundation led by a Technical Steering Committee (TSC), the initiative being backed by IBM, PayPal, Microsoft and the Linux Foundation. The foundation would solve the leadership problem mentioned by io.js committers. Scott Hammond, CEO of Joyent, invited the io.js Technical Committee (TC) members to a private meeting, proposing them to come back into the fold. After a few months of discussions, io.js TC members voted this week to join the new foundation.
According to io.js, the two projects will converge under the Node Foundation, using the Node.js name and based on the io.js repository, and will be provisionally operated by the “oversight of the joint Node.js and io.js core technical teams.”
In a recent post, Hammond presented his side of the story:
The biggest and most obvious challenge we sought to address with the Foundation was the friction that existed amongst some developers in the Node.js community. Historically, leadership ran the project fairly tightly, with a small core of developers working in a BDFL model. It was difficult for new people to join the project, and there wasn’t enough transparency for such a diverse, passionate community to have a sense of ownership. Consequently, a group of developers who wanted to operate under a more open governance model created the io.js fork. That team has done a great job innovating on governance and engagement models, and the Node.js Foundation’s models will be based on those policies to ensure broader community engagement in the future of Node.js. …
Reunification of the Node.js developer community remains an important goal of the Foundation.
Mike Dolan, Director of Strategic Programs at The Linux Foundation, which helped with the discussions between Joyent and io.js TC, remarked recently that when a “technology and community reach a level of maturity and adoption that outgrows one company or project, a foundation becomes a critical enabler for ongoing growth,” but added that an “open governance model does not guarantee success or growth. The io.js project has a strong developer community, for example, but to grow further needs a model to enable funding and investments in the project.” Among others, he advises both parties to finish up the governance documents, to hold elections for the Board of Directors and the TSC, and to announce the Node Foundation and its membership at the end of the May or early June.