Commit Graph
2902 Commits
Author SHA1 Message Date
Abdessamad Derraz 6d1e8e36fc fix: refuse a restore without its asset registry
gitignored_paths read a missing file as an empty registry: nothing to
restore, nothing unsatisfied, exit 0 with every release asset absent.
The run now stops with the path it could not read.
2026-11-06 15:13:05 +01:00
Abdessamad Derraz b6b26392e1 refactor: move the collection model to its module 2026-11-06 15:12:36 +01:00
Abdessamad Derraz cf4afccf04 fix: show source_ref annotations on the cards 2026-11-06 15:10:40 +01:00
Abdessamad Derraz 64ed86cd5f fix: pin the large file inode just verified
_pin_verified returned an existing <sha1>/<name> link without checking
its inode. A link whose cache name was gone had one link left, and the
prune of the same download removed it after it was returned, so
fetch_large_file handed out a path that no longer existed. The link is
now replaced when it holds another inode, and a revision directory a
prune removed before the link is made again.
2026-11-06 15:10:05 +01:00
Abdessamad Derraz 1b4b31fb32 fix: run the read-only tools from the repo root
Only verify.py and generate_pack.py moved to the repository root. From
any other folder slots, region_audit, provenance_report and bundled_only
said database.json was missing and to rebuild it, identity and
list_platforms named a missing folder, and game_rules ended on a
FileNotFoundError traceback. work_from_repo_root moves to common.py and
the eight tools call it: defaults are read from the root, a path the
user typed from where it was typed.
2026-11-06 15:09:35 +01:00
Abdessamad Derraz 0ec99cc771 fix: key losing core claims like the winner
_collect_emulator_extras recorded a losing claim's path without the
declared root, while the winner's was rewritten with it. On RetroDECK
verify --region kept Rustation and Mednafen STV copies of withdrawn
bios/ files in undeclared_files as packed (7 under japan, 4 under
north-america, 3 under europe).
2026-11-06 15:09:21 +01:00
Abdessamad Derraz bc489273a0 fix: read a pack version past its platform part
_pack_version took the text after the last underscore of the pack name.
AmberELEC's prerelease-20261019_1835 read as 1835 and the page would
announce a version gap that does not exist. The site now removes the
platform part the builder writes (platform_pack_prefix).
2026-11-06 15:07:25 +01:00
Abdessamad Derraz bf10ebaa82 docs: say verify --all covers every platform
The --all help still read 'Verify all active platforms' after the
archived status was dropped. --all covers every registered platform.
2026-11-06 15:06:42 +01:00
Abdessamad Derraz 52b7ee0f46 fix: succeed when an emulator needs no file
--emulator handy --required-only removed the empty ZIP, printed the
path it had just removed and exited 1, while verify reported 0/0 OK and
exited 0. The builder now says no file is needed and succeeds.
2026-11-06 15:06:28 +01:00
Abdessamad Derraz 1fe37d16ac fix: keep stderr after the report it closes
verify.py --emulator fbneo --strict > log 2>&1 put the ERROR verdict on
the first line of the log: redirected, stdout is block-buffered and
stderr is not, and run_cli flushed stdout only after main returned.
run_cli now sets stdout to line buffering, so every tool it runs keeps
the two streams in the order they were written.
2026-11-06 15:06:26 +01:00
Abdessamad Derraz 74a4a036ea fix: read crc32 past a copier header in slots
Geargrafx drops a 512-byte header before its crc32 (src/media.cpp:754-773
at 7c447b0b), and its profile lists both sizes. slots compared the crc32
of the whole file, so EmuELEC's headered syscard3.pce read as contested.
2026-11-06 15:04:26 +01:00
Abdessamad Derraz d7019a0ca4 fix: give prboom-plus citations their full paths 2026-11-06 15:04:25 +01:00
Abdessamad Derraz f2132cc2c0 fix: spell out the checks under a missing file
Without --verbose each missing core file was followed by a bare '[size]'
line that told the reader nothing. It now reads 'validates size', the
verbose wording without the expected values.
2026-11-06 15:03:05 +01:00
Abdessamad Derraz 6846bb4e48 fix: strip links with bracketed text from meta 2026-11-06 15:03:00 +01:00
Abdessamad Derraz 8bdf19c7dd feat: progress lines for online profile_sync 2026-11-06 15:02:53 +01:00
Abdessamad Derraz c42bd0f688 fix: count the bundled names verify leaves out
'Bundled with their emulator, not collected: 154' listed the 14 required
firmware names and nothing said the rest existed. The line now ends with
'139 more, --verbose lists them', as the Core files line does.
2026-11-06 15:02:47 +01:00
Abdessamad Derraz 9930f46f03 docs: drop a link claim the emulator pages lack 2026-11-06 15:02:43 +01:00
Abdessamad Derraz 1834d20dc9 fix: name the file a YAML syntax error is in
Every profile is loaded whatever the command, so one misindented key in
an unrelated profile stopped verify.py --emulator handy and generate_pack
on a 37-line yaml traceback. The sources common.py reads (profiles,
platform files, registry, shared groups, targets) now raise
SourceUnreadable, which run_cli prints on one line with the file, the
line and the validate_schemas command. It is not a FileNotFoundError:
ten callers skip a platform whose file is absent, and a damaged one must
not be skipped the same way.
2026-11-06 15:02:01 +01:00
Abdessamad Derraz 7a34c2ddec fix: align the privacy page with what is counted 2026-11-06 15:02:00 +01:00
Abdessamad Derraz 6bf62d5746 fix: refuse profile narrowings without cores
MiSTer and BizHawk declare cores: []. --region, --one-per-slot and
--no-game-data read the profiles of the cores a platform runs, so their
packs and manifests withdrew nothing under a name and README that said
they had. generate_pack and verify now refuse the flags for a named
platform and leave it out under --all.
2026-11-06 15:01:58 +01:00
Abdessamad Derraz 093b1b21cf docs: document the commit rules and their hook 2026-11-06 15:00:49 +01:00
Abdessamad Derraz 13a10da993 fix: serve the dump a name's hashes prove
dsi_bios7.bin and dsi_bios9.bin hold the DSi Panda devkit boot ROMs, eMMC
key-Y zeroed. Every md5 and crc32 declared under those names designates
a retail dump in the same directory, yet hashless entries (RetroBat,
dsperate) got the devkit ROMs by name. by_proven_name maps such a name to
the proven primaries beside it. kick13.rom, dsi_firmware.bin and
spectrum.zip follow the same rule.
2026-11-06 15:00:28 +01:00
Abdessamad Derraz 3d420145c3 refactor: name export report changes as updates 2026-11-06 14:59:47 +01:00
Abdessamad Derraz 7080459011 fix: read No-Intro from a mirror that rebuilds 2026-11-06 14:59:40 +01:00
Abdessamad Derraz 0abe83da33 fix: give full hashes in the auto_fetch issue body 2026-11-06 14:58:30 +01:00
Abdessamad Derraz 8b55ab45a5 fix: suggest the database beside a mistyped --db
--db databse.json, with database.json in the same folder, was told to run
generate_db --force --output databse.json: a rescan of the whole
collection into a second file under the typo. load_database now names the
closest .json in that folder first, and gives the rebuild command only
when none is close.
2026-11-06 14:57:48 +01:00
Abdessamad Derraz f2ddcc235f docs: drop double hyphen dashes from profile notes 2026-11-06 14:57:30 +01:00
Abdessamad Derraz 6a5b384e02 fix: say when a RetroPie help is updated in part 2026-11-06 14:56:11 +01:00
Abdessamad Derraz de8f20f409 fix: count listed systems in the --system hint
A mistyped --system said '--list-systems lists all 579' and the listing
prints 532: the hint counted every spelling across profiles, and
system_index merges the ones that differ in case or separator before
printing. Both verify.py and generate_pack.py now pass that count to
suggest_names, whose listed parameter exists for this case.
2026-11-06 14:55:40 +01:00
Abdessamad Derraz 144cd46df1 fix: count one export line per addition path 2026-11-06 14:55:23 +01:00
Abdessamad Derraz f4b45c641d feat: run the PR checks with one command 2026-11-06 14:55:03 +01:00
Abdessamad Derraz c9e5ea67e7 fix: count a missing core file once in the summary
The closing summary of verify --all grouped platform to names: sfiii2a.zip,
missing on 15 platforms, was printed 15 times on a 1 060-character line and
counted 24 files for 10 distinct ones. It now groups by file and names the
platforms by the shorter side (every platform but BizHawk, MinUI, MiSTer
FPGA).
2026-11-06 14:54:38 +01:00
Abdessamad Derraz 26be1152ea feat: find Steam libraries from the client folder 2026-11-06 14:53:53 +01:00
Abdessamad Derraz 82bccd9dae fix: refuse Python 3.8 in every build script
Only generate_pack.py and pipeline.py checked the interpreter. verify.py,
slots.py, validate_pr.py, cross_reference.py and the probe tools started
under 3.8 and stopped halfway on a str.removeprefix AttributeError. The
check now lives in common.py, which every build script imports, and in
core_probe.py and region_check.py, which do not. generate_site.py imports
common before siterender, which raised a TypeError at load under 3.8.
2026-11-06 14:52:50 +01:00
Abdessamad Derraz 651c64c763 fix: drop cut scratch paths from probe records 2026-11-06 14:52:05 +01:00
Abdessamad Derraz 92e374328f feat: find the RetroArch AppImage portable home 2026-11-06 14:51:44 +01:00
Abdessamad Derraz af6936055b docs: quote the pip lines CI pins for PR checks 2026-11-06 14:51:00 +01:00
Abdessamad Derraz 190c069767 chore: check every registered scraper's pin 2026-11-06 14:49:56 +01:00
Abdessamad Derraz 1f3fc52013 fix: read the EmuDeck Windows cores from Windows 2026-11-06 14:49:42 +01:00
Abdessamad Derraz bd50b08133 docs: fetch platform files before the PR tests 2026-11-06 14:49:06 +01:00
Abdessamad Derraz 2571acc820 fix: say when Windows does not answer under WSL 2026-11-06 14:48:29 +01:00
Abdessamad Derraz 747d40e988 docs: give the clone command and size for packs 2026-11-06 14:47:47 +01:00
Abdessamad Derraz b56ec21728 feat: check type hints in CI against a baseline
Every signature carries annotations and nothing read them. mypy 1.18.2
over install.py and scripts/ reports 993 errors today, among them the
six pack helpers typed zipfile.ZipFile that every caller also hands a
PackRecord. The errors sit in mypy-baseline.txt and the schema job fails
on any error outside it, or on an entry that no longer occurs. Third-party
packages are left out so the result does not depend on the machine: 6 s
locally, run twice and on 3.12 and 3.13 with the same errors.
2026-11-06 14:47:20 +01:00
Abdessamad Derraz f693cd3ec6 fix: lock a data archive while a run holds it 2026-11-06 14:46:38 +01:00
Abdessamad Derraz ae0b23a801 fix: show the check's own error in refresh_stale 2026-11-06 14:46:17 +01:00
Abdessamad Derraz 8d7b4cd4e4 fix: resolve region holds with builder inputs
_ships and _emulator_ships resolved without the data directories, the
archive index and the slot override the builder uses: 400 platform
declarations and 178 emulator entries read as missing while the pack
held them.
2026-11-06 14:45:44 +01:00
Abdessamad Derraz 395910ed2b fix: one-line errors for --record-coreinfo 2026-11-06 14:45:26 +01:00
Abdessamad Derraz 3b137cd266 fix: name a missing folder in the folder check 2026-11-06 14:44:31 +01:00
Abdessamad Derraz 7657d4aa02 docs: name where psxonpsp660.bin is not world 2026-11-06 14:43:31 +01:00
Abdessamad Derraz 2d1c889d41 refactor: name the database option --db everywhere 2026-11-06 14:42:05 +01:00