Learn Python with Talk Python's Python courses

Using cibuildwheel to manage the scikit-HEP packages

Episode #338, published Sun, Oct 17, 2021, recorded Thu, Oct 14, 2021.

This episode is carbon neutral.
How do you build and maintain a complex suite of Python packages? Of course, you want to put them on PyPI. The best format there is as a wheel. This means that when developers use your code, it comes straight down and requires no local tooling to install and use.

But if you have compiled dependencies, such as C or FORTRAN, then you have a big challenge. How do you automatically compile and test against Linux, macOS (Intel and Apple Silicon), Windows, and so on? That's the problem cibuildwheel is solving.

On this episode, you'll meet Henry Schreiner. He is developing tools for the next era of the Large Hadron Collider (LHC) and is an admin of Scikit-HEP. Of course, cibuildwheel is central to this process.

Links from the show

Henry on Twitter: @HenrySchreiner3
Henry's website: iscinumpy.gitlab.io

Large Hadron Collider (LHC): home.cern
cibuildwheel: github.com
plumbum package: plumbum.readthedocs.io
boost-histogram: github.com
vector: github.com
hepunits: github.com
awkward arrays: github.com
Numba: numba.pydata.org
uproot4: github.com
scikit-hep developer: scikit-hep.org
pypa: pypa.io
CLI11: github.com
pybind11: github.com
cling: root.cern
Pint: pint.readthedocs.io
Python Wheels site: pythonwheels.com
Build package: pypa-build.readthedocs.io
Mac Mini Colo: macminicolo.net
scikit-build: github.com
plotext: pypi.org
Code Combat: codecombat.com
clang format wheel: github.com
cibuildwheel examples: cibuildwheel.readthedocs.io
Cling in LLVM: root.cern

New htmx course: talkpython.fm/htmx
Watch this episode on YouTube: youtube.com
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe on YouTube: youtube.com
Follow Talk Python on Twitter: @talkpython
Follow Michael on Twitter: @mkennedy

Want to go deeper? Check out our courses

Henry Schreiner
Henry Schreiner
Henry Schreiner is a Computational Physicist / Research Software Engineer in High Energy Physics at Princeton University. He received his Ph.D. in experimental high-energy physics from the University of Texas at Austin. Henry is currently funded by the IRIS-HEP project, developing tools for the next era of the Large Hadron Collider (LHC). He is an admin of Scikit-HEP, and also the lead web developer for IRIS-HEP and Scikit-HEP, including primary authorship on the Scikit-HEP developer pages and accompanying cookiecutter template. Henry is also a maintainer/core developer for pypa/build, scikit-build, cibuildwheel, pybind11, and plumbum for Python, and primary author of CLI11 for C++. He is also the author of a variety of CMake, GPU, and Python training courses and classes.
Episode sponsored by
Ads served ethically
Become a friend of the show
Stay in the know and get a chance to win our contests.
See our privacy statement about email communications.