scikit-build-core 1.0

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 of the last four months of development that made this possible. This is all in time for SIMPLE-Py, the workshop I’m hosting next week over Python packaging alongside SciPy 2026.

[Read More]
Categories: Python  Tags: programming python cmake scikit-build 

Claude Code Reviews with Fable

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.

[Read More]
Categories: Python  Tags: programming python ai 

🎑 cibuildwheel 4.0

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 CIBUILDWHEEL_BUILD_IDENTIFIER in the build step. We’ve also made some nice Android improvements. We’ve removed support for Python 3.8, Python 3.13t, GraalPy 3.11, and Cirrus CI.

[Read More]
Categories: Python  Tags: programming python cibuildwheel 

Python 3.15

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.

[Read More]
Categories: Python  Tags: programming python pyupgrade 

Starting With Agentic AI

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 “AI slop” is the first thing that comes to mind, this post will show you some ways that AI can be really helpful. Certain tasks have been completely transformed. Notice, I said “some”, not “all”! But it is a lot.

[Read More]
Categories: Python  Tags: programming python ai 

Repo Review 1.0

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

[Read More]

Working to make Python 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 put in some work. I’ve developed a helper tool to make it easy; I’d like to cover what lazy imports are and how to use my tool. Since this is the first library that I used AI heavily in developing, the second half of the post will cover how my experience with AI for a task like this went.

TL;DR: run uvx flake8-lazy --apply=list to make your code magically faster on Python 3.15!

[Read More]
Categories: Python  Tags: programming python