Add provenance specific to git ref installs
This commit is contained in:
parent
9cd7fd1c98
commit
c8ab35edfa
@ -114,7 +114,9 @@ class Provenance(enum.IntEnum):
|
||||
# A 'package.py' file
|
||||
PACKAGE_PY = enum.auto()
|
||||
# An installed spec
|
||||
INSTALLED = enum.auto()
|
||||
INSTALLED_STANDARD_VERSION = enum.auto()
|
||||
# lower provenance for installed git refs so concretizer prefers StandardVersion installs
|
||||
INSTALLED_GIT_VERSION = enum.auto()
|
||||
# A runtime injected from another package (e.g. a compiler)
|
||||
RUNTIME = enum.auto()
|
||||
|
||||
@ -1999,10 +2001,10 @@ def define_ad_hoc_versions_from_specs(
|
||||
# best possible, so they're guaranteed to be used preferentially.
|
||||
version = s.versions.concrete
|
||||
|
||||
if version is None or (not isinstance(version, vn.GitVersion) and any(
|
||||
v == version
|
||||
for v in self.possible_versions[s.name]
|
||||
)):
|
||||
if version is None or (
|
||||
not isinstance(version, vn.GitVersion)
|
||||
and any((v == version) for v in self.possible_versions[s.name])
|
||||
):
|
||||
continue
|
||||
|
||||
if require_checksum and not _is_checksummed_git_version(version):
|
||||
@ -2316,9 +2318,20 @@ def concrete_specs(self):
|
||||
# - Add OS to possible OS's
|
||||
for dep in spec.traverse():
|
||||
self.possible_versions[dep.name].add(dep.version)
|
||||
self.declared_versions[dep.name].append(
|
||||
DeclaredVersion(version=dep.version, idx=0, origin=Provenance.INSTALLED)
|
||||
)
|
||||
if isinstance(dep.version, vn.GitVersion):
|
||||
self.declared_versions[dep.name].append(
|
||||
DeclaredVersion(
|
||||
version=dep.version, idx=0, origin=Provenance.INSTALLED_GIT_VERSION
|
||||
)
|
||||
)
|
||||
else:
|
||||
self.declared_versions[dep.name].append(
|
||||
DeclaredVersion(
|
||||
version=dep.version,
|
||||
idx=0,
|
||||
origin=Provenance.INSTALLED_STANDARD_VERSION,
|
||||
)
|
||||
)
|
||||
self.possible_oses.add(dep.os)
|
||||
|
||||
def define_concrete_input_specs(self, specs, possible):
|
||||
|
Loading…
Reference in New Issue
Block a user