C++26 is done (technically complete March 2026, publication expected later this year), so let’s explore the new features in C++, from a data science point of view. This is the biggest release since C++11; in fact, one feature might be the biggest single feature ever. Reflection means C++ now understands itself without macros or hacks; it’s also one of the first mainstream compiled…
Scikit-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 for over a hundred closed issues. This is the completion of my original vision, and I’m really happy with it. I’d like to show off some of the new features, and also discuss some…
Fable 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 400 bugs and 400+ other issues (performance, simplifications, modernizations) across dozens of my projects, making several hundred PRs with a nearly 100% merge rate on decided PRs.
cibuildwheel 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 applies abi3audit to stable ABI wheels. We now default to running delvewheel to repair Windows wheels. We now have {project} and {package} placeholders for config-settings , and we set…
Overview Tooling Name Downloads Version Release Last Commit Stars packaging 2,279,694,620/mo 26.3 11 days ago 2026-08-04T18:15:27Z 2 days ago 2026-08-13T03:20:07Z 746 ★ cibuildwheel 823,713/mo 4.2.0 10 days ago 2026-08-05T02:25:02Z 16 hours ago 2026-08-15T08:05:08Z 2,257 ★ build 153,744,543/mo 1.5.0 3 months ago 2026-04-30T03:18:23Z 2 days ago 2026-08-13T22:09:50Z 854 ★ pipx 7,311,007/mo 1.16.7 2…
Python 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/types/errors updates, and lots of key changes for developers.
AI 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 my thoughts on what works, what doesn’t (yet?), and what the future might look like. If you are curious about AI for programming, or have been skeptical in the past, if…
I’ve just released repo-review 1.0 with a huge update to the WebApp, along with some other solid improvements in speed, simplicity, and stability. Repo-review’s two most popular plugins, sp-repo-review and validate-pyproject , can take full advantage of the new asynchronous fetching mechanism. And if you use the upcoming Python 3.15, the CLI is more responsive than ever thanks to lazy…
Python 3.15a7, which is now just a uv python install 3.15 away on all major platforms, has lazy imports! This exciting feature, proposed in PEP 810 , promises to make CLI applications faster (especially when using flags like --help ), and could make a lot of large code with lots of imports that don’t always get used faster too. Unlike the earlier, failed attempt, this requires libraries to…
I’ve just released boost-histogram 1.7 and hist 2.10 , with a major new feature and a big typing improvement! I’d like to quickly outline what’s new here. Python 3.10+ is now required.
Along 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, something tools like pip have to do thousands of times during resolution. Using Python 3.15’s new statistical profiler and metadata from every package ever uploaded to PyPI, I measured and…
After 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 thought I’d try TypeScript this year. I also used this as an opportunity to learn more AI tooling too, mostly CoPilot in VSCode & ChatGPT . I’d like to share my…
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-histogram/hist initially). There’s also a new test suite helper for libraries targeting the UHI indexing spec.
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, the first required bump in many years on Unix (Windows has had required bumps more often). This release contains the multi-year smart-holder branch, multi-phase init and subinterpreter support,…
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 (experimental) pyodide-version . We now fully use enable (and PyPy requires using it), and we no longer inject setuptools and wheel in build environments. Defaults have changed, too: build is…
Python π (3.14) is out! The big feature this time around is template strings. Free-threading is no longer experimental. There’s also lots more color (including syntax highlighting in the REPL!), remote debugging, deferred evaluation of annotations, and the usual error message and performance improvements. Subinterpreters are now accessible without the C-API (finally!), and free-threaded…
Scikit-build-core 0.10 is out, and it is one of the largest releases we’ve produced in terms of new configuration options. It automatically reads your minimum CMake version, you can tell it to read your scikit-build-core minimum-version, and there are settings for many of the advanced things users used to do with scikit-build (classic), like rebuilds or pure Python fallbacks on build…
cibuildwheel 2.19 is out, with some very big additions. A new platform, Pyodide , has been added for building WebAssembly wheels. We’ve added CPython 3.13 free-threaded builds, now on all OS’s. And we have an opt-in speed improvement with the build[uv] build-frontend option. We’ve had some fantastic releases of cibuildwheel since my last post over 2.10, so I’ll include a…
Python 3.13 betas are out (Edit: 3.13.0 is out!), which means the features are locked in. For the first time in thirty years, Python has a new, more colorful REPL! There’s also a no-GIL compile-time option (free-threaded), an optional JIT, some new typing features, and better error messages (again).
While it can also do much more, Python is a fantastic language for writing small scripts and utilities with its expressive syntax and batteries-included standard library. But what if you need just a bit more? PyPI is one of the best package repositories for any language, and being able to access it without having to write a multi-file library and setting up virtual environments would be a dream -…
C++23 is complete and pretty much finalized, so let’s explore the new features in C++, from a data science point of view. This is not as large of a release as C++20 or C++11, but it’s still a hefty release with lots of nice new features - larger than C++17. Some of the major new features are building on themes from C++20, such as vastly expanded ranges and views, more constexpr /…
One outcome of the 2023 Scientific Python Developer Summit was the Scientific Python Development Guide , a comprehensive guide to modern Python package development, complete with a new project template supporting 12 build backends and a WebAssembly-powered checker with checks linked to the guide. The guide covers topics like modern , compiled , and classic packaging, style checks, type checking ,…
I’ve released a new 1 toolkit for running checks, similar to Ruff and Flake8 but designed to check configuration, called repo-review . It requires Python 3.10+ 2 to run and has no built-in checks, but is easy to write plugins for. A set of checks based on the Scientific Python Development Guide (which I also have a post about !) are available as a plugin, sp-repo-review . You can run…
Python 3.12’s beta’s are out, which means the features are locked in. The theme this year has been cleanup and typing. distutils has been removed, and setuptools is no longer present in default environments.
I set up an ARM DevKit recently, so I wanted to catalog what I do to setup Windows here. This is not as polished or complete as my macOS setups, because this is not something I use as a daily driver. But it might be useful, and I’m open to suggestions to improve it. This should work for Intel or ARM Windows. Also see macOS (AS) .
cibuildwheel 2.10 is out, with some important additions. PEP 517 config settings added, --only (which has an interesting use in GHA), and Cirrus CI support (including our first Apple Silicon native runner!) are highlights. We also support Python 3.11 now (as of 2.11.2, RC’s in older releases). We’ve had some fantastic releases of cibuildwheel this year, including some very powerful…
Python 3.10 is out (and has been for a while, I’m late posting this), with new features and changes. The big new language feature this update is pattern matching. We get much better errors, the always-present typing improvements, and finally some real usage of the new PEG parser from 3.9.
Python 3.11 has hit the beta (now released!) stage, which means no more new features. It’s a perfect time to play with it! The themes in this update are the standard ones: The faster CPython project is now fully going (3.11 is 25% faster on average), along with improved error messages, typing, and asyncio. Beyond this, the only major new feature is a library for reading TOML files; this this…