Contribute Media
A thank you to everyone who makes this possible: Read More

API Evolution the Right Way

Translations: en


Library maintainers, how can you innovate without breaking projects that depend on you? Follow semantic versioning, add APIs conservatively, add parameters compatibly, write an upgrade guide, use DeprecationWarnings, and publish a deprecation policy. Break backwards compatibility rarely and wisely.

Staff Engineer at MongoDB in New York City specializing in C, Python, and async. Lead developer of the MongoDB C Driver libraries libbson and libmongoc. Author of Motor, an async MongoDB driver for Tornado and asyncio. Contributor to Python, PyMongo, MongoDB, Tornado, and asyncio. Co-author with Guido van Rossum of “A Web Crawler With asyncio Coroutines”, a chapter in the “500 Lines or Less” book in the Architecture of Open Source Applications series.

Blogs at and for the PSF at

Presentation page:


Improve this page