mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-15 21:32:32 -05:00
docs: document CI workflows, inheritance, MAME clones, tests, scrapers
This commit is contained in:
@@ -1336,6 +1336,49 @@ def generate_wiki_architecture() -> str:
|
|||||||
"| MAME BIOS ZIPs | `contents` field documents inner structure |",
|
"| MAME BIOS ZIPs | `contents` field documents inner structure |",
|
||||||
"| RPG Maker/ScummVM | excluded from dedup (NODEDUP) to preserve directory structure |",
|
"| RPG Maker/ScummVM | excluded from dedup (NODEDUP) to preserve directory structure |",
|
||||||
"| `strip_components` in data dirs | flattens cache prefix to match expected path |",
|
"| `strip_components` in data dirs | flattens cache prefix to match expected path |",
|
||||||
|
"| case-insensitive dedup | prevents `font.rom` + `FONT.ROM` conflicts on Windows/macOS |",
|
||||||
|
"",
|
||||||
|
"## Platform inheritance",
|
||||||
|
"",
|
||||||
|
"Platform configs support `inherits:` to share definitions.",
|
||||||
|
"Lakka inherits from RetroArch, RetroPie inherits from RetroArch with `base_destination: BIOS`.",
|
||||||
|
"`overrides:` allows child platforms to modify specific systems from the parent.",
|
||||||
|
"",
|
||||||
|
"Core resolution (`resolve_platform_cores`) uses three strategies:",
|
||||||
|
"",
|
||||||
|
"- `cores: all_libretro` - include all profiles with `libretro` in their type",
|
||||||
|
"- `cores: [list]` - include only named profiles",
|
||||||
|
"- `cores:` absent - fallback to system ID intersection between platform and profiles",
|
||||||
|
"",
|
||||||
|
"## MAME clone map",
|
||||||
|
"",
|
||||||
|
"`_mame_clones.json` at repo root maps MAME clone ROM names to their canonical parent.",
|
||||||
|
"When a clone ZIP was deduplicated, `resolve_local_file` uses this map to find the canonical file.",
|
||||||
|
"",
|
||||||
|
"## Tests",
|
||||||
|
"",
|
||||||
|
"`tests/test_e2e.py` contains 75 end-to-end tests with synthetic fixtures.",
|
||||||
|
"Covers: file resolution, verification, severity, cross-reference, aliases,",
|
||||||
|
"inheritance, shared groups, data dirs, storage tiers, HLE, launchers,",
|
||||||
|
"platform grouping, core resolution (3 strategies + alias exclusion).",
|
||||||
|
"",
|
||||||
|
"```bash",
|
||||||
|
"python -m unittest tests.test_e2e -v",
|
||||||
|
"```",
|
||||||
|
"",
|
||||||
|
"## CI workflows",
|
||||||
|
"",
|
||||||
|
"| Workflow | File | Trigger | Role |",
|
||||||
|
"|----------|------|---------|------|",
|
||||||
|
"| Build & Release | `build.yml` | `workflow_dispatch` (manual) | restore large files, build packs, deploy site, create GitHub release |",
|
||||||
|
"| PR Validation | `validate.yml` | pull request on `bios/`/`platforms/` | validate BIOS hashes, schema check, run tests, auto-label PR |",
|
||||||
|
"| Weekly Sync | `watch.yml` | cron (Monday 6 AM UTC) + manual | scrape upstream sources, detect changes, create update PR |",
|
||||||
|
"",
|
||||||
|
"Build workflow has a 7-day rate limit between releases and keeps the 3 most recent.",
|
||||||
|
"",
|
||||||
|
"## License",
|
||||||
|
"",
|
||||||
|
"See `LICENSE` at repo root. Files are provided for personal backup and archival.",
|
||||||
"",
|
"",
|
||||||
]
|
]
|
||||||
return "\n".join(lines) + "\n"
|
return "\n".join(lines) + "\n"
|
||||||
@@ -1466,6 +1509,12 @@ def generate_wiki_tools() -> str:
|
|||||||
"| `retrodeck_scraper` | component manifests | JSON per component |",
|
"| `retrodeck_scraper` | component manifests | JSON per component |",
|
||||||
"| `coreinfo_scraper` | .info files from libretro-core-info | INI-like |",
|
"| `coreinfo_scraper` | .info files from libretro-core-info | INI-like |",
|
||||||
"",
|
"",
|
||||||
|
"Internal modules: `base_scraper.py` (abstract base with `_fetch_raw()` caching",
|
||||||
|
"and shared CLI), `dat_parser.py` (clrmamepro DAT format parser).",
|
||||||
|
"",
|
||||||
|
"Adding a scraper: inherit `BaseScraper`, implement `fetch_requirements()`,",
|
||||||
|
"call `scraper_cli(YourScraper)` in `__main__`.",
|
||||||
|
"",
|
||||||
]
|
]
|
||||||
return "\n".join(lines) + "\n"
|
return "\n".join(lines) + "\n"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user