How does node.js version numbers work and how do I ensure compatibility?

What is the versioning style of the project?

You should only be using even numbered versions: x.[even].z. These are all "stable" and bug fixes will be released to them (until the next minor version). Only the latest x.[even].z version is supported at any given time.

For compatibility, you should just look at the documentation. For example, for events: http://nodejs.org/api/events.html

Stability: 4 - API Frozen

That means you can be rest assured that the EventEmitter class will never change.

Then there's stuff like domains where no one is sure what they're doing, and you probably shouldn't be using it:

Stability: 1 - Experimental

Your best best is just to stick with Stability >= 3 features and not worry about compatibility between versions.

Also, there doesn't seem to be a strict release cycle.

Node has a two-track versioning system. Even-numbered versions (0.4, 0.6, 0.8) are stable, and odd-numbered versions are unstable. The stable releases are API-stable, which means that if you are using 0.8.1 and 0.8.2 comes out, you should be able to upgrade with no issues.

On the 0.9.x stream, any update may change the API, especially in parts of the system that are under active development. When the odd-version reaches a certain level of stability and maturity, it becomes the next even-version.

There is not a strict timed-release cycle. The primary maintainer of Node.JS is a guy named Isaac Schleuter and he has been very public about his goals and targets with node. He is also open to a lot of community input on this, so they run NodeConf and Node Summer Camp and some other events to gather input.

If you have time to really dig into the community, check out the NodeUp podcast and some of Isaac's talks to get an idea about the direction they are going and APIs.

You ask about version 1.0. As far as I remember, Isaac has a couple of specific things he wants to stabilize before going to version 1.0. In particular, I remember Streams and Buffers which have really become key to node's growth. (that's stated, this just from memory)