Closed rossburton closed 2 weeks ago
This only happens when using the deprecated CLI interface. When using a PEP 517-compatible frontend setuptools will not use easy-install
, instead it will return a list of dependencies to the frontend via the get_requires_*
hooks and it is up to the frontend to do whatever they want with it.
Because the CLI capabilities of python setup.py *
are deprecated we are no longer accepting feature requests on top of those.
What's the problem this feature will solve?
If a setup.py has an entry in
setup_requires
that is not satisfied, setuptools will use _easyinstall to install it. In a Linux distribution context this is both non-deterministic (as we don't know what versions of what packages will be downloaded), doesn't allow source caching, and fails if built on a machine without internet.Notably this installation is incredibly quiet, using
git-pw
as an example:At no point so I see "installing pbr".
I propose adding an option so that this silent installation can be blocked and result in a build failure.
Describe the solution you'd like
I propose adding an option so that this silent installation can be optional and result in a build failure if enabled.
Alternative Solutions
We always do builds inside a user namespace with networking disabled, so it typically fails once the connection has timed out. We also have a (horrible) patch that predates the user namespacing at https://git.yoctoproject.org/poky/tree/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch.
Additional context
No response
Code of Conduct