Though I know about the even/odd thing, it seems rather damaging to the platform to be announcing 'unstable' seemingly 'major' releases, don't you think? Why not Alpha? or Beta? or some other common convention? Ugh.
This is not a desktop app. The versioning requirements are different.
Many server systems use this convention as a way of embedding an extra bit of info (stable/unstable) for sys admins.
Many people are using Node to push boundaries in various ways, so they are using the unstable versions. I did this with 0.3, but 0.4 is good enough for the moment.
As you noted, even is the stable/production version and odd is unstable/development version. The goal is to get a number of changes in at once so that you can have a stable branch that's around for a decent amount of time. If you are making multiple changes before releasing a stable branch, how would you describe them? If they get libuv working properly, is that then from alpha to beta since it is now more stable? What if they then rewrite http.request and experiment with different APIs; is it still beta even though it is probably more unstable than the last release? Why not simply version the dev branch with every release, note the changes, and avoid the semantics?
With node and similar projects, notion of stable/unstable is closer to geological notions (earthquake) and applies more to version branches (continents) than individual releases (states).
0.4 branch is and should be stable, meaning we can build on it and they'll try not to make big changes that could break what you built.
0.5 branch is unstable in the sense anything could change, even features added in 0.4 or older although they'll need compelling reasons to do that.
Because they aren't trying to sell a product. This is an announcement directed towards developers and coders using node who wish to contribute by trying out new features. Calling it 'unstable' makes it clear what it is and what it isn't.
0.5 rips apart the whole event loop system and replaces it with a new one to support windows. It's much more unstable than 0.3 in that respect, which has mostly just seen API changes and feature additions.
I got too excited about child_process.fork before I read the description. I was imagining it would be like C where I can fork, setup the env and exec. That would probably be tricky and very ugly to implement, though..
However, you need to know what you are doing, otherwise you'll have multiple processes draining the same file descriptors which will give you some nice surprises : )
Wow, awesome. It shouldn't be hard to create a binding for execvp as well then. I found the pipe() binding, but I can't use those fd's with child_process.spawn if i want to open them as fd 3, 4, 5, etc in the child.
child_process.exec is different from n*x system exec. Node is still doing the fork()ing and exec()ing behind the scenes. Exposing those calls in node would give you direct access to the child process before executing your commands.
eg http://twitter.com/#!/search/nodejs%20unstable
Though I know about the even/odd thing, it seems rather damaging to the platform to be announcing 'unstable' seemingly 'major' releases, don't you think? Why not Alpha? or Beta? or some other common convention? Ugh.