-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
setuptools version
61.0.0
Python version
3.9
OS
Debian Unstable
Additional environment information
No response
Description
kiwisolver 1.4.0 (I haven't checked earlier versions, but kiwisolver 1.4.0 did modernise their build, so issues with earlier versions will likely be to different code) can no build from source. I filed nucleic/kiwi#130 with the kiwisolver developers, but it appears that setuptools 60.10.0 does work. Based on looking at v60.10.0...v61.0.0 and the error message that appears (see output), I think this is related to the new(?) package discovery mechanism. I'm not a kiwisolver developer, so I can't answer questions about their build system (other than link you to the repository), but I'm filing this as it appears to be a regression (give setuptools 61 came out 10 hours ago when I wrote this).
Expected behavior
I expect pip install kiwisolver
would build a wheel and install it.
How to Reproduce
- Run
pip install kiwisolver
(given kiwisolver has wheels, you may need to disable using wheels to not download a pre-built wheel).
Output
/tmp/pip-build-env-nwrt4o9m/overlay/lib/python3.9/site-packages/setuptools/config/pyprojecttoml.py:100: _ExperimentalProjectMetadata: Support for project metadata in `pyproject.toml` is still experimental and may be removed (or change) in future releases.
warnings.warn(msg, _ExperimentalProjectMetadata)
Install ``trove-classifiers`` to ensure proper validation. Meanwhile a list of classifiers will be downloaded from PyPI.
error: Multiple top-level packages discovered in a flat-layout: ['py', 'kiwi'].
To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.
If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:
1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names
To find more information, look for "package discovery" on setuptools docs.