Henry Schreiner
@henryiii.bsky.social
150 followers 61 following 21 posts
Princeton RSE. Scikit-HEP, Scikit-build, PyPA/build, PyPA/cibuildwheel, pybind11, CLI11, & plumbum. Also on @[email protected] and @henryschreiner3 (X).
Posts Media Videos Starter Packs
henryiii.bsky.social
I've just finished uhi 1.0, following boost-histogram 1.6 and hist 2.9, with support for serializing histograms into JSON/ZIP/HDF5. There's also a new testing helper (libraries implementing UHI can get dozens of tests with a few lines), and much more! iscinumpy.dev/post/uhi-1-0/
UHI 1.0: histogram serialization
UHI 1.0 is out, with a major new feature: a new histogram serialization spec! This spec supports multiple formats (HDF5, zip, and JSON initially), and can be supported by multiple libraries (Boost-his...
iscinumpy.dev
henryiii.bsky.social
cibuildwheel π is out! (3.1.4). A few nice things, like --clean-cache, Android fixes, and new versions of things like CPython 3.14rc2. Note for iOS on GHA/Azure, you need macOS-14, Microsoft broke macOS-15 images for iOS (WRT CPython's test runner, anyway) github.com/pypa/cibuild...
Release v3.1.4 · pypa/cibuildwheel
✨ Add a --clean-cache command to clean up our cache (#2489) 🛠 Update Python to 3.14rc2 and other patch version bumps (#2542, #2556) 🛠 Update Pyodide to 0.28.2 (#2562, #2558) 🐛 Fix resolution with p...
github.com
henryiii.bsky.social
PSA: You can't use `pip install -U pip` to upgrade to pip 25.2 on Windows. You have to use `python -m pip install -U pip`. That's always been better, but now the entrypoint scripts were optimized to be faster (I've wanted this for years!), Windows doesn't PIP.EXE modify itself!
henryiii.bsky.social
NumPy picked it up and released 3.14(t) wheels within hours! (Largely due to the scientific python nightly wheels having them for a long time now!) Time to start producing those 3.14 wheels!
henryiii.bsky.social
We just released cibuildwheel 3.1, which builds Python 3.14/3.14t wheels by default (with yesterday's RC 1)! Also we added Android support, Pyodide 0.28 (3.13), 32-bit modern manylinux, riscv64 defaults, and beautiful new summaries! github.com/pypa/cibuild...
Release v3.1.0 · pypa/cibuildwheel
🌟 CPython 3.14 wheels are now built by default - without the "cpython-prerelease" enable set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.14.0rc1, which is g...
github.com
henryiii.bsky.social
pybind11 3.0 is out (in time for #scipy2025)! Support for Python 3.14, 3.14t, GraalPy, PyPy 3.11, and iOS have been added. smart-holder merged, native enums, multiphase init, subinterpreters (with per-interp GIL), better typing, C++23, and much more! See iscinumpy.dev/post/pybind1...
pybind11 3.0.0
Pybind11 3.0 has been released! I would like to highlight some of the key changes below; be sure to check out the changelog and upgrade guide for more information! This release includes an ABI bump, t...
iscinumpy.dev
henryiii.bsky.social
If you are updating for Python π (Python 3.14) and are using argparse, remember to conditionally add `color=True` and, if using choices or subcommands, `suggest_on_error=True`!
henryiii.bsky.social
The beta is out, so it's time for What's new in Python π: iscinumpy.dev/post/python-... (also it's time to start adding it to CI and adding classifiers if it works!)
Python π
Python π (3.14) beta 1 is out, which means the features are locked in.
iscinumpy.dev
henryiii.bsky.social
The Scientific-Python Development Guide has been updated with SPDX licenses (PEP 639) and dependency-groups (PEP 735)! There's more uv, too; the cookiecutter/copier template now sets up uv everywhere for ultra fast CI. New repo-review checks, too. learn.scientific-python.org/development/...
Topical Guides
This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.
learn.scientific-python.org
henryiii.bsky.social
I've just released nox 2025.05.01 with support for uv 0.7+! Lots of other small fixes and polish. Sorry for the breakage, but uv broke accessing the version of uv without warning. And you need the version of uv to know which method to use to get the version. 🤣
henryiii.bsky.social
I've just released the #Python wheels for today's release of #CMake 4.0! pypi.org/project/cmake/ Remember to set your CMake minimum version to at least 3.5 (3.15 or better preferred) and set a maximum version too (newer CMake follows the policies of the maximum version) #release
cmake
CMake is an open-source, cross-platform family of tools designed to build, test and package software
pypi.org
henryiii.bsky.social
Actually, this was postponed till 2026 in 78.0.2, so it's fine for now. (No one reads build warnings, in fact pip hides them by default.) I'll probably add this as a repo-review check.

Another nice workaround anyway, though:

[tool.uv]
exclude-newer = "2025-03-24T00:00:00Z"
henryiii.bsky.social
If you have an issue with a dependency breaking due to setuptools 78's setup.cfg change, and you use uv, it's just:

[tool.uv]
build-constraint-dependencies = ["setuptools<78"]

to fix. Otherwise:

echo "setuptools<78" > constraints.txt
PIP_CONSTRAINT=constrants.txt pip ...
henryiii.bsky.social
Scikit-build-core 0.11 is out, with PEP 639 support (license expressions and files), METADATA 2.2+ as the default (supporting faster SDist metadata access for tools like uv), and quite a few smaller additions and expanded configurability. github.com/scikit-build...
Release Version 0.11.0 · scikit-build/scikit-build-core
This version adds support for PEP 639 (license expressions) and updates the default METADATA version 2.2. Support for Python 3.7 has been removed. You can use build.requires to inject build require...
github.com
henryiii.bsky.social
Just released repo-review 0.12, with support for adding skip reasons to configuration! Also has a new --extend-ignore CLI flag. WASM versions updated to show skip reasons: learn.scientific-python.org/development/...
Repo-Review
This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.
learn.scientific-python.org
henryiii.bsky.social
I just completed all 25 days of Advent of Code 2024 (Rust again this year)! #AdventOfCode adventofcode.com
Advent of Code 2024
adventofcode.com
henryiii.bsky.social
I've just released cibuildwheel 2.22, with [dependency-groups] (PEP 735) support, a new simpler enable option, experimental manylinux ARMv7l support, and lots of fixes and updates! This is the final release (other than patches) before cibuildwheel 3.0! github.com/pypa/cibuild... #python
Release Version 2.22.0 · pypa/cibuildwheel
🌟 Added a new CIBW_ENABLE/enable feature that replaces CIBW_FREETHREADED_SUPPORT/free-threaded-support and CIBW_PRERELEASE_PYTHONS with a system that supports both. In cibuildwheel 3, this will als...
github.com