Skip to content

Commit de356dc

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

2 files changed

Lines changed: 25 additions & 8 deletions

File tree

commodore/component/__init__.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def class_file(self) -> P:
143143
def defaults_file(self) -> P:
144144
return self.alias_defaults_file(self.name)
145145

146-
def alias_directory(self, alias: str) -> P:
146+
def _alias_path(self, alias: str) -> P:
147147
if alias not in self._aliases:
148148
raise ValueError(
149149
f"alias {alias} for component {self.name} has not been registered"
@@ -154,6 +154,10 @@ def alias_directory(self, alias: str) -> P:
154154
# alias's multi-dependency. The assert makes mypy happy. We disable bandit's
155155
# "assert_used" lint, since we don't rely on this assertion for correctness.
156156
assert apath # nosec B101
157+
return apath
158+
159+
def alias_directory(self, alias: str) -> P:
160+
apath = self._alias_path(alias)
157161
return apath / self._aliases[alias][1]
158162

159163
def alias_class_file(self, alias: str) -> P:
@@ -165,6 +169,17 @@ def alias_defaults_file(self, alias: str) -> P:
165169
def has_alias(self, alias: str):
166170
return alias in self._aliases
167171

172+
def alias_info(self, alias: str) -> tuple[str, str, MultiDependency]:
173+
if alias not in self._aliases:
174+
raise ValueError(
175+
f"alias {alias} for component {self.name} has not been registered"
176+
)
177+
return self._aliases[alias]
178+
179+
def alias_repo(self, alias: str) -> GitRepo:
180+
apath = self._alias_path(alias)
181+
return GitRepo(None, apath)
182+
168183
@property
169184
def lib_files(self) -> Iterable[P]:
170185
# 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)