[Debian-med-packaging] Bug#1085728: python-multipart: Make room for https://pypi.org/project/multipart/ somehow?
Colin Watson
cjwatson at debian.org
Wed Nov 6 18:00:43 GMT 2024
This bug is starting to accumulate other Python 3.13-related bugs that
it blocks, so I'd like to agree a plan.
On Tue, Oct 22, 2024 at 12:03:13PM +0100, Colin Watson wrote:
> Please see https://github.com/pypa/packaging-problems/issues/818 for
> background on this.
This has been mostly sorted out upstream. It should now be possible to
use both multipart and python-multipart in parallel, and
python-multipart has some transitional support for projects that do
`import multipart` as long as only python-multipart is installed. In a
Debian context, this is a stricter criterion, because it's more likely
to have both packages installed when they're system packages than when
they're only in a project-specific virtualenv; but it should still be
manageable enough.
I believe these are all the reverse-dependencies involved, and I've CCed
all the affected maintainers (assuming they read their
@packages.debian.org email, anyway):
$ reverse-depends src:python-multipart
Reverse-Recommends
==================
* python3-moto (for python3-multipart)
* python3-starlette (for python3-multipart)
Reverse-Depends
===============
* matrix-synapse [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x]
* python3-asgi-csrf (for python3-multipart)
* python3-gavo (for python3-multipart)
Packages without architectures listed are reverse-dependencies in: all, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, riscv64, s390x
$ reverse-depends -b src:python-multipart
Reverse-Testsuite-Triggers
==========================
* asgi-csrf (for python3-multipart)
* python-moto (for python3-multipart)
Reverse-Build-Depends
=====================
* fastapi (for python3-multipart)
* matrix-synapse (for python3-multipart)
* python-curies (for python3-multipart)
* starlette (for python3-multipart)
Reverse-Build-Depends-Indep
===========================
* asgi-csrf (for python3-multipart)
* python-moto (for python3-multipart)
So, my proposal is as follows:
* Rename python-multipart source package to python-python-multipart,
and its binary package to python3-python-multipart. Yes, it's a bit
ugly, but there are currently 13 other binary packages in the archive
whose names start with "python3-python-", so there's precedent, and
it matches the way we usually transform PyPI names into Debian
package names. python3-python-multipart should have Breaks/Replaces:
python3-multipart (<< 0.1) (the oldest release of
https://pypi.org/project/multipart/, which is also newer than any
release of https://pypi.org/project/python-multipart/).
* Since there are only seven other source packages involved (asgi-csrf,
fastapi, gavodachs, matrix-synapse, python-curies, python-moto, and
starlette), it should be fairly straightforward to update all their
Depends/Recommends/Build-Depends/Build-Depends-Indep/Testsuite-Triggers
to use python3-python-multipart.
* Once all this has reached testing, the way will be clear to upload a
new python-multipart source package based on
https://pypi.org/project/multipart/, building a new python3-multipart
binary package. Conveniently, the version numbers of multipart and
python-multipart upstream are such that this won't require an epoch.
The new python3-multipart binary package should declare Breaks on old
versions of all the packages where we had to update run-time
dependencies (matrix-synapse, python3-asgi-csrf, python3-gavo,
python3-moto, and python3-starlette).
How does this sound? Sandro, I'd especially like to get your feedback
on this, because doing a source+binary package rename in an NMU sounds
... painful, especially if it turns out later that there wasn't
consensus.
Thanks,
--
Colin Watson (he/him) [cjwatson at debian.org]
More information about the Debian-med-packaging
mailing list