Nodejs for pythonists

Because SemVer. ;)

Real answer: using SemVer (X.Y.Z where X=major, Y=minor, Z=patch), you're supposed to bump your version accordingly:
* bump Z for bug fixes only
* bump Y for new features
* bump X for breaking changes

The Node.js environment lets you scope your versions: "~1.2.3" means "At least 1.2.3, but never 1.3.z". It makes sure you'll only get bugfixes and the scopes and APIs of your dependencies are always the same.

[semver.org](http://semver.org) is more complete and pretty self-explanatory, IMO.

Though sometimes shit happens, it's not a perfect world.