-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Description
-
Poetry version: Poetry (version 1.3.2)
-
Python version: 3.9.11
-
OS version and name: macOS 13.0.1
-
pyproject.toml: Link
-
I am on the latest stable Poetry version, installed using a recommended method.
-
I have searched the issues of this repo and believe that this is not a duplicate.
-
I have consulted the FAQ and blog for any relevant entries or release notes.
-
If an exception occurs when executing a command, I executed it again in debug mode (
-vvvoption) and have included the output below.
Issue
When using a path-based dependency, trying to add a new package that conflicts with a sub-dependency leads to an infinite loop.
$ tree .
.
├── my-package
│ ├── setup.py
│ └── src
└── pyproject.toml
cat pyproject.toml
[tool.poetry]
name = "debug-poetry"
version = "0.1.0"
description = ""
authors = []
readme = "README.md"
packages = [{include = "debug_poetry"}]
[tool.poetry.dependencies]
python = "^3.9"
foo = { path = "./my-package", develop = true }
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"my-package/setup.py:
from distutils.core import setup
setup(
name="foo",
version="1",
py_modules=["foo"],
package_dir={"src": "src"},
install_requires=["requests~=2.25.1"],
)At first, I run poetry install --sync --no-root
$ poetry install --sync --no-root
Creating virtualenv debug-poetry-_DvXptOW-py3.9 in /Users/julius/Library/Caches/pypoetry/virtualenvs
Installing dependencies from lock file
Package operations: 6 installs, 0 updates, 0 removals
• Installing certifi (2022.12.7)
• Installing chardet (4.0.0)
• Installing idna (2.10)
• Installing urllib3 (1.26.14)
• Installing requests (2.25.1)
• Installing foo (1 /Users/julius/src/debug_poetry/my-package)
Then, if I try to add requests@latest, poetry goes into an infinite loop:
$ poetry add -vvv requests@latest | less
Using virtualenv: /Users/julius/Library/Caches/pypoetry/virtualenvs/debug-poetry-_DvXptOW-py3.9
[keyring.backend] Loading KWallet
[keyring.backend] Loading SecretService
[keyring.backend] Loading Windows
[keyring.backend] Loading chainer
[keyring.backend] Loading libsecret
[keyring.backend] Loading macOS
Creating new session for pypi.org
Source (PyPI): 145 packages found for requests *
Using version ^2.28.2 for requests
Updating dependencies
Resolving dependencies...
1: fact: debug-poetry is 0.1.0
1: derived: debug-poetry
1: fact: debug-poetry depends on foo (*)
1: fact: debug-poetry depends on requests (^2.28.2)
1: selecting debug-poetry (0.1.0)
1: derived: requests (>=2.28.2,<3.0.0)
1: derived: foo (*) @ file:///Users/julius/src/debug_poetry/my-package
Source (PyPI): 1 packages found for requests >=2.28.2,<3.0.0
1: fact: foo (1) depends on requests (>=2.25.1,<2.26.0)
1: derived: not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: fact: foo (1) depends on requests (>=2.25.1,<2.26.0)
1: conflict: foo (1) depends on requests (>=2.25.1,<2.26.0)
1: ! foo (1) @ file:///Users/julius/src/debug_poetry/my-package is partially satisfied by not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: ! which is caused by "foo (1) @ file:///Users/julius/src/debug_poetry/my-package depends on requests (>=2.25.1,<2.26.0)"
1: ! thus: foo (1) @ file:///Users/julius/src/debug_poetry/my-package requires requests (>=2.25.1,<2.26.0)
1: ! foo (1) @ file:///Users/julius/src/debug_poetry/my-package is partially satisfied by not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: ! which is caused by "foo (1) @ file:///Users/julius/src/debug_poetry/my-package depends on requests (>=2.25.1,<2.26.0)"
1: ! thus: foo (1) @ file:///Users/julius/src/debug_poetry/my-package requires requests (>=2.25.1,<2.26.0)
1: ! foo (1) @ file:///Users/julius/src/debug_poetry/my-package is partially satisfied by not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: ! which is caused by "foo (1) @ file:///Users/julius/src/debug_poetry/my-package depends on requests (>=2.25.1,<2.26.0)"
1: ! thus: foo (1) @ file:///Users/julius/src/debug_poetry/my-package requires requests (>=2.25.1,<2.26.0)
1: ! foo (1) @ file:///Users/julius/src/debug_poetry/my-package is partially satisfied by not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: ! which is caused by "foo (1) @ file:///Users/julius/src/debug_poetry/my-package depends on requests (>=2.25.1,<2.26.0)"
1: ! thus: foo (1) @ file:///Users/julius/src/debug_poetry/my-package requires requests (>=2.25.1,<2.26.0)
1: ! foo (1) @ file:///Users/julius/src/debug_poetry/my-package is partially satisfied by not foo (1) @ file:///Users/julius/src/debug_poetry/my-package
1: ! which is caused by "foo (1) @ file:///Users/julius/src/debug_poetry/my-package depends on requests (>=2.25.1,<2.26.0)"
1: ! thus: foo (1) @ file:///Users/julius/src/debug_poetry/my-package requires requests (>=2.25.1,<2.26.0)
...
...
...