[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: PEP-517/PEP-518 Support In Debian



On Thursday, June 4, 2020 7:39:59 PM EDT Nicholas D Steeves wrote:
> Hi,
> 
> Scott Kitterman <debian@kitterman.com> writes:
> > 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'.
> 
> While importing the latest release of Fissix (a grammar parser used by
> Bowler) I found that it had a pyproject.toml but no setup.py.
> 
> >> > 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".
> 
> Is there existing documentation around if/how build-backend can be used
> to work around the absence of setup.py?
> 
> > 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.
> 
> I think this is probably what is needed to unblock work on fissix (and
> thus Bowler), because its Makefile has:
> 
>     python -m pip install -r requirements.txt
>     python -m pip install -r requirements-dev.txt
>     python -m flit install --symlink
> 
> [snip]
> 
> Any advise for existing workarounds would be appreciated.  So far the
> only idea I've had is writing or generating a setup.py, and then adding
> it as a quilt patch.

That is probably the best approach for now.

Ultimately we have two choices:

1.  Add per-backend capability into pybuild as I have done with flit.  
Depending on how many of them there are, this may or may not be a reasonable 
approach.

2.  Use the pep517 module with pip in our package build system.  I think 
Fedora has gone this direction.

I prefer #1 because we want to produce a traditional bdist, not wheels, but 
we'll have to do the work.  I don't think we want an impenetrable morass of 
zip files in /usr/lib/python3/dist-packages.

Scott K 

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: