Package: dh-python
Version: 4.20201102+nmu1
Severity: wishlist
Please add "Suggests: flit" to make Best Current Practice
python packaging a little more discoverable.
Boring rationale follows (you can probably ignore this).
Every time I try to understand how to do Python packaging,
I get confused between under-documented "just run poetry build-world" and
the over-documented "poetry is pip plus virtualenv plus wheel plus X,
pip is setuputils plus Y,
setuputils is disutils plus Z" with a looooooong tail of historical baggage.
Today I think I got this solved (conversation trimmed):
<twb> I'm sick of setup.py; what's Best Current Practice for declarative
python packaging for Debian?
<twb> apparently in 2020 the cool kids prefer https://python-poetry.org/,
but
next year they will probably like something else.
⇒ https://packages.debian.org/sid/python3-poetry-core
⇒ https://www.python.org/dev/peps/pep-0517/
⇒ https://www.python.org/dev/peps/pep-0518/
⇒
https://grassfedcode.medium.com/pep-517-and-518-in-plain-english-47208ca8b7a6
<twb> So I guess I write a pyproject.toml? How do I make debhelper $@ -B
python(?) see that?
<AAA> twb: pip packaging is pretty easy
<twb> pip doesn't seem to even be a dependency for debhelper or python
packaging
<twb> I don't see any interesting rdeps for python3-pip either...
<BBB> twb: pybuild(1) has grown some support for pyproject.toml
https://manpages.debian.org/unstable/dh-python/pybuild.1.en.html
<twb> Ah thanks, I think that is the bit I was missing
<twb> add 'Build-Depends: flit, python3-toml' and debuild will Just Work
with pyproject.toml
<twb> I feel like pybuild should "Suggests: flit" to make this easier to
discover :/
<twb> Or "Enhances: dh-python" in flit (less discoverable).
PS: I had a quick look for other imports that might warrant a Suggests, but
the rest of /usr/share/dh-python/dhpython/build looks like legacy things.
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'testing-security'), (500, 'unstable'),
(1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 5.10.0-6-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages dh-python depends on:
ii python3 3.9.2-2
ii python3-distutils 3.9.2-1
dh-python recommends no packages.
Versions of packages dh-python suggests:
ii dpkg-dev 1.20.7.1
ii libdpkg-perl 1.20.7.1
-- no debconf information