Commit Graph
185 Commits
Author SHA1 Message Date
Abdessamad Derraz 3f029578af fix: a scraper that cannot start says what to do
Scrapers resolve their tag or branch head in the constructor, which ran outside the try in scraper_cli: a refused GitHub call ended in a traceback. The error is now printed with the next step, setting GITHUB_TOKEN when the API refused an anonymous call.
2026-10-20 04:36:24 +02:00
Abdessamad Derraz 18e093182d docs: name the registries behind assets and dedup
The guides said files over 50 MB become release assets and that RPG Maker and ScummVM were the trees kept out of dedup. .gitignore decides the first, four committed files are over 50 MB, and NODEDUP_DIRS holds eleven trees.
2026-10-20 04:35:02 +02:00
Abdessamad Derraz 7edd438af1 fix: refuse a target no platform has
With --all, an unknown --target skipped every platform that has targets and ran the others (BizHawk, MiSTer) unfiltered, so verify, slots and the pipeline exited 0 on a typo. A platform without targets is now left out like the rest, and a target no platform has is refused.
2026-10-20 03:27:41 +02:00
Abdessamad Derraz c7c2f260f3 fix: check a forced rehash against the last one
The pipeline rebuilds the database with --force, which discarded the previous digests and wrote whatever the CPU computed, on a host that has given an incorrect SHA-1 under load. The forced run still rehashes every file, but a digest that contradicts the cache for an unchanged mtime and size is computed again, and the two readings that agree win, with a warning naming the file.
2026-10-20 03:24:55 +02:00
Abdessamad Derraz ab1f5d7eb4 fix: guard committed text against tooling names
Two test docstrings named the maintainer's private notes file, and nothing stopped it. They now state the rule itself, and test_prose_style fails on any tracked file that names the private notes or the assistant tooling.
2026-10-20 03:23:25 +02:00
Abdessamad Derraz 7bfe68b777 fix: an unanswered search is not a missing file
auto_fetch caught every network error in its repository and archive.org steps and reported the file as needing a community contribution. Offline or rate-limited, --create-issues asked the public for files the tool never looked for, and the errors counter stayed at 0. A 404 is still an answer. Any other failure now marks the file as not fully searched and keeps it out of issues.
2026-10-20 02:23:17 +02:00
Abdessamad Derraz 9fa1f45e92 fix: raise on a registry missing a platform file
list_registered_platforms skipped a registered platform whose YAML was missing and returned an empty list without a registry. verify --all --strict, every --all build, the CI matrix and the site then ran over fewer platforms and exited 0, and install.py kept serving the stale manifest. Both now raise and name the file.
2026-10-20 02:22:37 +02:00
Abdessamad Derraz ac47faf7f2 fix: the pack check applies the frontend's rule
The integrity step compared a member's md5 by hand and ignored hash_rule, so under RomM's rule (size, then any of md5, sha1 and crc32) it would refuse a revision the builder rightly shipped on its sha1. The rule now lives in digest_verdict, which the path check and the pack member check both call. The member's archive digest is computed without the path cache, whose key a buffer's reused address made collide.
2026-10-20 02:11:53 +02:00
Abdessamad Derraz 7aa9b3fcaa fix: the gap CLI sets bundled files apart
cross_reference printed 20 runtime components bundled with their emulator as [MISSING] and counted them among the files to source. The collection leaves them out by design, as verify and the gaps page already say. They are now listed as [BUNDLED] and counted on their own line.
2026-10-20 01:18:09 +02:00
Abdessamad Derraz c6db200beb fix: the global gap report keeps standalone files
With no platform named, cross_reference passed no standalone cores, so every dual profile was laid out as libretro only. The CLI and the site's gaps page left out 133 files that Batocera and RetroBat run standalone and that no platform declares (eka2l1 90, dolphin 21, cemu 11). Both now pass the union of every platform's standalone cores.
2026-10-20 01:17:35 +02:00
Abdessamad Derraz 7e23815545 fix: reports hold the data trees they read
generate_readme, generate_site and slots resolve against data/ but took no hold when run on their own, as the documented commands do. A refresh swapping a tree mid-read then gave counts from half of it. Each now holds the trees shared, like verify and the builder.
2026-10-20 00:32:26 +02:00
Abdessamad Derraz 7eb4a36711 fix: step 5 compares the cores' share of a pack
The consistency check compared the platform's own files only. It now also compares verify's core files and game data with the builder's count of files taken from the cores.
2026-10-20 00:28:40 +02:00
Abdessamad Derraz 843f0ddc0e fix: ares labels name ares's own dumps
ares matches its firmware by sha256 and opens no file by name, so its entry names are labels. Five reused names that other cores give to different dumps (MSX.ROM, MSX2.ROM, bios_CD_E/J/U.bin). On RetroBat that put ares's revision where the platform pins another, slots blamed the platform's declaration, and the pack dropped ares's own dump behind the platform's file. The labels now name the dumps the hashes identify.
2026-10-19 23:11:44 +02:00
Abdessamad Derraz 8fd8437351 refactor: share the core file lookup with verify
verify replayed the builder's placement of core files with a bare name lookup, without the archive index, the data directories or the core's own choice of copy. It compared other bytes than the pack's (blueMSX's MSX2P.rom from bios/ against the data tree's copy) and let an unresolved file take a path the builder leaves free. ExtraResolver now holds the builder's lookup and both call it.
2026-10-19 23:08:12 +02:00
Abdessamad Derraz c7f18e84c3 feat: read RomM cores from its player maps
RomM merges a nightly core map into the stable one when netplay is on, so it launches azahar, bsnes and genesis_plus_gx_wide, which the inherited EmulatorJS list left out. The scraper now reads both maps from the tagged frontend source and fails if either is missing. The cited mednafen_pce mapping is at index.ts:481-482 in 5.4.0.
2026-10-19 06:57:32 +02:00
Abdessamad Derraz 4231902a6c docs: write prose without dashes or semicolons
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.

validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
2026-10-19 06:47:31 +02:00
Abdessamad Derraz 18cca66e58 fix: hold the empty sweep to the no-pack rule
The older test read an --all check of an empty directory as a pass; it checked nothing, which the verify-packs rule now refuses.
2026-10-19 04:23:26 +02:00
Abdessamad Derraz 6d860a0df6 fix: refuse --verify-packs misuse before locking 2026-10-19 04:20:05 +02:00
Abdessamad Derraz 6008fe352c fix: rebuild the database named in the error 2026-10-19 04:19:12 +02:00
Abdessamad Derraz 642896346f docs: say what verify --strict fails on 2026-10-19 04:18:55 +02:00
Abdessamad Derraz 45d446df33 feat: time each step in the pipeline summary 2026-10-19 04:13:33 +02:00
Abdessamad Derraz 9a417dde2a fix: fail --verify-packs when no pack was checked 2026-10-18 20:39:14 +02:00
Abdessamad Derraz a913fbf539 fix: give EmuDeck its RetroArch cores' files
The scraper skipped RetroArch's own EmuScripts installer, so no libretro core's files reached the EmuDeck pack: np2kai, neocd and every core checkBIOS.sh does not name. RetroArch now stays in the list, as in RetroPie's.
2026-10-18 20:35:18 +02:00
Abdessamad Derraz dbe26fddc9 fix: group system-less files alike in both modes 2026-10-18 19:47:09 +02:00
Abdessamad Derraz 9c154a29b9 fix: join system names with a separator they lack 2026-10-18 19:43:40 +02:00
Abdessamad Derraz 6b9300f601 fix: report ground truth as the site does 2026-10-18 16:29:18 +02:00
Abdessamad Derraz 8e067c1c3a fix: name the packs that fail verification 2026-10-18 16:21:54 +02:00
Abdessamad Derraz 9ca1e68007 fix: word the alias refusal as a sentence 2026-10-18 16:20:50 +02:00
Abdessamad Derraz def1e80232 fix: fail a named pack that is not built 2026-10-18 16:20:33 +02:00
Abdessamad Derraz 737e917119 fix: name the target that removes a core 2026-10-18 16:19:19 +02:00
Abdessamad Derraz 4f42c52a7f fix: count systems once per normalized id 2026-10-18 16:11:13 +02:00
Abdessamad Derraz 1e29d1c266 docs: align release and install examples 2026-10-18 16:01:13 +02:00
Abdessamad Derraz eead810015 fix: skip the variants test without jsonschema 2026-10-18 15:31:28 +02:00
Abdessamad Derraz 3a29d5b56a fix: refuse a profile path into .variants 2026-10-18 15:19:51 +02:00
Abdessamad Derraz e3b17b04d2 fix: file RomM extras under their own system 2026-10-18 15:19:19 +02:00
Abdessamad Derraz ce2417ce0f refactor: read hash lists with one parser 2026-10-18 14:52:02 +02:00
Abdessamad Derraz 0c53d165c1 fix: parse member md5 lists one way 2026-10-18 14:50:26 +02:00
Abdessamad Derraz dbd47886ce fix: name release assets as GitHub serves them 2026-10-18 14:49:00 +02:00
Abdessamad Derraz 9ea1630caa feat: install case twins where case is kept
The RetroArch list is folded for Windows and macOS. Its manifest
now carries the names a case-keeping directory also needs, and the
installer adds them after probing the BIOS directory.
2026-10-18 13:52:37 +02:00
Abdessamad Derraz df597cbe7d fix: hold data trees while packs are verified 2026-10-18 13:46:11 +02:00
Abdessamad Derraz 962f8ea5dc feat: publish the collection as a Logiqx DAT 2026-10-18 10:15:40 +02:00
Abdessamad Derraz 2679ed1ee0 feat: describe system page files for machines 2026-10-18 10:13:13 +02:00
Abdessamad Derraz c813ccbd32 feat: describe the data exports as a Dataset 2026-10-18 10:10:06 +02:00
Abdessamad Derraz bd75defb61 fix: date sitemap entries from their pages
The sitemap gave every page the build date. A page now states its own date
and a mkdocs hook passes it on, or leaves lastmod out. The values added to
the site's code spans today are also escaped: a backtick in a profile or
file name could close the span and inject markup.
2026-10-18 10:08:18 +02:00
Abdessamad Derraz f5e3404a8d fix: anchor each version on its content 2026-10-18 10:04:02 +02:00
Abdessamad Derraz b2d74b5255 feat: link emulator cards to the copy and section 2026-10-18 10:00:46 +02:00
Abdessamad Derraz c66f24f333 fix: print none, not Python's None, on the site
A null upstream, version or detail is a stated fact. It now reads as
none, and a null upstream shows the project's own source. The site's
exclusion of local working notes no longer names the tool writing them.
2026-10-18 09:58:14 +02:00
Abdessamad Derraz ba36d9586f fix: print full hashes on collection cards 2026-10-18 09:54:28 +02:00
Abdessamad Derraz cf121d028e feat: give each collection card its path and link 2026-10-18 09:51:58 +02:00
Abdessamad Derraz c0e0da03a6 fix: give the reason on an unsourceable card 2026-10-18 09:50:07 +02:00