RSSAmplifier

Blog

ISciNumPy.dev

Recent content on ISciNumPy.dev

iscinumpy.devRSS feed ↗154 posts

Latest posts

C++26

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…

Tools plenary: cibuildwheel

Tools plenary: scikit-build

AI tools in OSS development

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…

Tools that help you write better code

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.

🎡 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…

My Projects

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

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.

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…

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…

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…

New in boost-histogram 1.7 / Hist 2.10

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.

Tools to help you write better code

How we made Python's packaging library 3x faster

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…

Advent of Code 2025 in Typescript

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…

What's new in Python π

Python Histograms

Using Venvs

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-histogram/hist initially). There’s also a new test suite helper for libraries targeting the UHI indexing spec.

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, 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,…

Packaging a Scientific Python Project

🎡 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 (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 π

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…

Building Python Packages

Tools to help you write better code

scikit-build-core 0.10

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…

The two flavors of Python 3.13

🎡 cibuildwheel 2.19

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…

Modern binary build systems

Python 3.13

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

Software Quality Assurance Tooling

Learning Rust with Advent of Code 2023

Inline run dependencies in pipx 1.4.2

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

Project report - henryiii

Software Quality Assurance Tooling

C++23

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

The Scientific Python Development Guide

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 ,…

Introducing repo-review

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

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.

Software Quality Assurance Tooling

Setup Windows

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

What's new in Python 3.11

🎡 cibuildwheel 2.10

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…

Everything you didn't know you needed

Python 3.10

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.

Building binary extensions with pybind11, scikit build, and cibuildwheel

Awkward Packaging: building Scikit-HEP

Python 3.11

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…

ISciNumPy.dev · RSS Amplifier