Hi all, It's been a few weeks since the previous update, so I thought it made sense to share how the preparation for the transition is going and highlight what the most important next steps are.
## Status on building packages against 3.15 By now, the 7k+ packages that were included in my selection of affected packages have gone through at least one attempt to build. For the last batch of build failures, rather than trying to write patches to all of them, Marga helped me with filing bugs with links to the logs and the errors. With the python3.15 usertag [1] we can see that there are 149 solved bugs (thanks everybody who helped with that!), 65 patches that still need to be applied and uploaded, and 87 bugs that need investigating. ## Issues with dh-python During the rebuilds I found two issues with dh-python that I've sent MRs for. The first one is straightforward to fix: it uses glob1 which is deprecated. The MR [2] is approved and just needs to be merged. This won't become a problem until Python 3.15 is the default version, but for testing purposes it would be good to have it fixed now. The second one is a bit more tricky but also a lot more urgent, as it needs to happen before 3.15 is marked as supported: When a package ships metadata for several Python versions and the files are not all identical, dh-python leaves a partial, invalid dist-info directory under the version-specific path. This has been happening for a long time, but with 3.15 it becomes a problem because Python now raises an exception for those broken directories [3] and any package that attempts to read such a directory chokes on it and needs to be patched to handle this situation. I've been sending patches to different packages that are affected by this issue, e.g. setuptools [4], but this is a problem that is caused by dh-python (i.e. it doesn't happen outside of Debian) and so not all upstreams are eager to accept such a change. In other words, we should fix dh-python to stop creating broken directories in this case, and do so before we start building against 3.15. I've sent two alternative MRs for dealing with this. The first one [5] merges the files, while the second one [6] leaves the metadata directories as they are, instead of keeping only the files that differ. Either solution is fine by me, but what we can't do is keep the current behavior as it's creating invalid metadata directories, and we will continue to run into bugs that nobody else sees, because we are creating this invalid situation in the first place. ## Next steps on moving 3.15 to supported version After a slight delay in the upstream release, Python 3.15 is now out, and yesterday Stefano uploaded the 3.15.0-1 package to unstable. 3.15 is not yet listed as a supported version in python3-defaults, so packages are not building against it yet. As mentioned above, ideally dh-python should be fixed before this step happens, to avoid creating broken directories that will bite us in the future. Once that's done, the next step is to add 3.15 to the supported versions, coordinate with the release team to actually start the transition [7]. And then all the python3.15 bugs that are marked as 'important' need to be raised to 'serious' (92 bugs currently in this category). Happy Hacking, Maxy [1]: https://bugs.debian.org/cgi-bin/[email protected]&tag=python3.15 [2]: https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/91/diffs [3]: https://docs.python.org/3.15/whatsnew/3.15.html#importlib-metadata [4]: https://github.com/pypa/setuptools/pull/5332 [5]: https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/92 [6]: https://salsa.debian.org/python-team/tools/dh-python/-/merge_requests/93 [7]: https://release.debian.org/transitions/html/python3.15-add.html --"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity."
-- Dennis Ritchie Saludos /\/\ /\ >< `/
signature.asc
Description: PGP signature

