feat: watch the release page of off-forge profiles

About forty profiles describe projects published outside any forge (Altirra, ePSXe, DraStic, mednafen, xroar). profile_sync skipped them as an unsupported host and check_freshness reported the same UNKNOWN line every run, so a new release adding a firmware went unseen. A profile can now name the page announcing its releases and a pattern for the version: --check-version reads it, and check_freshness --profiles calls the profile stale when the page announces another version than core_version.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 04:28:27 +02:00
1 parent d43aa5354c
commit 282f8d5d0a
7 files changed
+102

No files matched your search

+10
View File
@@ -1097,6 +1097,16 @@ def summarize_profile_sync(report: object) -> list[Finding]:
if not isinstance(row, dict):
continue
name = str(row.get("name") or "?")
if row.get("skipped") and row.get("page_version"):
# Off any forge, the release page is the feed: a version there
# beyond the declared one is a release the profile does not cover.
declared, announced = str(row.get("declared_version") or ""), str(row["page_version"])
findings.append(Finding(
"profiles", name, OK if announced == declared else STALE,
local=declared, remote=announced,
detail="" if announced == declared else "a newer release is announced",
))
continue
if row.get("skipped"):
findings.append(Finding("profiles", name, UNKNOWN, detail=str(row["skipped"])))
continue