Breaking Changes
summary
Maintains NPM WebSocket libraries with 20 million downloads a week and traces concrete breakages: changing a numeric status to a string that breaks strict equality, array flatten semantics debate, the Node Buffer ambiguity fixed by splitting into Buffer.from and Buffer.alloc, and a zlib 2016 change causing DoS in permessage-deflate that propagated through Node. Covers practical mitigations: type- or container-specific APIs, explicit validation and examples, dependency tests, semver limits, and staged deprecation paths.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:30Context
- 1:33Disclaimer
- 2:03Breaking
- 7:25Objects
- 19:56Contracted arguments
- 22:05Side effects
- 23:51Errors
- 24:22Semantic Versioning
- 28:34Never Break Anything
- 31:55Communication
- 33:07Default values
- 34:49Adding errors
- 37:48Documentation
- 39:01Testing
- 39:53Conclusion
related talks
46mBreaking changes
39mNode.js - What's Next - Catalyzing Change in the Node.js Ecosystem
24mNode.js 12: A decade of Node.js
21mdotJS 2012 - Bert Belder
40mNode.js: Where are we now, where are we going?
37mNode.js Package Maintenance...
39mWe fail to follow SemVer and why it needn't matter
30mRefactoring large JavaScript codebases
