15/10/2026 –, Sala 3
Are you maintaining complex build matrices with cibuildwheel? Multiple platforms x Python versions? It is time to move to the stable ABI3 and reduce the maintainer burden!
In this tutorial we will cover how to move a Python extension package build setup to ABI3. The goal is to help maintainer reduce the build matrix by building it for only 1 Python version that is forwards compatible.
This tutorial are for those that that packaged Python C/C++, Rust, or Fortran extensions, and distributes it on PyPI using cibuildwheel. Folks that maintain existing workflows, but did not create the, are also the target audience for this tutorial.
O que as pessoas que participarem podem esperar aprender na sua atividade?:We hope that participantes will be able to modify existing Python extensions build setups to ABI3 instead of specialized builds, in more detail they will:
- Learn how to adapt existing setup.py to ABI3 support
- Run specialized builds setups (non-ABI3) together with ABI3;
- Learn how to modify their pyproject.toml configs to ABI3;
- Implement cibuildwheel configuration from zero or from existing non-ABI3 setups;
- Test the artifact for ABI3 compatibility
- Test the wheel in forwards Python version;
- Adapt existing extensions written in C/C++ corner cases to ABI3;
I'm a Physical oceanographer by training, turned research software engineer, and a software packager hobbyist. Nobody loves software packaging, but I do love to see how helpful it can be to others!