Dne 04.12.2022 v 15:55 Jon Turney via Cygwin-apps napsal(a):
On 02/12/2022 12:10, Jon Turney wrote:
On 01/12/2022 22:20, Libor Ukropec wrote:
Hello,

I have question to cygclass python-wheel. It seems that setup.py is being omited in some python packages (here I faced it in the python-fasteners) and as described here: https://setuptools.pypa.io/en/latest/setuptools.html , chapter "setup.cfg-only projects"

 > If setup.py is missing from the project directory when a PEP 517 build is 
invoked,
 > setuptools emulates a dummy setup.py file containing only a 
setuptools.setup() call.

Currently the cyglass requires the setup.py being present, otherwise it throws error "No Python Distutils module detected"

IMHO would be nice if the cygclass handle this case. Or should I create a patch that inserts empty setup.py module instead?

Yeah, it seems this is definitely something that needs updating in cygport, so thanks for pointing that out.

It's fairly straightforward to drop the check at [1], or perhaps it's more appropriate to change it to check for either setup.py or setup.cfg?

But then we want to run 'python -msetuptools.launch setup.py bdist_wheel' to build the wheel.

In a very quick bit of research, it' seems the modern equivalent would be something like 'python -m build --wheel', but we don't seem to have a python-build package?

The other alternative seems to be 'pip wheel'

Attached is a cygport patch which uses that for the setup.py-less case.

(possibly we could use it in all cases, but I'm being conservative with this 
change)

I'm not very familiar with the evolving state of python packaging, so I think I may need a bit of help getting this right!

Hi Jon,

definitely you did not need a help - I did a test on python-fasteners

before your patch:

    $ cygport python-fasteners.cygport download all check
    *** Warning: LICENSE not defined
    >>> Preparing python-fasteners-0.17.3-1.noarch
    >>> Unpacking source 0.17.3.tar.gz
    >>> Preparing working source directory
    >>> Compiling python-fasteners-0.17.3-1.noarch
    *** ERROR: No Python Distutils module detected

applying your patch, all works fine:

    [...]
    >>> Creating source patches
     0 files changed
    >>> Creating source package
    python-fasteners-0.17.3-1.src/
    python-fasteners-0.17.3-1.src/0.17.3.tar.gz
    python-fasteners-0.17.3-1.src/python-fasteners.cygport

    >>> python36-fasteners requires: python36
    >>> python37-fasteners requires: python37
    >>> python38-fasteners requires: python38
    >>> python39-fasteners requires: python39
    >>> python3-fasteners requires:  python39-fasteners
    >>> Testing python-fasteners-0.17.3-1.noarch
    *** Info: No testsuite detected.

Success :)

So I confirm it works at least for this one use case.

Regards,
Libor

Reply via email to