Henry Schreiner @henryiii.bsky.social · 4hI’m currently traveling to India, maybe Joe can do it. I’ll ask. It’s merged, so it’s just a matter of making a release. 110
Henry Schreiner @henryiii.bsky.social · 14/08/2026If you want to be involved in the Python Packaging Council elections, register to vote before August 25! I'm there, along with 16 other fantastic choices. blog.python.org/2026/08/2026... and ask me questions at discuss.python.org/t/ppc-nomina... !blog.python.orgAnnouncing the Packaging Council Election Candidates for 2026! | Python InsiderAnnouncing the 17 nominees for the inaugural Python Packaging Council election, and how to vote in the election. 011
Henry Schreiner @henryiii.bsky.social · 05/08/2026cibuildwheel 4.2.0 now out with 3.15rc1 too! :) 010
Henry Schreiner @henryiii.bsky.social · 05/08/2026Packaging 26.3 is out, with ranges (huge), PEP 808 support, and tons of fixes, improved performance, etc. github.com/pypa/packagi...github.comRelease 26.3 · pypa/packagingWhat's Changed Features Add a public VersionRange API and SpecifierSet.to_range(), representing the versions a specifier set accepts as an interval set that supports intersection, union, differenc... 053
Henry Schreiner @henryiii.bsky.social · 05/08/2026cibuildwheel 4.2.0 is out, with Python 3.15rc1 across all platforms, including pyemscripten for the first time on launch day! Time to build your binary wheels for 3.15! github.com/pypa/cibuild...github.comRelease v4.2.0 · pypa/cibuildwheel🌟 CPython 3.15 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.15.0rc1, which is g... 163
Henry Schreiner @henryiii.bsky.social · 31/07/2026Released CLI11 2.7, with a strong focus on hunting down and fixing bugs, modernized docs (with the old gitbook integrated in now), and better C++26 support. cliutils.github.io/CLI11/change...cliutils.github.ioCLI11: Changelog 000
Henry Schreiner @henryiii.bsky.social · 06/07/2026Scikit-build-core 1.0 is out! Over 90 bugs fixed, great new features (dynamic-metadata, env table, editable & rebuild improvements, force-include, and more!), and over 100 issues closed! Just in time for SIMPLE-Py next week! iscinumpy.dev/post/scikit-...iscinumpy.devscikit-build-core 1.0Scikit-build-core 1.0, the culmination of a four year project to build the best compiled code backend for Python, is out. It’s a huge release, with over 90 bugs fixed, over 40 new features, accounting... 010
Henry Schreiner @henryiii.bsky.social · 17/06/2026Wrote a post on my (brief) experience with Claude Fable, reviewing dozens of repositories, finding hundreds of bugs, and making a few hundred PRs! iscinumpy.dev/post/claude-...iscinumpy.devClaude Code Reviews with FableFable came out and then disappeared a couple of days later. In that short time, I managed to run a lot of repository reviews with it, and was really happy with the results. I’ve found and fixed around... 020
Henry Schreiner @henryiii.bsky.social · 16/06/2026If you'd like to learn about modern Python packaging (including easily shipping compiled code) from the people who work on it, we still have spots left in SIMPLE-Py! Flights and hotel are funded. You can combine it with attending SciPy 2026 if you want! www.scipy2026.scipy.org#simple-py 001
Henry Schreiner @henryiii.bsky.social · 07/06/2026🎡 cibuildwheel 4.0 is out! 🌟 Pyemscripten (Pyodide on PyPI!) ✨ CPython 3.15(t), incl. iOS & Android 🔐 SHA256 verification 🌟 Windows auto-bundles extension DLLs (delvewheel) 🌟 abi3audit wheel auditing ⚠️ Drops Python 3.8 & much more! iscinumpy.dev/post/cibuild...iscinumpy.dev🎡 cibuildwheel 4.0cibuildwheel 4.0.0 is out, with some very big additions. We’ve added pyemscripten 3.13 wheels (uploadable to PyPI!), Python 3.15 (and 3.15t) betas, and much more! We’ve got a new stage: audit, which a... 050
Henry Schreiner @henryiii.bsky.social · 04/06/2026Plumbum 2.0 - the Python shell script helper library, is out, with async, full static typing, more pathlib API, no pywin32 dep, lazy imports, and much more! plumbum.readthedocs.io/en/latest/ch...plumbum.readthedocs.ioChange Log - Plumbum: Shell Combinators 020
Henry Schreiner @henryiii.bsky.social · 11/05/2026Announcing SIMPLE-Py, a two-day workshop on making compiled Python packages! It will be held alongside SciPy’s tutorial sessions July 13-14 at the University of Minnesota. We have funding for travel (to SciPy!), food, and lodging during the workshop. scikit-build.org/events/simpl...scikit-build.orgSIMPLE-PyScientific Installation & Modern Packaging for Language Extensions in Python 032
Henry Schreiner @henryiii.bsky.social · 07/05/2026My Python 3.15 what's new post is out for the just-released 3.15 beta 1! iscinumpy.dev/post/python-...iscinumpy.devPython 3.15Python 3.15 beta 1 is out! This is a really impactful release, with some really big additions. A new lazy import system, a powerful sampling profiler, not one but two new builtins, the usual color/typ... 062
Henry Schreiner @henryiii.bsky.social · 06/05/2026Post on my exploration of agentic AI is up! Lots of examples from my 107 PRs made with some AI assistance in the last three months (out of 412). I've included model tags colored by OSS vs. Copilot models. The OpenCode screenshot does light/dark mode. :) iscinumpy.dev/post/startin...iscinumpy.devStarting With Agentic AIAI suddenly passed the “more time saved than spent” point around December 2025. A little late, I’ve finally started using agentic AI in various places over the last 2-3 months, and wanted to jot down ... 020
Henry Schreiner @henryiii.bsky.social · 28/04/2026Packaging 26.2 is out! Quick fix for pyemscripen tags, stable and faster pickle support, and a bit of polish. This is the release in pip 26.1, which came out yesterday. It’s our last release to support Python 3.8, we’re a little behind dropping Pythons. github.com/pypa/packagi...github.comRelease 26.2 · pypa/packagingWhat's Changed Fixes: Fix incorrect sysconfig var name for pyemscripten by @ryanking13 in #1160 Make Version, Specifier, SpecifierSet, Tag, Marker, and Requirement pickle-safe and backward-compati... 010
Henry Schreiner @henryiii.bsky.social · 14/04/2026Packaging 26.1 out! Another huge release, with lots of great stuff, like pyemscripten wheels, free-threading stable ABI, dependency-groups, direct-urls, more pylock, & key for filter. Benchmarking, property-based testing, 2x faster performance in places! github.com/pypa/packagi...github.comRelease 26.1 · pypa/packagingFeatures: PEP 783: add handling for Emscripten wheel tags by @hoodmane in #804 PEP 803: add handling for the abi3.abi3t free-threading tag by @ngoldbaum in #1099 PEP 723: add packaging.dependency_... 000
Henry Schreiner @henryiii.bsky.social · 10/04/2026I've just released nox 2026.04.10, with --usage (full docstrings), auto-ignored `.nox` folder, and several great fixes, like auto-recreating environment if Python symlinks are broken and `-t` selecting tags from all sessions. Enjoy! github.com/wntrblm/nox/...github.comRelease 2026.04.10 🧹 · wntrblm/noxThis release drops Python 3.8 and adds a --usage command for full docstrings. Our .nox dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrad... 020
Henry Schreiner @henryiii.bsky.social · 31/01/2026Great release of pip with 26.0! Colorful --help, --requirements-from-script, --uploaded-prior-to, and all the performance optimization work we did on packaging 26.0! New build environment option, too. 040
Henry Schreiner @henryiii.bsky.social · 21/01/2026Packaging 26.0 is out! Hopefully in time for pip 26.0. :) github.com/pypa/packagi...github.comRelease 26.0 · pypa/packagingRead about the performance improvements here: https://iscinumpy.dev/post/packaging-faster. What's Changed Features: PEP 751: support pylock by @sbidoul in #900 PEP 794: import name metadata by @br... 020
Henry Schreiner @henryiii.bsky.social · 09/01/2026On behalf of the packaging maintainers, I’d like to announce packaging 26.0rc1 is out! Please try it out, as it's a huge release. If you'd like to read about the performance work making this the fastest version of packaging ever, see my post: iscinumpy.dev/post/packagi...iscinumpy.devHow we made Python's packaging library 3x fasterAlong with a pip (and now packaging) maintainer, Damian Shaw, I have been working on making packaging, the library behind almost all packaging related tools, faster at reading versions and specifiers,... 2248
Henry Schreiner @henryiii.bsky.social · 26/12/2025I've written a post about my experience learning TypeScript and using AI for this year's Advent of Code (after learning Rust the last two years). iscinumpy.dev/post/aoc-2025 Merry Christmas!iscinumpy.devAdvent of Code 2025 in TypescriptAfter two years of Advent of Code in Rust, I thought I’d try TypeScript. I’ve always wanted to improve repo-review’s webapp, and that requires knowledge of the packaging systems for JavaScript, so I t... 020
Henry Schreiner @henryiii.bsky.social · 14/11/2025Partially dynamic project metadata: peps.python.org/pep-0808peps.python.orgPEP 808 – Partially dynamic project metadata | peps.python.orgThis PEP relaxes the constraint on dynamic metadata listed in the [project] section in pyproject.toml to allow the static portion of mixed metadata to be defined in the normal location if the field is... 000
Henry Schreiner @henryiii.bsky.social · 12/11/2025cibuildwheel 3.3 out! Fix for docker 29 changing the capitalization of the version output, but also runner customization (for iOS on GHA macos-15), manylinux_2_35 on armv7l, build[uv] support on Android, removed build-system constraints, and more! github.com/pypa/cibuild...github.comRelease v3.3.0 · pypa/cibuildwheel🐛 Fix an incompatibility with Docker v29 (#2660) ✨ Adds test-runtime option, to customise how tests on simulated/emulated environments are run (#2636) ✨ Adds support for new manylinux_2_35 images o... 010
Henry Schreiner @henryiii.bsky.social · 20/08/2025I'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/iscinumpy.devUHI 1.0: histogram serializationUHI 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... 000
Henry Schreiner @henryiii.bsky.social · 20/08/2025cibuildwheel π 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...github.comRelease 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... 011
Henry Schreiner @henryiii.bsky.social · 31/07/2025PSA: 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! 000
Henry Schreiner @henryiii.bsky.social · 25/07/2025NumPy 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! 000
Henry Schreiner @henryiii.bsky.social · 24/07/2025We 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...github.comRelease 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... 110
Henry Schreiner @henryiii.bsky.social · 10/07/2025pybind11 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...iscinumpy.devpybind11 3.0.0Pybind11 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... 010
Henry Schreiner @henryiii.bsky.social · 18/06/2025I'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-...iscinumpy.devPython π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... 031
Henry Schreiner @henryiii.bsky.social · 11/06/2025cibuildwheel 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...iscinumpy.dev🎡 cibuildwheel 3.0cibuildwheel 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... 011
Henry Schreiner @henryiii.bsky.social · 13/05/2025If 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`! 000
Henry Schreiner @henryiii.bsky.social · 08/05/2025The 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!)iscinumpy.devPython πPython π (3.14) beta 1 is out, which means the features are locked in. 020
Henry Schreiner @henryiii.bsky.social · 02/05/2025The 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/...learn.scientific-python.orgTopical GuidesThis guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers. 021
Henry Schreiner @henryiii.bsky.social · 01/05/2025I'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. 🤣 000
Henry Schreiner @henryiii.bsky.social · 28/03/2025And cliutils.gitlab.io/modern-cmake is updated for 4.0, as usual. :)cliutils.gitlab.io 020
Henry Schreiner @henryiii.bsky.social · 28/03/2025I'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) #releasepypi.orgcmakeCMake is an open-source, cross-platform family of tools designed to build, test and package software 120
Henry Schreiner @henryiii.bsky.social · 24/03/2025Actually, 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" 000
Henry Schreiner @henryiii.bsky.social · 24/03/2025If 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 ... 120
Henry Schreiner @henryiii.bsky.social · 28/02/2025Scikit-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...github.comRelease Version 0.11.0 · scikit-build/scikit-build-coreThis 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... 020
Henry Schreiner @henryiii.bsky.social · 27/02/2025New 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...github.comRelease Version 2.5.0: Formatter · CLIUtils/CLI11This 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 ... 000
Henry Schreiner @henryiii.bsky.social · 05/02/2025Just 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/...learn.scientific-python.orgRepo-ReviewThis guide is maintained by the scientific Python community for the benefit of fellow scientists and research software engineers. 000
Henry Schreiner @henryiii.bsky.social · 25/12/2024I just completed all 25 days of Advent of Code 2024 (Rust again this year)! #AdventOfCode adventofcode.comadventofcode.comAdvent of Code 2024 050
Henry Schreiner @henryiii.bsky.social · 23/11/2024I'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... #pythongithub.comRelease 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... 020