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 failures.
[Read More]🎡 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 few of the new features from those releases, too, with a
highlight on a larger feature that can use more explaining: inherit
for
overrides.
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).
[Read More]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 it’s 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 - one that is becoming reality. Pipx 1.4.2 has an experimental
implementation of the provisionally accepted PEP 723, and I’d like to show
it off here, as it’s tremendously useful for simple scripts & utilities. Support
is also available in Nox 2024.04.15 and Hatch 1.10.
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
/consteval
, module support for the
standard library, std::print
to supplement std::format
, and a
std::generator
to support coroutines. There are also several general features,
lambdas and classes get along much better now, there are new preprocessor
additions (!), a stacktrace library, flat maps/sets, and new std::optional
monadics, deducing this
, and many various additions.
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, docs, task runners, CI, tests, and much more! There also are sections of tutorials, principles, and some common patterns.
This guide (along with cookie & repo-review) started in Scikit-HEP in 2020. During the summit, it was merged with the NSLS-II guidelines, which provided the basis for the principles section. I’d like to thank and acknowledge Dan Allan and Gregory Lee for working tirelessly during the summit to rework, rewrite, merge, and fix the guide, including writing most of the tutorials pages and first patterns page, and rewriting the environment page as a tutorial.
[Read More]