Hi,

Here is my thought ....

PEP-518 package may be without setup.py and may still be based on setuptools.  
For
that kind of package, work around using flit plugin doesn't work.

Packaging Python Projects tutorial has such example without setup.py by 
presenting
only setup.conf case as the first choice case. 
  https://packaging.python.org/tutorials/packaging-projects/

It even states:
> Dynamic metadata (setup.py) should be used only as an escape hatch when 
> absolutely
> necessary. setup.py used to be required, but can be omitted with newer 
> versions of
> setuptools and pip.

Of course, if I add the following escape hatch setup.py to the example using
setup.cnf only, such test package can build Debian package OK using the old 
setup.py
mechanism.

> #!/usr/bin/python3
> import setuptools
> setuptools.setup()

I think what we need future oriented solution, here.  We should create another 
plugin
for "build" which uses python3-build package as the PEP518 build backend.

   https://pypi.org/project/build/
   https://github.com/pypa/build
   https://packages.debian.org/unstable/python3-build

For Debian package building, we need to use --no-isolation to make sure build 
without
network access and with proper version.

> python3 -m build --no-isolation

Then install from generated wheel package file or from build directory, I guess.

This is more future oriented generic solution than the manual workaround using a
plugin or patching upstream source for each build tools.

If this "build" plugin matures, it should be selected automatically for package 
with
projects.toml.

Regards,

Osamu

Reply via email to