Coffeescript 1.9.0 contains a backwards incompatible change.

Changed strategy for the generation of internal compiler variable names. Note that this means that @example function parameters are no longer available as naked example variables within the function body.

I know this, because it broke my production code.

I love coffee-script, I think it’s great. I don’t really care one way or the other about semver, but I think it’s necessary.

npm uses semver. If you want to publish your package on npm, you need to use semver. If you don’t want to use semver, use a different package manager.

Publishing your package on npm and not using semver is breaking a promise to your users. That’s a crummy thing to do, and it wasted a bunch of my life this evening.