Fix install

This commit is contained in:
2026-01-16 17:26:22 +00:00
parent 07240d1268
commit df631eec9e

View File

@@ -25,8 +25,9 @@ class InstalledRepo:
url: str url: str
domains: list[str] domains: list[str]
installed_at: int installed_at: int
installed_version: str | None = None installed_version: str | None = None # BCS "installed ref" (tag/release/branch)
ref: str | None = None installed_manifest_version: str | None = None # informational only
ref: str | None = None # kept for backward compatibility / diagnostics
class BCSStorage: class BCSStorage:
@@ -110,13 +111,24 @@ class BCSStorage:
domains = [] domains = []
domains = [str(d) for d in domains if str(d).strip()] domains = [str(d) for d in domains if str(d).strip()]
installed_version = entry.get("installed_version")
ref = entry.get("ref")
# Backward compatibility:
# If installed_version wasn't stored, fall back to ref.
if (not installed_version) and ref:
installed_version = ref
installed_manifest_version = entry.get("installed_manifest_version")
return InstalledRepo( return InstalledRepo(
repo_id=str(entry.get("repo_id") or repo_id), repo_id=str(entry.get("repo_id") or repo_id),
url=str(entry.get("url") or ""), url=str(entry.get("url") or ""),
domains=domains, domains=domains,
installed_at=int(entry.get("installed_at") or 0), installed_at=int(entry.get("installed_at") or 0),
installed_version=str(entry.get("installed_version")) if entry.get("installed_version") else None, installed_version=str(installed_version) if installed_version else None,
ref=str(entry.get("ref")) if entry.get("ref") else None, installed_manifest_version=str(installed_manifest_version) if installed_manifest_version else None,
ref=str(ref) if ref else None,
) )
except Exception: except Exception:
return None return None
@@ -127,8 +139,8 @@ class BCSStorage:
out: list[InstalledRepo] = [] out: list[InstalledRepo] = []
if not isinstance(installed, dict): if not isinstance(installed, dict):
return out return out
for repo_id in list(installed.keys()): for rid in list(installed.keys()):
item = await self.get_installed_repo(str(repo_id)) item = await self.get_installed_repo(str(rid))
if item: if item:
out.append(item) out.append(item)
return out return out
@@ -140,6 +152,7 @@ class BCSStorage:
url: str, url: str,
domains: list[str], domains: list[str],
installed_version: str | None, installed_version: str | None,
installed_manifest_version: str | None = None,
ref: str | None, ref: str | None,
) -> None: ) -> None:
data = await self._load() data = await self._load()
@@ -153,7 +166,11 @@ class BCSStorage:
"url": str(url), "url": str(url),
"domains": [str(d) for d in (domains or []) if str(d).strip()], "domains": [str(d) for d in (domains or []) if str(d).strip()],
"installed_at": int(time.time()), "installed_at": int(time.time()),
# IMPORTANT: this is what BCS uses as "installed version" (ref/tag/branch)
"installed_version": installed_version, "installed_version": installed_version,
# informational only
"installed_manifest_version": installed_manifest_version,
# keep ref too (debug/backward compatibility)
"ref": ref, "ref": ref,
} }
await self._save(data) await self._save(data)