-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Labels
error messagesMessaging when something goes wrongMessaging when something goes wrongresolverRelated to the package resolverRelated to the package resolver
Description
When using --resolution=lowest (or lowest-direct), it's sadly not uncommon to hit errors running setup.py from very old versions of things.
Unfortunately, uv pip compile does not include the full chain of how a dependency was depended on, which can make it difficult to debug. For example:
~/p/cryptography ❯❯❯ uv pip compile --resolution=lowest-direct --universal -p 3.7 --extra=docs --extra=docstest --extra=pep8test --extra=test --extra=test-randomorder --extra=nox --extra=sdist --unsafe-package=cffi --unsafe-package=pycparser --unsafe-package=setuptools --unsafe-package=cryptography-vectors pyproject.toml > ci-constraints-requirements.txt && git diff
warning: The requested Python version 3.7 is not available; 3.13.0 will be used to build dependencies instead.
⠙ Resolving dependencies... warning: The direct dependency `build` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `certifi` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `check-sdist{python_full_version >= '3.8'}` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `click` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `cryptography-vectors` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `mypy` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `nox` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `pretend` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `pytest-benchmark` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `pytest-cov` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `pytest-randomly` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `pytest-xdist` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `readme-renderer` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
warning: The direct dependency `ruff` is unpinned. Consider setting a lower bound when using `--resolution-strategy lowest` to avoid using outdated versions.
⠋ atomicwrites==1.4.1 × Failed to download and build `wsgiref==0.1.2`
╰─▶ Build backend failed to determine requirements with `build_wheel()` (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
requires = get_requires_for_build({})
File "/Users/alex_gaynor/Library/Caches/uv/builds-v0/.tmpefXcVs/lib/python3.13/site-packages/setuptools/build_meta.py",
line 333, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=[])
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/alex_gaynor/Library/Caches/uv/builds-v0/.tmpefXcVs/lib/python3.13/site-packages/setuptools/build_meta.py",
line 303, in _get_build_requires
self.run_setup()
~~~~~~~~~~~~~~^^
File "/Users/alex_gaynor/Library/Caches/uv/builds-v0/.tmpefXcVs/lib/python3.13/site-packages/setuptools/build_meta.py",
line 521, in run_setup
super().run_setup(setup_script=setup_script)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/alex_gaynor/Library/Caches/uv/builds-v0/.tmpefXcVs/lib/python3.13/site-packages/setuptools/build_meta.py",
line 319, in run_setup
exec(code, locals())
~~~~^^^^^^^^^^^^^^^^
File "<string>", line 5, in <module>
File
"/Users/alex_gaynor/Library/Caches/uv/sdists-v6/pypi/wsgiref/0.1.2/TC3J4nFCD9kJFnrhcTIuq/wsgiref-0.1.2.zip/ez_setup/__init__.py",
line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
~/p/cryptography ❯❯❯
Here, neither wsgiref nor atomicwrites is depended on directly, so I'm not sure which package I need to attach a minimal bound to.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
error messagesMessaging when something goes wrongMessaging when something goes wrongresolverRelated to the package resolverRelated to the package resolver