Skip to content

Commit 6df4c15

Browse files
committed
Correctly report component instance versions
1 parent 9aa4e94 commit 6df4c15

2 files changed

Lines changed: 25 additions & 7 deletions

File tree

commodore/component/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,22 @@ def alias_defaults_file(self, alias: str) -> P:
165165
def has_alias(self, alias: str):
166166
return alias in self._aliases
167167

168+
def alias_info(self, alias: str) -> (str, str, MultiDependency):
169+
if alias not in self._aliases:
170+
raise ValueError(
171+
f"alias {alias} for component {self.name} has not been registered"
172+
)
173+
return self._aliases[alias]
174+
175+
def alias_repo(self, alias: str) -> GitRepo:
176+
if alias not in self._aliases:
177+
raise ValueError(
178+
f"alias {alias} for component {self.name} has not been registered"
179+
)
180+
adep = self._aliases[alias][2]
181+
apath = adep.get_component(alias)
182+
return GitRepo(None, apath)
183+
168184
@property
169185
def lib_files(self) -> Iterable[P]:
170186
# NOTE(sg): Usage of yield makes the whole function return a generator.

commodore/config.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,15 @@ def pretty_print(self, name: str) -> str:
6464

6565

6666
class InstanceVersionInfo(VersionInfo):
67-
def __init__(self, component: Component):
67+
def __init__(self, name: str, component: Component):
68+
version, path, dep = component.alias_info(name)
69+
arepo = component.alias_repo(name)
6870
super().__init__(
69-
component.repo_url,
70-
component.version or component.repo.default_version,
71-
component.repo.head_sha,
72-
component.repo.head_short_sha,
73-
path=component.sub_path,
71+
dep.url,
72+
version,
73+
arepo.head_sha,
74+
arepo.head_short_sha,
75+
path=path,
7476
)
7577
self.component = component.name
7678

@@ -406,7 +408,7 @@ def verify_component_aliases(
406408

407409
def get_component_alias_versioninfos(self) -> dict[str, InstanceVersionInfo]:
408410
return {
409-
a: InstanceVersionInfo(self._components[cn])
411+
a: InstanceVersionInfo(a, self._components[cn])
410412
for a, cn in self._component_aliases.items()
411413
}
412414

0 commit comments

Comments
 (0)