mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-06 01:53:56 -06:00
docs: say what the archived status changes
The README, the setup pages and adding-a-platform tied archived to a scraping schedule and a CI matrix that do not exist. Archived keeps a platform out of the runs that cover every platform unless --include-archived is passed.
This commit is contained in:
1 parent
ab1866fd66
commit
7b4c03afc2
7 files changed
+49
-17
No files matched your search
@@ -72,7 +72,7 @@ The Files column counts what a pack holds once extracted, the figure a file mana
|
||||
|
||||
ZIPs are made for the setups most people download. The others read "Use the command": the installer above installs every file for them and checks each one, and `--dry-run` shows what it would install ([why no ZIP](https://abdess.github.io/retrobios/wiki/faq/#why-is-there-no-zip-for-my-setup)).
|
||||
|
||||
\* Archived: the configuration is kept and the installer serves it, but upstream is no longer scraped on a schedule.
|
||||
\* Archived: the installer serves it, and checks that cover every setup include it only on request.
|
||||
|
||||
## What's included
|
||||
|
||||
@@ -206,4 +206,4 @@ The scripts and tooling are released under the [MIT License](LICENSE).
|
||||
The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. [NOTICE](NOTICE) sets out their status and how to ask for a file to be removed.
|
||||
The reasoning, and where it is weakest, is in [the project's legal position](https://abdess.github.io/retrobios/wiki/legal/).
|
||||
|
||||
*Auto-generated on 2026-11-05T22:45:23Z*
|
||||
*Auto-generated on 2026-11-06T02:18:34Z*
|
||||
@@ -3639,9 +3639,9 @@ def _main(held: contextlib.ExitStack) -> None:
|
||||
# Platform mode
|
||||
if args.all and args.manifest:
|
||||
# Install manifests cover every registered platform: the installer
|
||||
# serves each one, with or without a release pack. "Archived" means
|
||||
# upstream is no longer scraped on a schedule, not that the platform
|
||||
# lost its users.
|
||||
# serves each one, with or without a release pack. "Archived" keeps a
|
||||
# platform out of the runs that cover every platform, not out of the
|
||||
# installer: it has not lost its users.
|
||||
platforms = list_registered_platforms(args.platforms_dir, include_archived=True)
|
||||
elif args.all:
|
||||
# A release publishes the packs the registry marks release_pack and
|
||||
|
||||
@@ -638,8 +638,8 @@ def generate_readme(db: dict, platforms_dir: str, db_path: str = "database.json"
|
||||
lines.extend(
|
||||
[
|
||||
"",
|
||||
"\\* Archived: the configuration is kept and the installer serves it,"
|
||||
" but upstream is no longer scraped on a schedule.",
|
||||
"\\* Archived: the installer serves it, and checks that cover every"
|
||||
" setup include it only on request.",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@@ -3346,8 +3346,8 @@ def setup_table(coverages: dict, registry: dict | None = None) -> list[str]:
|
||||
lines += ["No ZIP: the setup is served by the command alone. "
|
||||
f"[Why?](../{NO_ZIP_FAQ})", ""]
|
||||
if archived:
|
||||
lines += ["An archived setup keeps its page and the command. Its list is no longer "
|
||||
"read again on a schedule.", ""]
|
||||
lines += ["An archived setup keeps its page and the command. Checks that cover "
|
||||
"every setup include it only on request.", ""]
|
||||
return lines
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
"""List available platforms for CI matrix strategy.
|
||||
"""List the registered platforms.
|
||||
|
||||
Respects the `status` field in _registry.yml:
|
||||
- active: included in CI releases and automated scraping
|
||||
- archived: excluded from CI, user can generate manually
|
||||
- active: listed by default
|
||||
- archived: listed with --include-archived only
|
||||
|
||||
Usage:
|
||||
python scripts/list_platforms.py # Active platforms (for CI)
|
||||
python scripts/list_platforms.py # active platforms
|
||||
python scripts/list_platforms.py --include-archived # archived ones too
|
||||
python scripts/list_platforms.py >> "$GITHUB_OUTPUT"
|
||||
"""
|
||||
|
||||
@@ -1900,5 +1900,34 @@ class SkipFlagsNameTheSteps(unittest.TestCase):
|
||||
self.assertEqual(set(re.findall(self.STEP, text)), steps)
|
||||
|
||||
|
||||
class ArchivedIsWhatTheToolsDo(unittest.TestCase):
|
||||
"""The README and the setup pages said an archived platform is no longer
|
||||
scraped on a schedule, and adding-a-platform said `active` feeds a CI
|
||||
matrix and the scrapers. No workflow calls list_platforms.py and no tool
|
||||
reads `schedule:`: what `archived` changes is which full runs include it."""
|
||||
|
||||
def test_no_text_ties_the_status_to_automation(self):
|
||||
import generate_pack # noqa: PLC0415
|
||||
import generate_readme # noqa: PLC0415
|
||||
import generate_site # noqa: PLC0415
|
||||
import list_platforms # noqa: PLC0415
|
||||
|
||||
texts = {
|
||||
"adding-a-platform.md": (WIKI / "adding-a-platform.md").read_text(encoding="utf-8"),
|
||||
"generate_readme": inspect.getsource(generate_readme),
|
||||
"generate_site": inspect.getsource(generate_site),
|
||||
"generate_pack": inspect.getsource(generate_pack),
|
||||
"list_platforms": inspect.getsource(list_platforms),
|
||||
}
|
||||
for name, text in texts.items():
|
||||
with self.subTest(name):
|
||||
for claim in ("scraped on a schedule", "read again on a schedule",
|
||||
"CI matrix", "without the automation"):
|
||||
self.assertNotIn(claim, text)
|
||||
self.assertIn("`--include-archived`", texts["adding-a-platform.md"])
|
||||
for workflow in (ROOT / ".github" / "workflows").glob("*.yml"):
|
||||
self.assertNotIn("list_platforms", workflow.read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
@@ -732,10 +732,13 @@ This executes in sequence, numbered as the run prints them (`STEP_LABELS` in
|
||||
|
||||
`--offline` skips steps 2 to 2b2.
|
||||
|
||||
A new platform is archived-by-default nowhere: `status: active` puts it in
|
||||
`list_platforms.py`, the CI matrix, and the scrapers. Set
|
||||
`status: archived` to keep the configuration without the automation. Archived
|
||||
platforms are excluded unless `--all` or `--include-archived` is passed.
|
||||
A new platform is `status: active`. `status: archived` keeps the platform
|
||||
out of the runs that cover every platform (`verify.py --all`,
|
||||
`generate_pack.py --all`, `slots.py`, `pipeline.py`, `list_platforms.py`)
|
||||
unless `--include-archived` is passed. The installer manifests, the site, the
|
||||
native export and `check_freshness.py` cover archived platforms as well. No
|
||||
tool scrapes a platform on its own, archived or not: the `schedule:` field is
|
||||
the cadence a maintainer keeps by hand.
|
||||
|
||||
A new platform has no release ZIP: `release_pack: true` is set for the setups
|
||||
most people download, and the installer serves every other one from its
|
||||
|
||||
Reference in new issue
Block a user