Node.js and io.js leaders are building an open, neutral Node.js Foundation to support the future of the platform
Just a couple months ago a variety of members of the Node.js and io.js community announced they would discuss establishing a neutral foundation for the community. The Linux Foundation has since been helping guide discussions with contributors, developers, users and leaders in these communities, increasingly expanding the scope of discussion to more stakeholders. Node.js and io.js have a long, complex history and the facilitated discussions have brought together key leaders to focus on what the future might mean for these technologies.
A lot of progress has been made in just a few short months, and we're entering the final stages of discussions and decisions that will guide the projects forward. Most recently the io.js TC voted to join in the Foundation effort and planning is already underway to begin the process of converging the codebases. The neutral organization, or foundation, will be a key element of that work and has been discussed at length by those involved. 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.
Foundations can be used to support industrial-scale open source projects that require a legal entity to hold assets or conduct business (hiring, internship programs, compliance, licensing trademarks, marketing and event services, fundraising, etc). Ultimately foundations enable communities to participate in large scale collaboration under agreed upon terms that no one company, person or entity can change or dictate.
It's important to note that while critical, 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. If you haven't already, please take a look at Mikeal Rogers blog post. The Node.js community has needed an avenue for other companies to participate as equals in a neutral field. rowing a community and widening the adoption of a technology all takes resources and a governance model that serves everyone involved. A foundation becomes the place where participants can meet, agree on paths forward, ensure a neutral playing field in the community and invest resources to grow the community even more. It can also allow for broad community engagement through liberal contribution policies, community self organization and working groups.
At The Linux Foundation, we've helped set up neutral organizations that support a variety of open source projects and communities through open and neutral governance and believe the future is bright for the Node.js and io.js communities. The technology being created has incredible value and expanding use cases,which is why getting the governance model and defining the role of the Foundation to support the developer community is the number one priority.
While I'm a relative "newbie" to both the Node.js and io.js communities, I've been able to identify with our team at Linux Foundation a number of opportunities, as well as very common challenges in both communities that relate to other projects we've helped before. What we've found is the challenges the Node.js and io.js communities have are not unique; many open source projects struggle with the same challenges and many have been successful. As I've previously written on Linux.com, there are five key features that we see in successful open governance:
- open participation
- open, transparent technical decision making
- open design and architecture
- an open source license
- an open, level playing field for intellectual property.
I think these same features apply to the case for a foundation in the Node.js and io.js communities. The io.js project has certainly been founded on many of these principles and has taken off in terms of growing its developer community. Many in the io.js community joined because they felt these principles were not present elsewhere. For all of these reasons, we leveraged the governance provisions from io.js to draft proposals for the technical community governance.
Now I'd like to share specific next steps for establishing the Node.js Foundation (all of this is of course subject to change based on input from the communities). We've started with a core group that offered advice on how to address key governance issues. We've expanded the circle to the technical committees of both communities and are now taking the discussion to the entirety of both communities.
Draft technical governance documents are up for review and comment.
The Foundation Bylaws and Membership Agreements based on our LF templates are available for companies to sign up as members. There is no need to sign any agreements as a community developer. If your company is interested in participating, now is the time to sign up.
Hold elections for the foundation's Gold and Silver member Board Directors and the Technical Steering Committee elects a TSC Chair. The process typically entails 1 week of nominations, 3-5 days of voting and then announcing the election winners.
Set up an initial Board meeting, likely mid-June. The first Board meeting will put in place all of the key legal documents, policies, operations, etc that are being discussed (the reason for wrapping up edits on May 8).
Initiate TSC meetings under the new foundation by upon resolution of both technical committees. The TSC will meet regularly on open, recorded calls. Details will be posted on a foundation wiki or page. The combined io.js and Node.js TCs have been meeting roughly every other week to work through the Convergence planning.
May 25 - June 5: Announce the new foundation, members, initial Board Directors (elections may be pending), TSC members and any reconciliation plans agreed to by the TSC (if ready).
And so I ask both communities to review the ideas being proposed, including how best to align goals, align resources and establish a platform for growing adoption of an amazing technology the development community working to build. I would like to thank the people building this future. Some you know; others you do not. It takes a lot of personal strength to voice opinions and stand up for new ideas in large communities. I appreciate the candor of the discussions but also ask you to seek out those putting forth ideas to understand them and to question them in a constructive dialogue. This community has another decade or more ahead of it; now is the time to set the right foundational elements to move forward.
When I joined Joyent last summer I quickly realized that, despite the huge success of Node.js in the market and the tireless work of many here at Joyent, there were challenges in the project that we needed to address. Through discussions with various project contributors, Node.js users, ecosystem vendors and the Node.js Advisory Board, it became clear that the best way to address the concerns of all key stakeholders (and the best thing for Node.js as a whole) was to establish the Foundation as a path for the future.
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. We welcome community review and feedback on the draft governance documents.
With the recent vote by the io.js TC to join the Node.js Foundation, we took a giant leap toward rebuilding a unified community. @mikeal, @piscisaureus and others have done an excellent job evangelizing the value of the Foundation, and it’s great to see it have such positive impact this early in its formation.
In the user community, enterprise adoption of Node.js has skyrocketed with an abundance of success stories. But behind every successful project is someone who is betting their career on the choice to build with Node.js. Their primary “ask” is to de-risk the project. They want stable, production-grade code that will handle their technical requirements and an LTS that matches what they get from other software. The Foundation will get that right. Donations to the Foundation will provide the resources we need to broaden and automate the necessary test suites and expand coverage across a large set of platforms. We are working now on codifying the LTS policy (comments welcome here) and will establish the right 6-9 month release cadence with rigor on backward compatibility and EOL horizon.
Users also want the project to be insulated from the direction of any single company or individual. Putting the project into a foundation insulates it from the commercial aspirations of Joyent or any other single company. It also facilitates the creation of the vibrant vendor ecosystem around Node.js that users want. Users want to see relevant innovation from a strong group of contributors and vendors.
The vendors themselves have a clear set of requirements that can best be addressed by the Foundation. They want a level playing field and they want to know they can monetize the contributions they make to the project. We need a vibrant ecosystem to complete the solution for the users of Node.js and drive additional value and innovation around the core project. The ecosystem is the force multiplier of value for every piece of technology and Node.js is no exception.
Finally, in addition to risk mitigation, transparency, neutrality and an open governance model, the Foundation will provide needed resources. Over the past few years Joyent and other members of the community have invested thousands of hours and millions of dollars into the project, and much has been accomplished. Going forward, Joyent will continue to invest aggressively in the success and growth of Node.js. But now, with the support of new Foundation members, we will be able to do even more. Investments from new members can be used to expand coverage of testing harnesses, establish API compatibility tests and certifications, extend coverage for additional platforms, underwrite travel expenses for technical meetups for core contributors, build training programs for users and developers, expand community development efforts, fund full-time developers and more.
I’m convinced the Foundation is the best vehicle for balancing the needs of Node.js users, vendors and contributors. The project has a brilliant future ahead of it and I am more optimistic than ever that we can work together as one strong community to secure that future.
2015.05.13, Version 0.12.3 (Stable)
V8: update to 18.104.22.168
uv: upgrade to 1.5.0
npm: upgrade to 2.9.1
V8: don't busy loop in v8 cpu profiler thread (Mike Tunnicliffe)
V8: fix issue with let bindings in for loops (adamk)
debugger: don't spawn child process in remote mode (Jackson Tian)
net: do not set V4MAPPED on FreeBSD (Julien Gilli)
repl: make 'Unexpected token' errors recoverable (Julien Gilli)
src: backport ignore ENOTCONN on shutdown race (Ben Noordhuis)
src: fix backport of SIGINT crash fix on FreeBSD (Julien Gilli)
Source Code: http://nodejs.org/dist/v0.12.3/node-v0.12.3.tar.gz
Macintosh Installer (Universal): http://nodejs.org/dist/v0.12.3/node-v0.12.3.pkg
Windows Installer: http://nodejs.org/dist/v0.12.3/node-v0.12.3-x86.msi
Windows x64 Installer: http://nodejs.org/dist/v0.12.3/x64/node-v0.12.3-x64.msi
Windows x64 Files: http://nodejs.org/dist/v0.12.3/x64/
Linux 32-bit Binary: http://nodejs.org/dist/v0.12.3/node-v0.12.3-linux-x86.tar.gz
Linux 64-bit Binary: http://nodejs.org/dist/v0.12.3/node-v0.12.3-linux-x64.tar.gz
Solaris 32-bit Binary: http://nodejs.org/dist/v0.12.3/node-v0.12.3-sunos-x86.tar.gz
Solaris 64-bit Binary: http://nodejs.org/dist/v0.12.3/node-v0.12.3-sunos-x64.tar.gz
Other release files: http://nodejs.org/dist/v0.12.3/
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ff48b814cdc54a1df10c60a476b2f6833549551a node-v0.12.3-darwin-x64.tar.gz a3a808aff450aa04f535fec9517faeca01492e15 node-v0.12.3-darwin-x86.tar.gz bb07dacb0802386719cf619125546ea483f4eb93 node-v0.12.3-linux-x64.tar.gz 4d5c42df29277526ed32d866d7b2491242706c14 node-v0.12.3-linux-x86.tar.gz df6a9b56c2be1a1c423786917eccaac10c786d3f node-v0.12.3-sunos-x64.tar.gz 124324b3387993512a111fed776d979a89254b1d node-v0.12.3-sunos-x86.tar.gz 410d37d74775bf0401b06ecc01f71d181c9c99e6 node-v0.12.3-x86.msi 8a64eab15c0c0c74d480f75c5362c06ce3e5e1ac node-v0.12.3.pkg b0b02a254c06ebf2b1695900181baa3ffd206584 node-v0.12.3.tar.gz 38901d7f5738f39ed69312215a133e3007300be2 node.exe 4f2d0b3214b4ded6dac35144f22610db2f1be438 node.exp f3d8801fc939fe3178311fe4f7aa23d7cca4a82a node.lib 8f71bbb0353bf56bbafabe7b32719e0534386e02 node.pdb 30b4bbcf7fdf02647e99bdfa3724329a61bf6328 openssl-cli.exe 42c3329db1002b48749c1519d17b51418045f850 openssl-cli.pdb 3677034221eeb300d7cd0cf2aaf3d172ab05fd11 x64/node-v0.12.3-x64.msi 044c4b67a835ca3873df3844a074230a825aae5f x64/node.exe a7e22fa741c1ab8fcfe7c51610dad63b666a93f9 x64/node.exp 5a1fcc12bccd5fc61d63381c02b0c676e509f18c x64/node.lib af0451dd1db225c7c46e5ace67d8de1cacf66349 x64/node.pdb 88a06524bac25b80e776ab4f393df175fa5d6940 x64/openssl-cli.exe e29b5871e9822a74dc2ea34eb3771a4a870f307d x64/openssl-cli.pdb -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJVVAmKAAoJEFCjBR+IjGKN/80P/ilLD8gRvTw8bY+6QumWnjJx 4pOcthnjp1z4Dh/0zdKN82vDaogXfzjhE0ZxwwJboWKkN6ME6tc+ayAeEEX3Dtia OUIUSHRx5+MlrcdBjE61TPdfUiiKRh7b185iyDotD5En41zcVhG+QWC72MeMo1aP uF0lwO067gWJojypl75IFSlgnT3GtUWL1ojY4rCu8Cz0mzaED0OjdiZ4pJGg5c0y hcwjwHZ73c9pXwzDFRjUH2BruWBYI7bWtyh7vMfNMTEOkjSEYLM1OX7fVeBBbSE4 RLTxjuZnQXx1GWIfjU1mWbjAOPOO/ON95IrFzD+EY4eh1kYK4H0Bq3Mz0eR8oxlt Ird4X79JbghmsvLVX2KInCIixdJMNhI5ahWpHwMnAKJxlCSbxGJwIWkxHWFNCGs7 j62pFZqPhB3e6Z8DTADOYam3ZzIW0BN33W61u26I4yehOpKVbSGyiwkfpp9vzoKJ uxqiaWFeh4ytJOtnr4zJMe80Tgz5BllvNy4t8SIEUEJZDNFvBQqFamj5rol9CCvJ DzVm2NOXAmHM6DVLkUofYOB6fc517NLt3c0j8Wm8TXbxNGrQlaEjSCB4CY2n1BDB BNf/te7frV4emtwE3R5+UA+3xgZkdmUiniguGigceIqupKH3O7wlTTLk0N3JNssd MvSLfPrzlji20kOJojKr =N8jX -----END PGP SIGNATURE-----
In February, we announced the Node.js Foundation, which will steward Node.js moving forward and open its future up to the community in a fashion that has not been available before. Organizations like IBM, SAP, Apigee, F5, Fidelity, Microsoft, PayPal, Red Hat, and others are sponsoring the Foundation, and they’re adding more contributors to the project. The mission of the Foundation is to accelerate the adoption of Node and ensure that the project is driven by the community under a transparent, open governance model.
Under the aegis of the Foundation, the Node.js project is entering the next phase of maturity and adopting a model in which there is no BD or project lead. Instead, the technical direction of the project will be established by a technical steering committee run with an open governance model. There has been a lot of discussion on the dev policies and governance model on Github. As we move toward the Foundation model, the core team on Node.js is already adopting some of these policies as shown here.
As we open a new chapter with the Foundation, we also close a remarkable chapter in Node.js, as TJ Fontaine will be stepping back from his post as Node.js Project Lead. TJ has come to be an integral member of our team, and his contributions will have long-lasting effects on the future of Node.js. Although he will not be as active, TJ will continue to act as a resource for helping the Node.js project as needed.
I would like to thank TJ for his time and contributions to Node.js and to Joyent. I have witnessed firsthand the kind of impact he can have on a team, and his technical chops will be missed. As we take this next major step in the growth of Node.js, we wish TJ luck in his future endeavors.