Python Conference APAC 2024

Don't break your library users
2024-10-26 , CLASS #6
Language: English

PyPI is full of amazing libraries. How did they do it? What does it take to keep a library relevant? What is the art of compatibility? Who are the users and where to find them?


A library is ideally designed to be both useful and dependable for its users.

  • design choices and user experience
  • the level of Python proficiency to expect
  • three distinct common user groups
  • testing in the context of user applications
  • evolution and thoughtful API design
  • real-world breakage examples
  • benefits and drawbacks of roadmaps
  • pros and cons of supporting old versions

The talk is based on practical experience maintaining ops, the operator framework.

Canonical's Juju streamlines cloud management by automating deployments through Charms, powered by ops. Unlike AWS, Juju offers a flexible, open-source, host-your-own alternative without vendor lock-in. Contrasted with Ansible, Juju is higher-level, declarative, and aimed at reproducible deployments. Charms, written in Python, are opinionated and shift the focus from packaging and app lifecycle to the interfaces that facilitate the integration of applications.

Currently at Canonical, specialises in backend development, system architecture, and integrating open-source technologies. Linux old-timer, occasional CPython contributor. An active participant in the Python community: using, testing, discovering limits of open-source projects. Recently more interested in what makes software great and what makes the world tick.