Commit Graph
118 Commits
Author SHA1 Message Date
Abdessamad Derraz baf635cf4e fix: refuse to pack an archive that fails its CRC
The deterministic rebuild raises on a member whose bytes fail their
CRC, and the builder caught it and copied the damaged archive into
the pack, expecting verify to flag it, which nothing did. The run now
stops on it and names the file to restore.
2026-10-18 05:15:15 +02:00
Abdessamad Derraz 91b378d641 fix: copy standalone files from their pack path
The registry names one path per standalone copy for every platform,
but each manifest places the file its own way, so the installer
looked where the pack had put nothing and copied nothing: EmuDeck's
aes_keys.txt for Azahar, Batocera's switch/prod.keys. Each manifest
copy now names its source, which the installer validates and reads.
2026-10-18 05:09:05 +02:00
Abdessamad Derraz 648784d875 fix: run the suite so its package setup applies
The documented command, discover tests, makes tests/ the top level,
so tests/__init__.py never ran and the variable it sets to keep tests
offline was missing from every local run. Every documented and CI
run now passes -s tests -t ., and a test requires it.
2026-10-18 05:05:09 +02:00
Abdessamad Derraz e0bf0ee191 fix: make a patched test patch what actually runs
A test isolated the extra collection by patching
resolve_platform_cores on packextras with create=True, while the
module imported it inside the function, so the real resolver ran.
The import is now module level, the test checks its stub was called,
and no test may create the attribute it patches.
2026-10-18 04:15:05 +02:00
Abdessamad Derraz d5f40a4515 chore: drop the shared groups no platform reads
Six of the eight shared groups injected nothing: three were
included by no platform, three repeated System.dat entry for entry,
so a correction made in them reached no pack. They are removed with
their scraper wiring, and a test requires every remaining group to
contribute an entry somewhere.
2026-10-18 04:03:01 +02:00
Abdessamad Derraz 383960212d fix: swap a pack in only once it is complete
Packs were opened on their final name, so a rebuild truncated the
previous one and a build that failed half way left a readable ZIP
of part of the files. Each pack is now written beside its name and
replaces it only when the write finished.
2026-10-18 03:54:59 +02:00
Abdessamad Derraz cab70e16b3 fix: skip the citation checks without jsonschema
The doubled-path tests import validate_schemas, which needs
jsonschema; without it the suite erred instead of skipping, which
the optional dependency check refuses.
2026-10-18 03:24:43 +02:00
Abdessamad Derraz 9ba63e6a54 fix: refuse a platform list where one is taken
generate_pack split --platform on commas to validate it, then used
the whole string as one platform and crashed. Every script takes a
single platform; a list is refused with a message pointing at --all.
2026-10-18 02:50:58 +02:00
Abdessamad Derraz 1bdfb8d75e fix: list passing entries in verbose verify JSON
verify accepted --verbose beside --json and dropped it in every
mode, so the output was the same with or without it. The JSON now
lists every entry with its ground truth under --verbose.
2026-10-18 02:50:18 +02:00
Abdessamad Derraz 0450ab1b72 fix: cite primehack's Realtek loader at its pin
A comment named the Bluetooth directory twice, a path no revision
holds, and every firmware ref sat ten lines above the case it meant.
Each now cites its case and return at the pinned commit. The schema
check reads profiles as text and refuses a citation that repeats
its own directories.
2026-10-18 02:43:06 +02:00
Abdessamad Derraz e4960dd4f8 fix: declare EmuDeck's emulators as standalone 2026-10-18 01:19:52 +02:00
Abdessamad Derraz 3766588ec1 fix: keep tree entries out of the asset store 2026-10-18 01:16:28 +02:00
Abdessamad Derraz faa8af0800 refactor: annotate every remaining signature 2026-10-18 00:44:20 +02:00
Abdessamad Derraz 5961b6bfe7 refactor: annotate the shared pack and lock api 2026-10-18 00:03:59 +02:00
Abdessamad Derraz 27d119cb7f fix: scrape targets at the pinned platform release 2026-10-18 00:01:36 +02:00
Abdessamad Derraz c507aebfba refactor: index companion files by directory 2026-10-17 23:56:41 +02:00
Abdessamad Derraz 1c280b7b3f refactor: hash each zip member once per run 2026-10-17 23:55:49 +02:00
Abdessamad Derraz 5ae83ba2fa refactor: hash each manifest file once 2026-10-17 23:54:20 +02:00
Abdessamad Derraz 0a2907bd5f feat: describe emulator pages in structured data 2026-10-17 23:52:50 +02:00
Abdessamad Derraz 43af290102 feat: link and list every file on site pages 2026-10-17 23:51:02 +02:00
Abdessamad Derraz bd6617cc6a fix: describe absent claims in the manifest schema 2026-10-17 23:09:46 +02:00
Abdessamad Derraz e1510f94f8 fix: list each file to source on the gaps page 2026-10-17 23:08:40 +02:00
Abdessamad Derraz fd16764e0c fix: keep the gap report readable 2026-10-17 23:06:32 +02:00
Abdessamad Derraz 09eb4f4ef3 fix: show exclusions and every verify-packs error 2026-10-17 23:05:48 +02:00
Abdessamad Derraz c4c87a5f7a fix: fetch data directories before CI tests 2026-10-17 23:01:49 +02:00
Abdessamad Derraz 20bdd381ec fix: offer every platform in the missing BIOS form 2026-10-17 21:21:56 +02:00
Abdessamad Derraz e089cb86e3 docs: align tools and release pages with the code 2026-10-17 21:20:26 +02:00
Abdessamad Derraz 55631a2fbc fix: end listings quietly when the reader leaves 2026-10-17 20:50:22 +02:00
Abdessamad Derraz de8e7ff02e fix: separate message parts with a colon 2026-10-17 20:47:22 +02:00
Abdessamad Derraz 0136d8a240 fix: take auto_fetch targets from verify 2026-10-17 20:45:50 +02:00
Abdessamad Derraz d01c1b7085 fix: count romset members on the Wanted page 2026-10-17 20:31:39 +02:00
Abdessamad Derraz 5cb79bb2f7 fix: keep the test suite offline everywhere 2026-10-17 20:31:09 +02:00
Abdessamad Derraz d6c8186ccb fix: refuse pack flags with pipeline --skip-packs 2026-10-17 20:30:25 +02:00
Abdessamad Derraz e85819e0e4 fix: name the files the installer skipped 2026-10-17 20:29:55 +02:00
Abdessamad Derraz 785c5bef8c fix: give the Lakka pack its own install guide 2026-10-17 19:40:05 +02:00
Abdessamad Derraz ba2fee0920 fix: count emulator page files by slot 2026-10-17 19:36:44 +02:00
Abdessamad Derraz 18e61fabcb refactor: read the asset registry with one parser
generate_pack kept a private .gitignore parser whose cache ignored the
root it was asked about, and generate_db a copy of the shared one. Both
now read largefiles.load_registered_paths, cached per root. Test modules
whose main block preceded their last class end with it again.
2026-10-17 19:35:42 +02:00
Abdessamad Derraz 1ffc0a6937 fix: hold data directories while packs read them 2026-10-17 19:22:50 +02:00
Abdessamad Derraz c7737d629e fix: publish target lists as the builder reads 2026-10-17 19:16:30 +02:00
Abdessamad Derraz 22eed69f9d fix: check content on a gap report name hit 2026-10-17 19:15:52 +02:00
Abdessamad Derraz af5d6e77d1 fix: place openMSX ROMs under share/systemroms 2026-10-17 19:14:00 +02:00
Abdessamad Derraz 7fe65936e0 fix: apply verify --strict in every mode 2026-10-17 18:26:57 +02:00
Abdessamad Derraz e319be1c19 fix: rank the triage when a forge refuses a lookup 2026-10-17 18:25:44 +02:00
Abdessamad Derraz 9992490854 fix: track citations a source_ref part drops
Annotations and text after a located head were discarded before
anchoring, so a citation written there never moved with its pin:
zesarux cited two macros four lines off. The leftover text of every
source_ref is now scanned as prose, and the two citations are fixed.
2026-10-17 18:25:03 +02:00
Abdessamad Derraz f036bce930 fix: cite profile code as path:line
Sixteen prose citations wrote "file fn() lines N-M", a form the pin
tracker never reads, and four had fallen behind their pins. Each is now
a repository path with the span read at the profile's pin, and a test
refuses the untracked form.
2026-10-17 18:23:21 +02:00
Abdessamad Derraz dce9c6e8f1 fix: hold the MAME clone step to name rules 2026-10-17 18:21:27 +02:00
Abdessamad Derraz 425a0de0e5 fix: check size and adler32 on data directory hits
A data directory copy found by name was returned without the size and
Adler-32 checks the name steps over bios/ apply. The verdict now runs
both, for the cache walk, the foreign-tree fallback and release assets.
2026-10-17 18:20:49 +02:00
Abdessamad Derraz 2e52f06896 fix: accept every version a profile lists by name
A profile lists each version its code takes under one name. The core
extra carries the first; a held copy matching another entry of the same
profile is no longer reported as a hash discrepancy.
2026-10-17 18:11:38 +02:00
Abdessamad Derraz 9db68c9d52 fix: refuse a yaml mapping that repeats a key 2026-10-17 15:52:59 +02:00
Abdessamad Derraz 4d365ff57f fix: index each data directory once per run 2026-10-17 15:02:01 +02:00