You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scenario: you renamed pathdep/subproj to pathdep/subprojnew.
Note that it doesn't have to be pathdep/subproj it could be flat as long as path is then specified as ../subproj.
Run poetry lock --no-update -vvv and you get the following traceback. poetry lock works fine.
12 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/application.py:329 in run
327│
328│ try:
→ 329│ exit_code = self._run(io)
330│ except Exception as e:
331│ if not self._catch_exceptions:
11 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/console/application.py:185 in _run
183│ self._load_plugins(io)
184│
→ 185│ exit_code: int = super()._run(io)
186│ return exit_code
187│
10 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/application.py:423 in _run
421│ io.input.set_stream(stream)
422│
→ 423│ exit_code = self._run_command(command, io)
424│ self._running_command = None
425│
9 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/application.py:465 in _run_command
463│
464│ if error is not None:
→ 465│ raise error
466│
467│ return event.exit_code
8 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/application.py:449 in _run_command
447│
448│ if event.command_should_run():
→ 449│ exit_code = command.run(io)
450│ else:
451│ exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED
7 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/commands/base_command.py:119 in run
117│ io.input.validate()
118│
→ 119│ status_code = self.execute(io)
120│
121│ if status_code is None:
6 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/cleo/commands/command.py:83 in execute
81│
82│ try:
→ 83│ return self.handle()
84│ except KeyboardInterrupt:
85│ return 1
5 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/console/commands/lock.py:54 in handle
52│ self.installer.lock(update=not self.option("no-update"))
53│
→ 54│ return self.installer.run()
55│
4 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/installation/installer.py:103 in run
101│ # Check if refresh
102│ if not self._update and self._lock and self._locker.is_locked():
→ 103│ return self._do_refresh()
104│
105│ # Force update if there is no lock file present
3 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/installation/installer.py:195 in _do_refresh
193│ raise ValueError(f"Extra [{extra}] is not specified.")
194│
→ 195│ locked_repository = self._locker.locked_repository()
196│ solver = Solver(
197│ self._package,
2 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/packages/locker.py:215 in locked_repository
213│
214│ package.add_dependency(
→ 215│ Factory.create_dependency(dep_name, constraint, root_dir=root_dir)
216│ )
217│
1 ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/core/factory.py:316 in create_dependency
314│ )
315│ else:
→ 316│ dependency = DirectoryDependency(
317│ name,
318│ path,
ValueError
Directory subproj does not exist
at ~/.pyenv/versions/3.10.6/lib/python3.10/site-packages/poetry/core/packages/directory_dependency.py:38 in __init__
34│
35│ self._develop = develop
36│
37│ if not self._full_path.exists():
→ 38│ raise ValueError(f"Directory {self._path} does not exist")
39│
40│ if self._full_path.is_file():
41│ raise ValueError(f"{self._path} is a file, expected a directory")
42│
I think poetry is trying to "cache" information about the path dependencies but IMO it should at the very least check if any info in the path dependency's pyproject.toml changed and if so invalidate it's cache and the cache of all it's sub-dependencies.
The text was updated successfully, but these errors were encountered:
I've found when running with --no-update even when dependencies didn't move there are no errors but no updates are propagated from the path dependency to the main project.
radoering
changed the title
poetry lock --no-update fails for nested path dependencies
poetry lock --no-update fails for renamed path dependencies
Nov 16, 2022
poetry -V
Poetry (version 1.3.0.dev0)
Example: https://github.com/adriangb/public-dump/tree/poetry
Scenario: you renamed
pathdep/subproj
topathdep/subprojnew
.Note that it doesn't have to be
pathdep/subproj
it could be flat as long aspath
is then specified as../subproj
.Run
poetry lock --no-update -vvv
and you get the following traceback.poetry lock
works fine.I think poetry is trying to "cache" information about the path dependencies but IMO it should at the very least check if any info in the path dependency's
pyproject.toml
changed and if so invalidate it's cache and the cache of all it's sub-dependencies.The text was updated successfully, but these errors were encountered: