Hi all,

Here's a short progress report of how things are going, plus an open
question that still needs to be agreed upon.

## Building against 3.15 status update

I continue to send patches to as many packages as possible to get them
to build. Lately, more and more build failures are caused by
non-Python-3.15 breakages, but it's still good to fix them. From my
large selection of 7k packages, 210 packages are still failing to build.
From the release team's smaller transition selection, 5 are failing to
build and 46 are failing their autopkg tests (although many of them are
just the autodep8 tests).

On the uploading front, there has also been some progress, with 82
resolved bugs as of today. Thanks to everyone that is giving a hand
there! Please continue to do so, there are currently 87 patches waiting
to be applied [1].

## Testing with 3.15 as the default version

In parallel, I've started testing packages setting Python 3.15 as the
default Python version. This catches other problems, in particular for
packages that only build against the default. For this case, I've
selected a subset of 1180 packages. Out of those, 872 packages have
already been built successfully, 67 failed to build and the rest are
blocked by build-dependencies.

I've started filing bugs for this using the python3.15-default tag [2].
The list is currently small and not as urgent.

To get this going, I had to make a couple of changes to the tooling,
like the contents of the python3.15 package [3] (thanks Matthias for
applying it!), or updating dh-python to stop using glob1 [4].

## Discussion point: free-threaded / -nogil packages

As I had mentioned in my initial email [5], we need to somehow modify
our tooling to allow packages to declare that they support building
against the no-gil variant.

I've been working on a proposal that creates the -nogil packages from
the python3.15 package [6]. This would add the python3.15t interpreter
and its corresponding standard library. The MR is a work in progress,
there are some decisions I'm not certain of, like whether we should ship
a completely separate standard library (like upstream expects), or only
the .so files (to avoid duplicating ~20MB of .py files).

And this doesn't solve the open question of how packages can indicate
whether they support -nogil or not. As mentioned before, these are the
options that I can think of:

- We could use something similar to XS-Python-Versions (like
  XS-Python-Variants), but this comes with some parsing challenges.
- We could rely on having a build dependency on python3-nogil-dev or
  python3-nogil-all-dev, for packages that support the variant.
- We could add a parameter to py3version so that it also lists the
  -nogil variant as a separate version. This should make it easier for
  packages where we need to explicitly handle multiple python versions.

We probably will need to implement a combination of those.

It would be good if we could discuss and agree on how we are going to
manage this soon.

Happy Hacking,

[1]: 
https://bugs.debian.org/cgi-bin/[email protected]&tag=python3.15
[2]: 
https://bugs.debian.org/cgi-bin/[email protected]&tag=python3.15-default
[3]: https://salsa.debian.org/cpython-team/python3/-/merge_requests/45
[4]: https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/91
[5]: https://lists.debian.org/debian-python/2026/08/msg00065.html
[6]: https://salsa.debian.org/cpython-team/python3/-/merge_requests/46
--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/

Attachment: signature.asc
Description: PGP signature

Reply via email to