[Python-modules-team] Bug#643873: Making Numpy transition less painful
Jakub Wilk
jwilk at debian.org
Fri Sep 30 15:17:50 UTC 2011
Source: python-numpy
Version: 1:1.5.1-2
Severity: normal
Numpy transitions are currently very painful: they involve large number
of packages, and they need to happen even when Numpy *didn't* break
binary compatibility. Here's my proposal to improve this situation.
Virtual packages
================
python-numpy would provide two virtual packages:
- python-numpy-abi$N and
- python-numpy-api$M.
$N would be changed each time C_ABI_VERSION is changed upstream, and
$M would be changed each time C_API_VERSION is changed upstream.
Dependencies generated by dh_numpy
==================================
dh_numpy would generate dependency either on "python-numpy-abi$N" (by
default) or on "python-numpy-api$N" (if a special option, say,
--strict, is used). The second option would be needed for packages which
are overzealous at checking ABI unless/until we fix them (we have at
least one package in the archive which does that).
Avoiding strict dependencies for arch:all packages
==================================================
dh_numpy should not generate any dependencies in arch:all packages. Such
packages cannot rely on Numpy ABI, and rebuilding them for transition
purposes is causes lot of trouble. (We already had to do this in the
past!) For the same reason, /usr/share/python/dist/python-numpy needs
to go away.
Open problems
=============
Virtual package names
---------------------
How should $N and $M be generated? At least C_ABI_VERSION seems to be a
big integer, at it'd look ugly if we used is an $N. :/
Gracefully handling the upcoming transition
-------------------------------------------
A number of packages in the archive already has dependency on
"python-numpy (<< 1:1.6)", which is not satisfiable by the package in
experimental. To avoid this transition (or at least reduce its size) we
could do one of two things:
1) Implement the proposed changes first in unstable, schedule binNMUs,
then upload Numpy 1.6 to unstable.
2) Implement the proposed changes only for Numpy 1.6, but make dh_numpy
generate alternative versioned dependencies:
"python-numpy (>= 1:1.5.1), python-numpy-abi$N | python-numpy (<< 1:1.6.2)".
Then upload Numpy 1.6, schedule binNMUs.
--
Jakub Wilk
More information about the Python-modules-team
mailing list