"This release represents countless hours of hard work encapsulated in both the Node.js project and the io.js project that are now combined in a single codebase," the Foundation said in a technical blog post announcing the release.
A number of major contributors to the Node.js open source project forked the code as io.js in December 2014 over conflicts with Joyent, Node.js's original parent company, regarding the project's governance model.
The io.js developers felt the code should be maintained by a formal technical committee, and that no single company should wield undue influence over it.
For a while, it looked as though Node.js and io.js would fly off on different trajectories. But the tensions eased when Joyent agreed to hand the reins of the Node.js project to an independent foundation created by a number of industry players.
In June, the two groups announced that they had mended their differences and would work to re-merge the code of the two projects – with a little help from the Linux Foundation, which now oversees the Node.js Foundation.
Tuesday's release of version 4.0.0 represents the first fruits of this effort, but it also brings a number of important changes to the Node.js project, both technical and in terms of governance.
One thing Node.js developers will notice right away is the version number. The last release of the framework was version 0.12, so the numbering has taken quite a leap. That's because the project's versioning will now conform to the Semantic Versioning (SemVer) specification – as did io.js – making it saner and more predictable.
In addition, Node.js now has first-class support for ARM processors, including the 64-bit ARMv8 architecture. You can see a full list of changes from the old version in the technical blog post, here, and there's a list of changes that can break old code here.
On the governance side, although the Node.js maintainers say they won't be introducing any breaking changes within the 4.x branch of the code, they have begun work on a plan to offer long-term support (LTS) releases of the framework.
The idea, as of now, is that there will be a new LTS release every 12 months and they will each be actively maintained for 18 months. After the 18 months is up, they will enter "maintenance" mode for another 12 months, during which only critical bugs and security vulnerabilities will be fixed. More info on the proposed LTS policy is available on GitHub, here.
If all goes according to plan, the Node.js Foundation plans to ship its first LTS release in October. At the same time, work on the 5.x branch of the project will begin. ®