-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Closed
Labels
kind/bugSomething isn't working as expectedSomething isn't working as expected
Description
- I am on the latest Poetry version.
- I have searched the issues of this repo and believe that this is not a duplicate.
- If an exception occurs when executing a command, I executed it again in debug mode (
-vvvoption).
- OS version and name: NixOS
- Poetry version: dca0c56
Issue
I was trying to bump our internal Poetry from 5900f37 to dca0c56 when I noticed our private repositories stopped working.
Upon attempting poetry lock --no-update, I got the following:
ValueError
Package('redacted', '21.11.4+ad7d6ed') is not in list
at ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/legacy_repository.py:111 in package
107│ Note that this will be cached so the subsequent operations
108│ should be much faster.
109│ """
110│ try:
→ 111│ index = self._packages.index(Package(name, version, version))
112│
113│ return self._packages[index]
114│ except ValueError:
115│ package = super().package(name, version, extras)
The following error occurred when trying to handle this error:
Stack trace:
29 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:330 in run
328│
329│ try:
→ 330│ exit_code = self._run(io)
331│ except Exception as e:
332│ if not self._catch_exceptions:
28 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/console/application.py:174 in _run
172│ self._load_plugins(io)
173│
→ 174│ return super()._run(io)
175│
176│ def _configure_io(self, io: IO) -> None:
27 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:425 in _run
423│ io.set_input(ArgvInput(argv))
424│
→ 425│ exit_code = self._run_command(command, io)
426│ self._running_command = None
427│
26 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:467 in _run_command
465│
466│ if error is not None:
→ 467│ raise error
468│
469│ return event.exit_code
25 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/application.py:451 in _run_command
449│
450│ if event.command_should_run():
→ 451│ exit_code = command.run(io)
452│ else:
453│ exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED
24 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/commands/base_command.py:118 in run
116│ io.input.validate()
117│
→ 118│ status_code = self.execute(io)
119│
120│ if status_code is None:
23 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cleo/commands/command.py:85 in execute
83│
84│ try:
→ 85│ return self.handle()
86│ except KeyboardInterrupt:
87│ return 1
22 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/console/commands/lock.py:55 in handle
53│ self._installer.lock(update=not self.option("no-update"))
54│
→ 55│ return self._installer.run()
56│
21 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/installation/installer.py:99 in run
97│ # Check if refresh
98│ if not self._update and self._lock and self._locker.is_locked():
→ 99│ return self._do_refresh()
100│
101│ # Force update if there is no lock file present
20 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/installation/installer.py:202 in _do_refresh
200│ )
201│
→ 202│ ops = solver.solve(use_latest=[]).calculate_operations()
203│
204│ local_repo = Repository()
19 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/solver.py:73 in solve
71│ with self._provider.progress():
72│ start = time.time()
→ 73│ packages, depths = self._solve(use_latest=use_latest)
74│ end = time.time()
75│
18 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/solver.py:132 in _solve
130│
131│ try:
→ 132│ result = resolve_version(
133│ self._package, self._provider, locked=locked, use_latest=use_latest
134│ )
17 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/__init__.py:24 in resolve_version
22│ solver = VersionSolver(root, provider, locked=locked, use_latest=use_latest)
23│
→ 24│ return solver.solve()
25│
16 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/version_solver.py:81 in solve
79│ while next is not None:
80│ self._propagate(next)
→ 81│ next = self._choose_package_version()
82│
83│ return self._result()
15 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/mixology/version_solver.py:394 in _choose_package_version
392│ package = locked
393│
→ 394│ package = self._provider.complete_package(package)
395│
396│ conflict = False
14 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/puzzle/provider.py:448 in complete_package
446│ package = DependencyPackage(
447│ package.dependency,
→ 448│ self._pool.package(
449│ package.name,
450│ package.version.text,
13 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/pool.py:144 in package
142│ for repo in self._repositories:
143│ try:
→ 144│ package = repo.package(name, version, extras=extras)
145│ except PackageNotFound:
146│ continue
12 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/legacy_repository.py:115 in package
113│ return self._packages[index]
114│ except ValueError:
→ 115│ package = super().package(name, version, extras)
116│ package._source_type = "legacy"
117│ package._source_url = self._url
11 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/cached.py:80 in package
78│ extras: (list | None) = None,
79│ ) -> Package:
→ 80│ return self.get_release_info(name, version).to_package(name=name, extras=extras)
81│
10 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/cached.py:57 in get_release_info
55│ return PackageInfo.load(self._get_release_info(name, version))
56│
→ 57│ cached = self._cache.remember_forever(
58│ f"{name}:{version}", lambda: self._get_release_info(name, version)
59│ )
9 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cachy/repository.py:174 in remember_forever
172│ return val
173│
→ 174│ val = value(callback)
175│
176│ self.forever(key, val)
8 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/cachy/helpers.py:6 in value
4│ def value(val):
5│ if callable(val):
→ 6│ return val()
7│
8│ return val
7 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/cached.py:58 in <lambda>
56│
57│ cached = self._cache.remember_forever(
→ 58│ f"{name}:{version}", lambda: self._get_release_info(name, version)
59│ )
60│
6 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/legacy_repository.py:134 in _get_release_info
132│ raise PackageNotFound(f'No package named "{name}"')
133│
→ 134│ links = list(page.links_for_version(name, Version.parse(version)))
135│
136│ return self._links_to_data(
5 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/link_sources/base.py:88 in links_for_version
86│
87│ for link in self.links:
→ 88│ pkg = self.link_package_data(link)
89│
90│ if pkg.name == name and pkg.version and pkg.version == version:
4 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/repositories/link_sources/base.py:82 in link_package_data
80│ version = Version.parse(version)
81│
→ 82│ return Package(name, version, source_url=link.url)
83│
84│ def links_for_version(self, name: str, version: Version) -> Iterator[Link]:
3 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/core/packages/package.py:75 in __init__
73│
74│ if not isinstance(version, Version):
→ 75│ self._version = Version.parse(version)
76│ self._pretty_version = pretty_version or version
77│ else:
2 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/version.py:143 in parse
141│ from poetry.core.version.pep440.parser import parse_pep440
142│
→ 143│ return parse_pep440(value, cls)
144│
145│ def is_prerelease(self) -> bool:
1 ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/parser.py:90 in parse_pep440
88│ value: str, version_class: Optional[Type["PEP440Version"]] = None
89│ ) -> "PEP440Version":
→ 90│ return PEP440Parser.parse(value, version_class)
91│
InvalidVersion
Invalid PEP 440 version: '21.07.28.5ffb65e2ff8067c732e2b178d03b707c7fb27855'
at ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/core/version/pep440/parser.py:69 in parse
65│ cls, value: str, version_class: Optional[Type["PEP440Version"]] = None
66│ ) -> "PEP440Version":
67│ match = cls._regex.search(value) if value else None
68│ if not match:
→ 69│ raise InvalidVersion(f"Invalid PEP 440 version: '{value}'")
70│
71│ if version_class is None:
72│ from poetry.core.version.pep440.version import PEP440Version
73│
I bisected this to commit bdfdc62 by @abn.
I still see this message at the beginning of the lock process:
❯ poetry lock -vvv --no-update
Loading configuration file /home/beme/.config/pypoetry/config.toml
Adding repository qh-py (https://redacted-python.pkg.dev/redacted/redacted/simple)
But it doesn't seem to look in that repository for any packages at all.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/bugSomething isn't working as expectedSomething isn't working as expected