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.
¿Qué pueden esperar aprender los participantes en tu actividad?: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!