On 2025-10-07 22:05, Paul Gevers wrote:
Hi Drew,
On 10/7/25 21:37, Drew Parsons wrote:
python3-dolfinx (python3-dolfinx-real, python3-dolfinx-complex)
and python3-scifem in testing are out of sync with nanobind, recently
updated to 2.9.2-2. The issue is the nanobind ABI, now updated to
python3-nanobind-abi16.
dolfinx and scifem are updated to python3-nanobind-abi16, but the
versions in testing are ignorant of the nanobind ABI This causes debci
errors in migration testing so the new versions are prevented from
migrating to testing. Fixing this is the reason for the updates in
unstable.
I don't follow. nanobind already migrated to testing a week ago. How
can the packages in testing pass if this is the problem? It's the
packages from unstable that don't pass in testing. I notice that the
packages seem to pass in unstable. Are you missing another (versioned)
(test) dependency maybe?
No, it's due to the nature of how the python extensions use nanobind.
The dependency on nanobind is actually a Build-Dependency only. The ABI
gets inserted into the built python extensions (the python package .so)
so at runtime the packages no longer need nanobind.
The problem is that with the fenics packages, the different components
use each other.
So the old python3-dolfinx (build against old nanobind) fails to work
with the new rebuilt python3-basix (build against new nanobind with
python3-nanobind-abi16). Old python-dolfinx does not know that it is
incompatible with new python3-basix.
Dependency on the virtual package, python3-nanobind-abi16, is intended
to fix the situation, and is the change that has been made in unstable
that I am trying to migrate.
So at the moment when python3-basix/0.9.0-3 (built with the new
python3-nanobind-abi16) tries to migrate, it tests against old
python3-dolfinx/1:0.9.0-7 (build against old nanobind). But
python3-dolfinx/1:0.9.0-7 does not know that it is incompatible with
python3-nanobind-abi16 (against, this is the problem fixed in unstable),
and so the CI daemon does not think to try with new
python3-dolfinx/1:0.9.0-8 instead.
So once python3-dolfinx/1:0.9.0-7 and python3-scifem/0.6.0-2 are cleared
from testing, there well be clean slate, allowing python3-basix/0.9.0-3
to migrate together with python3-dolfinx/1:0.9.0-8 and
python3-scifem/ 0.10.0-1. After that there ought to be no further
issues, since python3-nanobind-abi16 will then be used to monitor these
dependencies.
Drew