Commit Graph
4148 Commits
Author SHA1 Message Date
Abdessamad Derraz 00df728797 chore: merge main into the tooling fixes 2026-11-05 19:55:02 +01:00
Abdessamad Derraz 3011ee498e feat: record the build file behind a held pin
pin_frozen was prose, and no tool read the build file it cites, so a platform building another revision left the profile holding one nobody ships. pin_build records the platform, its repository, the revision read, the file, the variable and its value. check_freshness reads the file again where the platform's YAML now stands and reports STALE when the value moved. 36 of the 46 held profiles carry it, each value read from the build file at the platform's scraped revision. The other ten name no build file and are counted on one row: six RetroBat binary packages and four holds not tied to a platform build.
2026-11-05 19:54:48 +01:00
Abdessamad Derraz c1f0e8c2ca fix: compare system packs in pipeline step 5
Step 5 built emulator packs one profile at a time, where two profiles never share a path. It now also builds each system pack that gathers several profiles and compares it with verify. The first run found five standalone MSX and ColecoVision packs where verify skipped the data tree of a profile the system filter left without files, and credited msx-emu's copies the pack never wrote. verify now places those trees too: 541 system packs, all equal.
2026-11-05 19:45:39 +01:00
Abdessamad Derraz b20d65d129 fix: verify only pack archives in the output dir
verify_and_finalize_packs took every ZIP of the directory, so the launcher archives build_port.py writes to the same dist/ were judged as packs, failed, and were rewritten with a manifest after build_port had printed their hashes. Every name the builder gives ends in _BIOS_Pack.zip, and only those are taken.
2026-11-05 19:38:21 +01:00
Abdessamad Derraz 0d21566183 fix: take an unchecked version as a match in packs
Raze lists three sized BLOOD.RFF versions and a fourth it takes without a check, the shareware RFF the collection holds. The Batocera pack printed two DISCREPANCY lines for it that verify never showed. A slot with an unchecked sibling now accepts any copy for that core, in the validation rules and in _matches_an_alternative. When every version refuses a copy, the message names all accepted values instead of the first.
2026-11-05 19:37:33 +01:00
Abdessamad Derraz 3d0ee19bcb refactor: index profile entries by name and hash
_matching walked the reader's whole profile for each platform entry, 2,135 scans of MAME in one verify --all. Each profile is now indexed once per kind by name and by accepted hash. Over every registered platform, 10,524 lookups give the same answers as the scan, in 0.13 s instead of 2.42 s.
2026-11-05 19:37:27 +01:00
Abdessamad Derraz 4af0d70e4e fix: report md5 lists Recalbox and RetroDECK grow
Both formats write every accepted md5 when the truth extends the platform's list without contradicting it, but only Batocera answered written_list, so landed_changes reported nothing for a diff the maintainer would find. Both now name the list they write when it holds several values.
2026-11-05 19:36:02 +01:00
Abdessamad Derraz d8cfd283b4 fix: show packed core files with an empty gap list
verify --platform recalbox --system nec-pc-engine printed no Core files line while the pack held six syscard copies for geargrafx: the section returned on an empty gap report before reading packed_extras. It now prints the pack's counts whenever they are not zero.
2026-11-05 19:32:05 +01:00
Abdessamad Derraz 137f971dae fix: drop bundled files from provenance needs
profile_needs read every profile entry, so --missing named 43 files the emulator installs itself among 50 needs and buried the six xm7 ROMs. A bundled entry is skipped unless a platform package leaves it out (not_bundled_on). The report now lists 7 needs.
2026-11-05 19:30:57 +01:00
Abdessamad Derraz a05b1da9a0 fix: leave bundled files out of auto_fetch targets
find_missing kept undeclared files reached only by bundled entries, so auto_fetch searched for and offered files the emulator installs itself, and a placed copy would fail bundled_only.py --strict. RetroPie drops from 55 to 14 missing files.
2026-11-05 19:30:29 +01:00
Abdessamad Derraz f9a786896e fix: restore the profile when the prose read fails
_apply_writes promoted the bumped profile, then read its prose under the new pin. A NotCachedError, RateLimitError or UpstreamError from that read left the profile written with a pin the guard would refuse. The original bytes are now put back before the error goes on.
2026-11-05 19:30:04 +01:00
Abdessamad Derraz f8dce8f8c3 fix: keep upstream HEAD for a pin past the fork
_follow_fork_base swapped the fork merge base in as upstream HEAD even when upstream_commit was newer than that base, as for melonds and easyrpg whose upstream is the standalone build they document. melonds read its Qt refs 825 commits back and reported 4 to review. A pin that descends from the base now keeps the HEAD, melonds shows 0 to review.
2026-11-05 19:29:23 +01:00
Abdessamad Derraz 651cabf412 fix: rank orphaned and moved pins first in triage
drift_score ignored orphaned pins and moved repositories although triage_state says they are fixed before any ref is read: pcem ranked last at 0 with an upstream_commit on no branch. Each now weighs more than a GONE ref.
2026-11-05 19:27:36 +01:00
Abdessamad Derraz a3c853316a fix: name the dirty profiles profile_sync refuses
The refusal said the directory carried uncommitted changes without naming the profile, among about 375. It now lists the files git status reports, and says that --force writes over them.
2026-11-05 19:27:12 +01:00
Abdessamad Derraz fb9b5592a5 feat: let --emulator take an alias name
--emulator mednafen_psx refused with 'use --emulator beetle_psx' although the profile names its target. The alias now selects that profile and says so on stderr, in verify, generate_pack and cross_reference alike. Launchers are still refused, and pipeline step 5 skips aliases since they compare under the profile they name.
2026-11-05 19:26:36 +01:00
Abdessamad Derraz 640331b159 docs: regenerate the installer output samples
The RetroArch manifest gained ep128emu/roms/ide12.rom in c624a820f and the page still quoted the earlier counts, which failed test_doc_pages.
2026-11-05 19:23:54 +01:00
Abdessamad Derraz 4b54b82966 fix: suggest the target when no platform has it
verify --all --target swich ended on 'no platform has it' after seventeen INFO lines, two of which held the suggestion. The refusal now names the closest targets across every platform with the platforms that have them, and the per-platform lines print only when some platform keeps the target.
2026-11-05 19:21:23 +01:00
Abdessamad Derraz 9ae3919d34 fix: spell cited commands so a paste runs them
Messages in check_freshness, generate_pack, common, profile_sync and fileless_audit named commands as export_native.py --platform x, which fails from the repository root. They now read python scripts/<name>.py like the rest of the report.
2026-11-05 19:19:04 +01:00
Abdessamad Derraz 232cebb513 chore: ignore the metadata pip install writes 2026-11-05 19:17:34 +01:00
Abdessamad Derraz dd904e2fab fix: say what differs in games index --check
--check printed only STALE and a path, after the whole coverage table. It now skips the table, names what changed in each document (an added file, a changed key) and the command that writes them. The published index lagged the RetroArch manifest by ep128emu/roms/ide12.rom and is regenerated.
2026-11-05 19:17:23 +01:00
Abdessamad Derraz 891741433b fix: publish the games index whole or not at all
install/games/, the event schema, the launcher index and wiki/installer.md were truncated at their final name, so an interrupted run left a committed-looking partial JSON document. They now go through write_text_atomic.
2026-11-05 19:16:59 +01:00
Abdessamad Derraz 80f736c167 fix: read the umask under one lock
plain_file_mode and safe_extract_zip set the umask to 0 to read it. Two threads doing so could restore 0 last, leaving every later file world-writable. Both now read it through process_umask, which holds a lock.
2026-11-05 19:10:57 +01:00
Abdessamad Derraz a1d5e7c13d fix: let pip install the dev extra
pyproject had no [build-system] and no module list, so setuptools' flat-layout discovery found scripts/ and tests/ and refused to build. Nothing is packaged now and pip install -e ".[dev]" installs the tooling.
2026-11-05 19:08:16 +01:00
Abdessamad Derraz a9772dd6c7 docs: rerun the installer samples on the new lists
The install lists gained ide12.rom, so the dry run counts one more
file. The samples on the installer page are rewritten from the run.
2026-11-05 19:07:17 +01:00
Abdessamad Derraz fefc9ca16f fix: refuse numbered review tags in commits
A subject that points at a numbered private review names notes no clone holds, and pushed history cannot be rewritten. The hook now refuses those tags like the tracked-file test does.
2026-11-05 19:06:57 +01:00
Abdessamad Derraz c624a820f0 chore: regenerate install lists after the merges
ide12.rom is collected: the manifests that run ep128emu serve it
instead of listing it among the files they leave out.
2026-11-05 17:11:46 +01:00
Abdessamad Derraz 9ea80dfb70 fix: keep the installer bootstraps of both batches
The tooling merge took its own install.sh and install.ps1, which only
moved the pin, and dropped the bootstrap checks of the installer
batch. The ported checksum test calls the TypeScript node helper of
its merged module, and the retrodeck excerpt follows the run.
2026-11-05 16:36:17 +01:00
Abdessamad Derraz b90f8bb0b9 chore: merge tooling batch 2026-11-05 15:57:19 +01:00
Abdessamad Derraz 46302de5bb chore: merge installer batch 2026-11-05 15:21:48 +01:00
Abdessamad Derraz 9fb1a43d95 docs: quote the retrodeck run after the merge
The excerpt and the source tree record follow the merged batches:
the pack counts two more core files, the held-but-not-packed line
names each reason, and the hatariB upstream tree is recorded.
2026-11-05 15:21:41 +01:00
Abdessamad Derraz 4ee0fd67a2 chore: merge site and docs batch 2026-11-05 14:37:10 +01:00
Abdessamad Derraz 21b8d902e3 fix: name a served sha1 only when it differs
A RomM row printed the served copy's sha1 under the same SHA1 it
had just declared, 313 times on the page. The note stays where the
copy is not one the row declares.
2026-11-05 14:36:14 +01:00
Abdessamad Derraz 2479b91e42 chore: merge origin/main 2026-11-05 13:43:55 +01:00
Abdessamad Derraz 771e68016f fix: keep the FAQ and data page wording tests hold 2026-11-05 13:39:41 +01:00
Abdessamad Derraz feab2d5ff0 chore: merge origin/main 2026-11-05 13:22:26 +01:00
Abdessamad Derraz da5f24b74a chore: regenerate lists after the audit batches
The resolver now keeps a name inside its own emulator tree and the retail Xbox dashboard files moved to bios/Microsoft/Xbox/C/, so the install lists, README counts, installer samples and games index are rebuilt from the merged tree. Built twice, identical.
2026-11-05 13:22:19 +01:00
Abdessamad Derraz e50eeb52fd chore: merge audit batch, resolver and profiles 2026-11-05 13:16:03 +01:00
Abdessamad Derraz 50be709240 chore: merge audit batch, truth and export 2026-11-05 13:16:03 +01:00
Abdessamad Derraz 3f50163b0a chore: merge audit batch, verify and pack 2026-11-05 13:16:03 +01:00
Abdessamad Derraz 2753387905 chore: merge main 2026-11-05 13:14:01 +01:00
Abdessamad Derraz 2aade2341b chore: record xenia-edge source paths again 2026-11-05 13:12:34 +01:00
Abdessamad Derraz fe8033f477 chore: index the POM2 Apple II dumps
Database, RetroArch install list, README counts and the installer page samples after the merge of #86, so the installer serves the 27 Apple II files.
2026-11-05 13:07:33 +01:00
Abdessamad Derraz 2722f6f9ce fix: keep setup pages in their budgets 2026-11-05 13:05:31 +01:00
Abdessamad Derraz 586fbd7ef2 fix: keep the FAQ in its word budget 2026-11-05 13:05:31 +01:00
Abdessamad Derraz ad810f0c68 fix: run the card board test in a child process 2026-11-05 13:05:09 +01:00
Abdessamad Derraz 37d9165f33 fix: let a pack alone narrow by core in a test 2026-11-05 13:03:54 +01:00
Abdessamad Derraz 806cb6c719 fix: expect code 2 for a typo in two more tests 2026-11-05 13:01:25 +01:00
Abdessamad Derraz ff4e62bb63 fix: follow the xenia-edge libretro project rename
git.libretro.com answers libretro/xenia-libretro as
libretro/xenia-edge-libretro. The declared source now names the project
as the forge does.
2026-11-05 13:00:41 +01:00
Abdessamad Derraz d73728737f chore: regenerate readme, games and source paths
One Bermuda Syndrome slug, the model ROMs without a territory, and the
redream and hatari pins.
2026-11-05 12:59:49 +01:00
Abdessamad Derraz 8b4927d20c fix: openmsx names its system roms in its xml
With found_by content the openMSX entries read as labels, and two of
them, COLECO.ROM and fmpac.rom, are names other profiles give another
dump. openMSX's own machine XMLs name both (ColecoVision_SGM.xml:56,
Boosted_MSX2_EN.xml:83) and try them beside the XML, so they are code
names, not labels.
2026-11-05 12:59:46 +01:00