#1111004#5
Date:
2025-08-13 12:24:15 UTC
From:
To:
Dear Release Team,

I'd like to transition the nanobind package after an ABI bump, which
requires a rebuild of at least fenics-dolfinx as it exposes the nanobind
ABI.

Ben file:

title = "nanobind";
is_affected = .depends ~ /\bpython3-nanobind\b/ | .depends ~ /\bpython3-nanobind-abi[0-9]+\b/ | .provides ~ /\bpython3-nanobind-abi[0-9]+\b/;
is_good = .depends ~ /\bpython3-nanobind-abi16\b/ | .provides ~ /\bpython3-nanobind-abi16\b/;
is_bad = .depends ~ /bpython3-nanobind-abi15\b/ | .provides ~ /\bpython3-nanobind-abi15\b/;
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmicg+4ACgkQzIxr3RQD
9MoLeA/+Ki7BrxFkrxZQqka6PN3HQpTpB6pkHR2QINXnFAMtQh5aHxMeJp+8xfbG
IVLx2+GBY1q6CGW39aWqewa/OBNQ+DT614qqo7WEmlzXbDAnOzylV/3QlYS0O/f6
Pr1fJmZmE3q0Q7WRYrP6vw5cG1pW1elqKfEcAJuiEBtDedhnwQOQuhokc2f7Ml9r
ci0TOKOR6Zl5SXawFs4+wjgCEfoiJ4DHcnEkB6LKo4w08R2FiqF1r4QoiSWgXJit
S4AK04Th9ILjNIdB0GBVpMLp0ALJ3YJZx/BBVKr/EUHKNZhMXOhMkl7h9QbI6jF0
Elv+QtRq6rqRzTYZc0T3FUJ/cGh0rx98GZAGZZFK49ptOd3SzZhYX9aiCFdcoyey
S/vM4Ep7wQW2jAzh+Mzr61DsvDuEDgE7L4+iTiMVY69FXskZoMugWlxm28hJwOy2
LdW4TR5v7HBVbCR4Qvlxhpu84RjjyDNWKTf3M8UieRyTPWNcL1KeQ/mVbpXHByad
P87TDBeSvw3D5WkQm57ETQj8pYC1bmZLfCftk35tHKJ6kd2bF7PuHF4PnhVKGlD0
BwyKclC7m/GsIyeaHV9+Xuk8sk79Y6nrGLYfxSiZV0/BXKva0ZMKe7ZSGky9Xzet
t3G7WDszKbK+tOBX7AP9Qa+n0jcAOXs5exNL2dL5eannPNDb5LQ=
=ENjJ
-----END PGP SIGNATURE-----

#1111004#12
Date:
2025-08-13 14:43:57 UTC
From:
To:
Thanks for this Timo. nanobind 2.8 is also needed for scipy 1.16
support.

I suspect the entire fenicsx stack will need rebuilding.
This python3-nanobind-abi is not being used as a Dependency by the
needing packages.
Is there a way to get it declared?

Dependencies on the numpy abi are generated by dh_numpy3, activated by
dh-sequence-numpy3.
Should we create a dh_nanobind tool (with dh-sequence-nanobind) for the
client packages to use?
That would help streamline these nanobind transitions.

Drew

#1111004#17
Date:
2025-08-13 14:43:57 UTC
From:
To:
Thanks for this Timo. nanobind 2.8 is also needed for scipy 1.16
support.

I suspect the entire fenicsx stack will need rebuilding.
This python3-nanobind-abi is not being used as a Dependency by the
needing packages.
Is there a way to get it declared?

Dependencies on the numpy abi are generated by dh_numpy3, activated by
dh-sequence-numpy3.
Should we create a dh_nanobind tool (with dh-sequence-nanobind) for the
client packages to use?
That would help streamline these nanobind transitions.

Drew

#1111004#22
Date:
2025-08-13 21:53:46 UTC
From:
To:
Hi Drew,

* Drew Parsons <dparsons@emerall.com> [2025-08-13 16:43]:

I added a .pydist file which is installed as
/usr/share/python3/dist/python3-nanobind and injects the correct
dependencies; python3-cffi does it the same way. For some reason, this
does not seem to get picked up by fenics-dolfinx, though. I'm not sure
if this is an error on my part or if there is a bug in the (quite
complex) d/rules of fenics-dolfinx.


Cheers
Timo

#1111004#27
Date:
2025-08-14 10:29:16 UTC
From:
To:
I don't know the .pydist mechanism deeply, but reading the dh_python3
man page, I see it's operating through the Python Requires-Dist
declarations, the same one that dh_python3 uses to identify normal
python package dependencies.

For python3-dolfinx-real and python3-dolfinx-complex we added the
dependency manually, handling ${nanobind:Upstream-Version} ourselves.
But we didn't (yet) do that for python3-basix, or python3-dolfinx-mpc or
python3-scifem.

I think the difference with nanobind is that these client packages only
need nanobind at build time, not a runtime.  Their build uses nanobind
to generate the python extension library, but after that the symbols are
already in the library and the package doesn't need python3-nanobind
when being used.

In that sense, the .pydist is right for packages that do use nanobind at
runtime,
but doesn't directly help packages that use it only for building python
extensions.
It seems like we might want the tools to generate a "Built-Using" entry.

Drew

#1111004#32
Date:
2025-08-15 15:43:58 UTC
From:
To:
Dear Release Team,
hi Timo,

FYI a transition of nanobind will require to rebuild fenics-basix too, in
addition to fenics-dolfinx.

Upstream FEniCS (which is the same for both libraries) may release a new
version of both towards the end of the summer, so it's good to rebuild the
version we have now and get ready with the newest nanobind in preparation
for the upcoming FEniCS release


Thanks,
Francesco

#1111004#37
Date:
2025-08-15 15:43:58 UTC
From:
To:
Dear Release Team,
hi Timo,

FYI a transition of nanobind will require to rebuild fenics-basix too, in
addition to fenics-dolfinx.

Upstream FEniCS (which is the same for both libraries) may release a new
version of both towards the end of the summer, so it's good to rebuild the
version we have now and get ready with the newest nanobind in preparation
for the upcoming FEniCS release


Thanks,
Francesco