Modern binary build systems
summary
Modern binary build systems replace fragile setup.py hacks with concrete, testable results: scikit-build-core, meson-python, and maturin let projects produce wheels using three files with only a handful of lines, enable cross-compilation and multithreaded builds, and support editable installs and ABI3 wheels often by flipping a config. NumPy shrinks its build code from 13K to 2K by moving to Meson. Tooling like pybind11, nanobind, cibuildwheel, and CI build wheel are used end to end and actually produce reproducible platform wheels.
AI-written summary · about
chapters (24)
- 0:00Modern binary build systems
- 1:04Cross-platform wheel CI build
- 2:49Python binary packaging evolution
- 4:58Legacy setuptools limitations
- 5:59PEP 517 build backend API
- 7:23Modern build backends overview
- 9:11Mason Python C++ extensions
- 10:55Psyche Build Core features
- 12:41Psyche Build Core config
- 14:30Dynamic metadata in builds
- 15:35Nano bind with Psyche
- 16:20Projects using Psyche
- 17:45Python packaging adoption stats
- 19:55Maturin for Rust packages
- 22:19Scientific Python guide
- 23:22Future of binary packaging
- 24:47Q&A: conda integration
- 25:48Q&A: feature gaps
- 27:14Q&A: PEP 621 metadata
- 29:23Q&A: Python executables
- 31:08Q&A: static Python builds
- 32:12Q&A: unconventional deps
- 34:40Q&A: non-CMake executables
- 36:25Closing remarks
related talks
37mScikit build: A build
40mMaking packages and packaging "just work"
26mOpen Source on Easy Mode
58mThere Will Be Build Systems: I Configure Your Milkshake
23mPackaging Python in 2021
49mBuild Systems: a Simple Solution to a Complicated Problem
45mLess is More - a Build Pipeline for the Modern Age
28mModern Python packaging without pain
