[Distutils] Ensuring source availability for PyPI entries / PEP: Build system abstraction for pip/conda etc

Barry Warsaw barry at python.org
Thu Feb 11 10:19:08 EST 2016

On Feb 11, 2016, at 01:58 PM, Nick Coghlan wrote:

>Hmm, I got the py2dsc reference from https://wiki.debian.org/Python/Packaging
>but the newer https://wiki.debian.org/Python/LibraryStyleGuide doesn't appear
>to mention any particular way of generating the initial packaging skeleton
>from the upstream project.

I'm not sure what the state of py2dsc is, and I personally don't use it.
Mostly I cargo-cult other packages I know to be good ;).  I do think other
people still use py2dsc and python-stdeb though, and if Piotr is maintaining
it, it'll be good (he's also the maintainer of pybuild and dh_python{2,3}, the
recommended and most popular build tools for Python packages in Debian).

And while initial packaging is important, it's a comparatively rare event in
contrast to ongoing maintenance (e.g. updating to new upstreams).  py2dsc
won't help you there, but there are a stack of tools that do, some of which
are tied to various team workflows.  E.g. the LibraryStyleGuide you mention
(and the current git-based workflow[1]) are standards for the Debian Python
Modules Team (DPMT) which maintains the majority, but definitely not all,
Python packages in the archive.  Lots (even pure-Python ones) are maintained
elsewhere such as the OpenStack team, or just by individual maintainers using
whatever workflows they want.

Some maintainers want to do new upstream releases from (signed?) git tags but
the consensus for DPMT, and I think most Python package maintainers in Debian,
is to use a tarball-based workflow.

>Anyway, the core point is wanting to ensure we can automate not only
>"direct to binary" installation with Python specific tools, but also
>the "convert to alternate source archive format and build from there"
>workflows needed by redistributor ecosystems like Linux distros,
>conda, Canopy, PyPM, Nix, etc.


Note that not even all Debian-based distros are equal here.  For example, in
Debian, especially for architecture independent (i.e. pure-Python) packages,
the source package to binary package step happens on the maintainer's local
system, while in Ubuntu we upload the source package and let the centrally
maintained build daemons produce the resulting binary packages.


[1] https://wiki.debian.org/Python/GitPackaging
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20160211/4d7071de/attachment-0001.sig>

More information about the Distutils-SIG mailing list