lovedrama 2. lovedrama ^1.2.0 snuck into package.json 3. Day 2, Dev B: npm install installs 1.4.0 If lovedrama doesn’t follow semver, stuff works for A breaks for B If lovedrama follows semver, B uses things that doesn’t exist for A. So stuff works for B breaks for A.*
2. lovedrama author introduces lib hdd as a dependency with npm install --save hdd 3. hdd ^1.0.0 snuck into package.json 4. lovedrama no longer supports node 0.8 The npm bundled with node 0.8 is unaware of ^. It breaks with No compatible version found
avoid the "psychedelic mess" is to implement a constraint solver But so far no one is stepping up to do that work (patch welcome!) and even if there was a courageous volunteer to take this on, it would take some time to get right, and be a rather big change requiring quite a bit of careful review.