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

+15
View File
@@ -422,5 +422,20 @@ class RowsSayAllTheyStandFor(unittest.TestCase):
self.assertIn("--json lists all 50", row.detail)
class AReleasePageMakesAProfileStale(unittest.TestCase):
def test_a_newer_announced_version_is_stale(self):
import check_freshness
rows = [
{"name": "altirra", "skipped": "unsupported host: x",
"declared_version": "4.40", "page_version": "4.50"},
{"name": "mednafen", "skipped": "unsupported host: y",
"declared_version": "1.32.1", "page_version": "1.32.1"},
]
found = {f.subject: f.status for f in check_freshness.summarize_profile_sync(rows)}
self.assertEqual(found["altirra"], check_freshness.STALE)
self.assertEqual(found["mednafen"], check_freshness.OK)
if __name__ == "__main__":
unittest.main()