Commit Graph
1996 Commits
Author SHA1 Message Date
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 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 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 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 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 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 771e68016f fix: keep the FAQ and data page wording tests hold 2026-11-05 13:39:41 +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 2722f6f9ce fix: keep setup pages in their budgets 2026-11-05 13:05:31 +01:00
Abdessamad Derraz 01d5d96064 fix: name the export reports as copied files 2026-11-05 12:56:05 +01:00
Abdessamad Derraz a6aea140f0 chore: merge review tag cleanup 2026-11-05 12:52:29 +01:00
Abdessamad Derraz ccec5486e5 refactor: name site tests by subject
The site test modules were cut by review pass (test_site_r2_css to test_site_r5_wiki): the passes of one subject become one module, and the modules that stood alone take the name of what they hold. The installer test classes named after a review take the name of what they test. One test left --manifest set for the tests after it, which the new order showed: it now resets the sources.
2026-11-05 12:51:52 +01:00
Abdessamad Derraz 97b72c95c5 chore: merge knulli target scraper 2026-11-05 12:42:54 +01:00
Abdessamad Derraz a9ecfea1a6 feat: add knulli target scraper
KNULLI builds per board on Batocera's Kconfig model from its own tree (knulli-cfw/knulli-linux at the tag platforms/knulli.yml pins): configs/knulli-*.board, package/system/knulli-system/Config.in, knulli-es-system/es_systems.yml and the knulli-cfw/buildroot submodule. Ten boards, the armhf library builds excluded.
2026-11-05 12:42:23 +01:00
Abdessamad Derraz 313693e58b fix: settle batocera kconfig before mapping cores
Continued if-conditions were cut at their first line, so GLES3 held on every board, and selects guarded by a negation stayed on once fired. Derived flags are read line by line, each pass rebuilds the symbol set from the board, and the architecture comes from the board's BR2_<arch> choice.
2026-11-05 12:42:19 +01:00
Abdessamad Derraz 79238c8f1d fix: read a gap report without its entry tally 2026-11-05 12:35:05 +01:00
Abdessamad Derraz 9c128e46b2 feat: apply the board a mounted card names 2026-11-05 12:34:38 +01:00
Abdessamad Derraz ddafc2ff42 feat: carry the board list in the pack 2026-11-05 12:30:06 +01:00
Abdessamad Derraz 1e96968744 fix: record list parts by their front matter 2026-11-05 12:24:18 +01:00
Abdessamad Derraz d5e5146819 feat: hold bumps of profiles one platform ships
A bulk advance moved fheroes2, supertux and supermariowar past the
revision EmuELEC compiles, and nothing stopped it: bump_commit refused
built_by only. It now leaves a profile a single registered platform ships
until it carries pin_frozen or the new pin_follows, which says that
platform builds the branch tip.

hode, bermuda, bennugd-monolithic and ccleste are held on the
PKG_VERSION of their EmuELEC v4.8 package.mk, equal to their pins.
rigelengine was one commit past it (README.md only) and goes back to
f05996f9.
2026-11-05 12:23:41 +01:00
Abdessamad Derraz 394ef44e57 fix: one system slug for bermuda syndrome
bermuda.yml (the EmuELEC build) and bsyndrome.yml (RetroBat's bs.exe)
document the same cyxx/bermuda engine under two slugs, bermuda-syndrome
and bsyndrome, so the site gave the game two system pages. bsyndrome now
files its entries under bermuda-syndrome.
2026-11-05 12:23:41 +01:00
Abdessamad Derraz 964812f977 chore: drop review tags from comments
Comments, docstrings and test texts ended on tags that name private review notes no clone holds. The tags go, the facts stay. Test methods named after a finding number are named after what they hold. test_prose_style refuses a tag that comes back. install.py changes in comments only: its pin and the launcher index follow.
2026-11-05 12:19:12 +01:00
Abdessamad Derraz 4dd43aa627 feat: set up Termux storage from the one-liner 2026-11-05 12:18:39 +01:00
Abdessamad Derraz 832b2890d4 docs: say what the unsourceable count is 2026-11-05 12:17:51 +01:00
Abdessamad Derraz e3a9d6479b fix: badge a differing hash as Other hash 2026-11-05 12:16:59 +01:00
Abdessamad Derraz b62ebf384b feat: reach the network share from a Mac or Linux 2026-11-05 12:16:29 +01:00
Abdessamad Derraz bef8b50669 fix: compare --changed with the project main line
In a fork's clone origin/main is the fork: once pushed it is HEAD, and
profile_sync --changed --strict checked nothing and passed while the PR's
CI then failed. The default base is now the line validate_pr.py reads:
upstream/main or origin/main when that remote is the project, the
project's main fetched otherwise.
2026-11-05 12:16:28 +01:00
Abdessamad Derraz 6fb79cab6d fix: redirect every list part that goes away 2026-11-05 12:15:26 +01:00
Abdessamad Derraz 4efd64be70 feat: publish a Logiqx DAT per setup 2026-11-05 12:13:47 +01:00
Abdessamad Derraz 398246b064 feat: link the change reports and the wanted CSV 2026-11-05 12:11:12 +01:00
Abdessamad Derraz ef477036d6 docs: say the lookup takes a checksum tool's line 2026-11-05 12:10:07 +01:00
Abdessamad Derraz 9c17943996 feat: read the hash out of a checksum tool's line 2026-11-05 12:09:55 +01:00
Abdessamad Derraz 2c81e1a1af feat: watch the rom folder pins 2026-11-05 12:09:10 +01:00