Skip to content

Commit ae17ac3

Browse files
committed
solver: use locked version of vcs dependency with extras instead of latest
1 parent d1dbdef commit ae17ac3

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/poetry/mixology/version_solver.py

+5-10
Original file line numberDiff line numberDiff line change
@@ -418,11 +418,6 @@ def _get_min(dependency: Dependency) -> tuple[bool, int]:
418418
return complete_name
419419

420420
package = None
421-
if dependency.name not in self._use_latest:
422-
# prefer locked version of compatible (not exact same) dependency;
423-
# required in order to not unnecessarily update dependencies with
424-
# extras, e.g. "coverage" vs. "coverage[toml]"
425-
locked = self._get_locked(dependency, allow_similar=True)
426421
if locked is not None:
427422
package = next(
428423
(
@@ -504,18 +499,18 @@ def _add_incompatibility(self, incompatibility: Incompatibility) -> None:
504499
incompatibility
505500
)
506501

507-
def _get_locked(
508-
self, dependency: Dependency, *, allow_similar: bool = False
509-
) -> DependencyPackage | None:
502+
def _get_locked(self, dependency: Dependency) -> DependencyPackage | None:
510503
if dependency.name in self._use_latest:
511504
return None
512505

513506
locked = self._locked.get(dependency.name, [])
514507
for dependency_package in locked:
515508
package = dependency_package.package
516509
if (
517-
allow_similar or dependency.is_same_package_as(package)
518-
) and dependency.constraint.allows(package.version):
510+
dependency.name == package.name
511+
and dependency.is_same_source_as(package)
512+
and dependency.constraint.allows(package.version)
513+
):
519514
return DependencyPackage(dependency, package)
520515
return None
521516

0 commit comments

Comments
 (0)