Henry Schreiner's Avatar

Henry Schreiner

@henryiii.bsky.social

Princeton RSE. Scikit-HEP, Scikit-build, PyPA/build, PyPA/cibuildwheel, pybind11, CLI11, & plumbum. Also on @henryiii@fosstodon.org and @henryschreiner3 (X).

147 Followers  |  61 Following  |  21 Posts  |  Joined: 20.11.2024  |  1.5891

Latest posts by henryiii.bsky.social on Bluesky

Preview
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...

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/

20.08.2025 21:20 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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...

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...

20.08.2025 05:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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!

31.07.2025 04:39 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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!

25.07.2025 05:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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...

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...

24.07.2025 03:45 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
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...

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...

10.07.2025 22:06 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Python ฯ€ Python ฯ€ (3.14) beta 3 is out, which means the features are locked in (normally beta 1, but two additions were made exceptionally in beta 3!). The big feature this time around is template strings. The...

I've updated my Python 3.14 post with the new additions in 3.14.0b3: free-threading is no longer experimental, and concurrent.interpreters has been added! I've added a couple of examples: iscinumpy.dev/post/python-...

18.06.2025 19:36 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
๐ŸŽก cibuildwheel 3.0 cibuildwheel 3.0.0 is out, with some very big additions. Weโ€™ve added GraalPy, Python 3.14 (and 3.14t) betas, and iOS support! Weโ€™ve got several new options: test-sources, test-environment, and (experi...

cibuildwheel 3.0 is out! New support for Python 3.14 (and 3.14t) betas, GraalPy, and iOS! New defaults, new config options, beautiful docs updates, and more! iscinumpy.dev/post/cibuild...

11.06.2025 15:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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`!

13.05.2025 19:38 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Python ฯ€ Python ฯ€ (3.14) beta 1 is out, which means the features are locked in.

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!)

08.05.2025 19:12 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Topical Guides This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.

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/...

02.05.2025 20:03 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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. ๐Ÿคฃ

01.05.2025 16:54 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

And cliutils.gitlab.io/modern-cmake is updated for 4.0, as usual. :)

28.03.2025 03:59 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
cmake CMake is an open-source, cross-platform family of tools designed to build, test and package software

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

28.03.2025 03:57 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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"

24.03.2025 20:22 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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 ...

24.03.2025 20:15 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
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...

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...

28.02.2025 18:51 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Release Version 2.5.0: Formatter ยท CLIUtils/CLI11 This version add a new formatter with improved control capabilities and output aligned with standards for help output. It also add a modifier to enable use of non-standard option names. Along with ...

New release of CLI11 out, the most powerful C++ CLI parser! Version 2.5 has a new formatter following UNIX standards more closely (help2man support), non-standard "-flag" opt-in support, and fixes and polish. github.com/CLIUtils/CLI...

27.02.2025 14:40 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Repo-Review This guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers.

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/...

05.02.2025 16:45 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Advent of Code 2024

I just completed all 25 days of Advent of Code 2024 (Rust again this year)! #AdventOfCode adventofcode.com

25.12.2024 07:17 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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...

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

23.11.2024 07:00 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@henryiii is following 20 prominent accounts