On Monday, April 13, 2020 5:18:53 AM EDT Dmitry Shachnev wrote: > Hi Scott! > > On Sun, Apr 12, 2020 at 06:31:57PM -0400, Scott Kitterman wrote: > > This being roughly the mid-point in the development cycle, I thought it > > might be good to see where we are in terms of future Python packaging > > developments. > > > > As I understand it, PEP-517 and PEP-518 are 'the future'. > > > > I took a look at the presence of pyproject.toml files in the Debian > > archive. There are currently 99 packages. Of those, only 28 specify a > > 'build-backend', which is required by 517/518 to be useful for building a > > package. > > > > 25 specify: build-backend = "setuptools.build_meta" (including setuptools) > > 3 specify: build-backend = "flit_core.buildapi" (including flit) > > pyqt5 and pyqt5webengine specify: build-backend = "sipbuild.api".
So they do. They didn't show up in my codesearch.d.n results, that makes me wonder what else I missed. If anyone has an idea of a better way to track this, please speak up. > > If build-backend is not specified, the build system has to fall back to > > setup.py. > > > > I've recently package flit (just arrived in Testing) and written a flit > > plugin for pybuild that's pending review for merging[1]. I also packaged > > pep517 for our pip package, so that's available to support future Debian > > tool development in this area. P1otr merged the flit plugin a little while ago, so it'll be in the next dh- python upload. > > For the moment, I guess we are in reasonable shape, but it might be useful > > to have a pybuild plugin to use PEP517/setuptools.build_meta in lieu of > > setup.py with setuptools/distutils when available. In the future, this > > will be the primary API and the sooner we start to use it, the better. > > One issue that comes to mind: how will we specify the install location in a > way that will work with any backend? In other words, what is the replacement > for distutils' --install-layout=deb? I think the answer to that question is going to be build-backend specific. The good news is that the legacy processing for setup.py with setuptools/ distutils will be around approximately forever, so a complete answer to the question isn't urgent. One related question is if we are willing to bring pip into our package build process? I took a quick look at python3-pep517 to see how hard it would be to add support for build-backend = "setuptools.build_meta" to pybuild. My quick look answer is not too hard if we are willing to bring pip into the process. If we aren't willing to involve pip (which does bring a lot of complexity), I think there will be substantially more Debian specific code required to support it. I expect build-backend = "sipbuild.api" will need custom support as well, but I haven't looked into it at all. Scott K
signature.asc
Description: This is a digitally signed message part.