The document discusses strategies for maintaining stable APIs in libraries to avoid breaking changes. It recommends upfront design work, README driven development, and treating each API decision as a permanent contract. Compatibility adapters and ethical deprecation with replacements can mitigate needed changes. Semantic versioning alone should not be used to justify breaking changes. The goal is for libraries to still work years later like Make, cron, and the Linux kernel by prioritizing users over code changes.
27. “It’s just one
breaking change!”
“It’s just one
breaking change!”
“It’s just one
breaking change!”
“It’s just one
breaking change!”
“It’s just one
breaking change!”
“It’s just one
breaking change!”
Application Maintainer
112. “Way too many projects seem to
think that the code is more
important than the user, and they
break things left and right, and they
don’t apologize for it, because they
feel that they are ‘fixing’ the code
and doing the right thing.”
113. “Way too many projects seem to
think that the code is more
important than the user, and they
break things left and right, and they
don’t apologize for it, because they
feel that they are ‘fixing’ the code
and doing the right thing.”
- Linus Torvalds, creator of the Linux Kernel