Release Responsibly
summary
A recent release of the MongoDB Ruby driver requires a yank after a regression, so expect concrete stories about emergency fixes and the impact on users; the drivers team supports nine official drivers with about 25 people and tests across server versions 1.8–2.8 using a large Jenkins matrix (replica sets C extension multiple Ruby versions). Hear specific rules: add arguments with defaults, don’t rename methods, use an ordered hash for 1.8 edge cases, hide gory logic behind a simple API, and follow semantic versioning to keep trust.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:46The lifetime of our Gemfile.
- 3:43Release Responsibly (backwards compatibility)
- 4:58Your code will be backwards compatible if you stick to 3 things.
- 5:27SIMPLE API CLEAR COMMUNICATION
- 6:17Configurability and Stability are at odds.
- 9:02Some ways to safely make API changes.
- 11:57Have a Compatibility module.
- 12:22Use Polymorphism instead of conditionals.
- 12:53Backport only when necessary.
- 15:00Define the scope of what you support.
- 17:27Test everything you say you support.
- 18:09Changelog is important.
- 19:15User trust should be a priority.
- 22:17Q: Maybe you can change the gemspec to official say you don't support 1.8.7?
- 23:03Have a deprecation strategy.
- 26:41SEMANTIC VERSIONING
- 27:38Why don't people follow SemVer?
- 27:56Sem Ver is a double-edged sword.
- 28:44Gemfiles could be cleaner.
- 29:17It's a culture/ community thing.








