Another great release from cibuildwheel, 2.2.0, is out! There are a few important additions in this release that you should be aware of, so I will outline the major changes here. We will cover the new musllinux wheels, overload configuration, and incoming changes to pip and PyPy expected in the next release. As always, it is recommended that you pin your cibuildwheel version and then provide some automated way to keep the pin up-to-date, such as GitHub’s dependabot. You should be updating just before you make a release, as well, but you probably don’t want to be surprised by new wheels during your release process![Read More]
Favorite posts and series
My books and workshops
pybind11 (python_example, cmake_example, scikit_build_example) • cibuildwheel • build • scikit-build (cmake, ninja) • boost-histogram • Hist • UHI • Scikit-HEP/cookie • Vector • CLI11 • Plumbum • GooFit • Particle • DecayLanguage • Conda-Forge ROOT • POVM • Jekyll-Indico • pytest GHA annotate-failures
🎡 cibuildwheel 2.0
The cibuildwheel package has just had a major release with some fantastic
features. Python 2.7 and 3.5 support has been removed (and PyPy3.6), allowing
us to update to the latest manylinux and auditwheel versions, and support the
newly unified manylinux PyPy3.7 images. We now allow users to select
pypa/build as a build frontend. We now have a custom option to enable
pre-release Pythons (3.10 currently) for testing before they are ABI stable
(please don’t release wheels until that happens). Maybe most exciting,
cibuildwheel now supports configuration in
pyproject.toml, allowing you to be
even further isolated from dependence on your CI system; you can easily produce
Linux and Windows wheels locally (macOS still installs to system locations).
And, since my last post and introduction
post, cibuildwheel is now part of the PyPA!
Announcing CLI11 2.0
CLI11, a powerful library for writing beautiful command line interfaces in C++11, has been updated to 2.0. A lot of deprecated things have been removed, and there was a lot of cleanup under-the-hood; making CLI11 simpler. A few defaults have changed slightly, like better TOML support by default.
CLI11 does a better job than ever understanding any sort of container you provide - complex numbers are natively supported, along with atomic types. A long requested feature, simple version flags, has been added. Subcommands are more customizable. And there have been quite a few bugfixes for rare issues.[Read More]
Setup an Apple Silicon Mac
🎡 cibuildwheel 1.8.0 and 1.9.0
cibuildwheel has just had two back-to-back releases, two weeks apart,
representing several months of hard work and some exciting few features! I will
be covering both releases at once, so we will discuss Apple Silicon support,
architecture emulation on Linux, integrated PEP 621 Requires-Python support,
the native GitHub Action, extended build and test controls, and more!
If you are following the releases, 1.7.0 came out last November (2020), and
included the fantastic output folding feature, which makes logs much easier to
read on CI systems that support folding, and makes it much easier to see how
long each step takes. The 1.7.x series also included the addition of the
working examples section of the documentation, which tracks
some known projects using
cibuildwheel, such as scikit-learn, Matlotlib, and
MyPy; it is a great place to go to look into how other projects have integrated
cibuildwheel into their workflow.
I have an general overview post as well. Now let’s look at what’s new! Update: cibuildwheel is now an official package of the PyPA![Read More]
Overview of cibuildwheel 🎡
This is the first of two posts on
cibuildwheel, a fantastic project I
joined after switching to it from my own azure-wheel-helpers, which I’ve
blogged about here before. It is the best
wheelbuilding system available for Python today, and can make something that is
normally a pain to setup and a headache to maintain a breeze (by forcing all
the headaches on us, of course, as maintainers, but it’s better to solve issues
centrally! Obviously we rather like solving these problems. Or we are just
crazy, which is also possible ;) ).
Be sure to checkout the followup post over new features in 1.8.0 and
1.9.0, too! Also,
cibuildwheel was recently
accepted into the PyPA!