Just because a build is stable (which is what 0.10.23 stable means) doesn't mean the APIs are stable (which is what 1.0.0 generally means).
For example, the streams API hasn't been deemed stable. The specific build is stable, but it's possible that the interface may radically change in the near future.
One might just want to assume that node.js never wants to build a stable API. They are constantly breaking backwards compatibility and committing to "stable" at this point seems unrealistic. If they'd ever release a stable version they'd suddenly have to backport fixes and care about keeping an API intact for something other than a few months. Like they will not be able to do that thing anymore where they dismiss all those who built upon 0.6 and don't get security updates unless they rewrite big portions of their code base and find new libraries to replace all those they use that have gone dark.
Have they at least committed to some kind of date range for a stable API?
It's kind of silly to worry about because all the various node.js libraries that so many people depend upon are either weekend fads that get abandoned, or moving at the same speeds and likewise breaking compatibility.
This should really be the top comment, as it explains the frustrations you will run into with this fantastic platform. I love async webservers and most of my dev is done on python Tornado but i built two projects on nodejs and experienced the above issues, so many people start projects and just abandon them, the quality of a lot of libraries are not good and then you get some really cool libraries. Everything changes really fast, so you really need to have your ear to the ground to make adjustments to your codebase. All in all, i had a lot of fun with nodejs but for serious dev, i am using Tornado, when nodejs fully supports backwards compatibility, then i will develop more longterm projects on it. I still believe that if you doing a simple crud api for mobile, the current node will work very well as it is so fast and the code will be easier to maintain.
Yes. One by one, I have been encountering issues with projects I've done in Node that are more easily fixed by rewriting in Python than by researching replacements for abandoned libraries that are breaking or dependencies that are not updated with the APIs they were written to interface with.
While semver is great for getting an overview of the stability of the API interface for a project, I think their guide is a great complement in that it helps people determine the stability of specific interfaces that someone might want to use. This is increasingly valuable as the API surface of a project becomes quite large (which is common for a framework).
What's the right metric? Pre 1.0 typically means the software is still in beta. I realize node.js is used by many sites and large sites, but if it is stable/reliable the versioning should reflect that.
Can you expand on that any further? I can't tell what you are trying to say, because my comment was made in awareness of Semantic Versioning.
While I support a de facto standard around the meaning of version numbers, you must judge a project's version number by the versioning rules the development team communicates. By the Semantic Versioning Specification's own guidelines, Node.js should be at least at v1.0.0, but the developers have decided against it. Therefore, when judging the stability and maturity of Node.js by the version number alone, you can only compare it to previous releases of Node.js.
In the "Semantic Versioning Specification", it's seems inconsistent when you look at #4 and #5 and compare it to rule #1 at the top. Changes in x (x.y.z) should be reserved for "when you make incompatible API changes", but the #5 in the spec forces you to change x (to 1) even in some situations where there may not be "incompatible API changes".
"In 1999, Slackware's release number jumped from 4 to 7. Patrick Volkerding explained this as a marketing effort to show that Slackware was as up-to-date as other Linux distributions, many of which had release numbers of 6 at the time, and Volkerding expected them to reach version 7 by the time of the jump."
From what I understand, 0.12 (odd numbers are used to test new features before the next even number release, and right now they are at 0.11) will be the last version before they go to 1.0
Does anyone know approximately how close we are to 0.12? I know 0.11.9 came out a few weeks ago, but I don't follow the community close enough to get a feel for how near the next stable branch is.
I reckon we'd move to 0.12 when there is a change that warrants a minor version bump. Whether or not there are such changes already in one of the development branches that are soon to be pulled into master, I do no know.