Commit Graph
1833 Commits
Author SHA1 Message Date
Abdessamad Derraz e4391d4c7a chore: merge main into pack probes 2026-10-28 03:56:54 +01:00
Abdessamad Derraz 14b7fd1c98 fix: one thread at a time in the campaign cwd 2026-10-28 03:56:25 +01:00
Abdessamad Derraz f850ac36ee chore: merge pack probes
# Conflicts:
#	scripts/generate_site.py
#	scripts/sitemeasurements.py
#	wiki/testing-guide.md
#	wiki/tools.md
2026-10-28 03:28:41 +01:00
Abdessamad Derraz 79ae046343 feat: list emulator files once as table rows 2026-10-28 02:51:48 +01:00
Abdessamad Derraz a1d094c8b3 chore: merge region and coverage checks 2026-10-28 02:08:40 +01:00
Abdessamad Derraz 4d2b7ecb6b fix: put a platform's Tested block first
Placed after the meta card, the Tested heading ended the Reference section and the part-page links below it lost their level label.
2026-10-28 02:07:35 +01:00
Abdessamad Derraz d7fa441e1e chore: merge the oracle branch 2026-10-28 01:52:08 +01:00
Abdessamad Derraz f78aacac29 fix: hold pack_probe to the repository's checks
run_cli entry point, --platform through platform_arg with -p and the registry's suggestion, help on every option, typed probe_lock, options documented, the module in the testing guide. The platform Tested rows fold under one line, run output joined without semicolons, and the measurements page section fits its start-level budget.
2026-10-28 01:51:52 +01:00
Abdessamad Derraz c5a6a0fcc4 fix: fold the region runs on system pages
Four cores and three games put 430 words on the PlayStation page, past its word ceiling. A system page now shows one line per core, and each game's outcome with its four records waits in a closed fold.
2026-10-28 01:35:00 +01:00
Abdessamad Derraz 67ea11e2f6 chore: merge the finished oracle work 2026-10-28 01:00:01 +01:00
Abdessamad Derraz fd9653cb44 fix: keep heading levels on console pages
On a console's own page the region block came after the title with no section above it, h1 then h3, and validate_site refused the PlayStation and Saturn pages. It is a section there and stays under the console heading on a maker's page.
2026-10-28 00:59:53 +01:00
Abdessamad Derraz 17cc35bef9 feat: svg banner matching the site header 2026-10-28 00:48:27 +01:00
Abdessamad Derraz edcdf51a65 fix: type the shared value reader 2026-10-28 00:48:27 +01:00
Abdessamad Derraz 356a101c53 fix: call a region claim ambiguous on every file
PCSX-ReARMed opens the three regional BIOS files whatever the disc, and the rule called that a confirmation because one of them held the region. A run that opened its own region's file and the others too now settles nothing.
2026-10-28 00:29:09 +01:00
Abdessamad Derraz 882ce55635 fix: keep the Tested block in the house style
The details box takes a plain border instead of a side stripe, dots are rounded squares instead of pills, the strip's label joins variants with full stops, and one file tried reads as 1 file.
2026-10-28 00:11:56 +01:00
Abdessamad Derraz 3bad5a90a5 feat: tested block as a table of results 2026-10-27 23:56:01 +01:00
Abdessamad Derraz 6bbf0f137c fix: fold region runs on the emulator page
Twelve region records made the Beetle Saturn Tested block 266 words where the page allows 120. A region run reads as one outcome per game on the system page, so the emulator page now names them in one line.
2026-10-27 23:50:28 +01:00
Abdessamad Derraz 3ce6911a7a chore: merge main 2026-10-27 23:30:30 +01:00
Abdessamad Derraz fe7078c2a8 refactor: wrap the PCSX2 error patterns 2026-10-27 23:29:28 +01:00
Abdessamad Derraz a123e7d71f chore: record PCSX2 on Rez with and without BIOS
Without a BIOS, PCSX2 logs and shows 'PCSX2 requires a PlayStation 2 BIOS in order to run'. That line is now one of PCSX2's error patterns, for the next run's verdict: this record was judged without it.
2026-10-27 23:19:11 +01:00
Abdessamad Derraz e6f7ea8f07 chore: merge the region reference frames 2026-10-27 23:07:23 +01:00
Abdessamad Derraz 44e0816235 chore: merge the inert Tested text 2026-10-27 22:58:36 +01:00
Abdessamad Derraz 905e3853df fix: render pack probe output as text
Run output on a platform's Tested block is escaped for HTML, MDX and Markdown. inline_html links only http(s) and relative targets, quotes escaped. Pack probe runs stay off the emulator pages, shown on the platform's.
2026-10-27 22:58:36 +01:00
Abdessamad Derraz dc53f50f67 fix: render run output in the Tested block as text
Every value a run produced (claim, method, statement, host, flags, variant labels, core, content and file names) is escaped with quotes and its braces made inert for MDX, never read as Markdown. A record link is written only for an http(s) or relative target. Reference runs fold with the tests from before the oracle.
2026-10-27 22:57:23 +01:00
Abdessamad Derraz a2d30046f2 feat: show platform probes in the Tested markup 2026-10-27 22:54:38 +01:00
Abdessamad Derraz d7e17491f0 chore: merge the per-run probe lock 2026-10-27 22:53:16 +01:00
Abdessamad Derraz 6d3045cbb3 fix: no region verdict from frames that differ
The first runs showed it: beetle_psx reaches the game of the US disc on the Japanese and European BIOS, through a different licence screen, so its frames differ from the full run while the oracle says boots. The interim rule read those frames as a failure. A variant now boots on the same frames as the full run or by its oracle verdict, and otherwise has no answer.
2026-10-27 22:28:43 +01:00
Abdessamad Derraz ed61e42f3f fix: bind only proven Python trees in the sandbox
The interpreter bind took each link's grandparent, so ~/.local/bin/python3 exposed all of ~/.local inside the sandbox. A tree is now bound only when it is a Python prefix (lib/pythonX.Y) or a venv (pyvenv.cfg), never / or the home folder or above it. Every other link is bound as a single file, and a path inside a bound tree is not bound again, since bwrap cannot mount over a link in a read-only tree.
2026-10-27 22:09:12 +01:00
Abdessamad Derraz dd64434122 chore: merge main 2026-10-27 22:05:47 +01:00
Abdessamad Derraz e90fb85050 fix: bind the interpreter into the probe sandbox
The sandbox bound only /usr, /lib and /bin. On the CI runner setup-python puts Python under /opt/hostedtoolcache, so the worker could not start and every core_probe and campaign run crashed (7 tests, plus their replay without jsonschema). A venv, pyenv or uv do the same. The interpreter's prefix and every link on the way to it are now bound read-only, each at its own path. Reproduced with uv's Python 3.13 outside /usr, 92 tests pass under it and under the system Python.
2026-10-27 22:05:34 +01:00
Abdessamad Derraz 06ca83bdca fix: one short hash length across the site
Merging the card and platform branches left two SHORT_HASH definitions, 8 and 12. The later one silently won, so the platform rows showed 12 characters while their tests expected 8. One constant now, 12, the card anchor's length. The copy-button selector skips buttons that carry their own data-copy, and the tests follow the merged markup.
2026-10-27 22:02:41 +01:00
Abdessamad Derraz 917ab7c94b chore: merge platform file rows 2026-10-27 21:46:44 +01:00
Abdessamad Derraz 793b16cf67 chore: merge folded cards and one install command 2026-10-27 21:45:48 +01:00
Abdessamad Derraz e7d33caa3f feat: platform file rows that open full width
Each file is a details whose summary is the row: name, folder when it is not the bare name, status chip. The short hash sits on one copy button beside it, since a summary is itself a control. Opened, the evidence runs across the list. A list with no folder drops the column. Code spans in the evidence are plain text.

The lists split by the share of a page they render to (elements against 10,000, bytes against 600,000) instead of Markdown length. With its parts, Batocera goes from 12 pages, 18,854 elements and 1.21 MB to 10 pages, 13,671 and 1.11 MB. A part that folds back into its platform page redirects there, from the record in website/src/data/platform-parts.json.
2026-10-27 21:41:00 +01:00
Abdessamad Derraz e370970363 feat: write a finding again on new evidence
A finding line is written again when the records behind it change, so an open finding cites the oracle runs rather than a frame comparison. A contradicted validation shows the checks the runs prove, content and size, beside the profile's list.
2026-10-27 21:16:54 +01:00
Abdessamad Derraz 0e2e014a96 chore: merge the long list tables 2026-10-27 21:15:17 +01:00
Abdessamad Derraz 1409a8db6a feat: list long file pages as filtered tables
MAME's card pages, GroovyMAME and yaps2 read 13,000 to 16,700 words of
cards. Each entry is now a table row (name, members, status, short
hash) that opens to its card in a details block, with the site's filter
box and row counter. Pages from 150 entries and every split part use it.
Visible words: mame-files-1 16,680 to 1,612, groovymame 14,396 to 1,876.

A row costs about five elements, so a part holds 180 cards: MAME goes
from 8 parts to 9, the largest at 567 KB and 8,989 elements.

Each wanted list (TOSEC, No-Intro, Redump) opens on its counts, then one
table folded under a filter box that opens it, in place of a block per
DAT. Only the names are searched: indexed descriptions and hashes put
the PlayStation page ahead of the PlayStation 2 one.

A filtered row stayed visible on a phone: a stacked row's display:block
outweighed the hidden attribute on every stacked table.
2026-10-27 21:14:04 +01:00
Abdessamad Derraz 1c613dc4b4 fix: take the probe lock per standalone run
standalone_probe now holds the host probe lock for one run, its load check included, as core_probe does, and the docs no longer wrap region_check or standalone_probe in flock.
2026-10-27 21:08:47 +01:00
Abdessamad Derraz f8b54cc53a chore: merge the per-run probe lock 2026-10-27 21:07:57 +01:00
Abdessamad Derraz 7433d49666 fix: tell core_probe the lock is held 2026-10-27 21:03:05 +01:00
Abdessamad Derraz fabd431adb feat: take the host probe lock per run
core_probe takes probe.lock itself around one execution, load check included, and releases it when the run ends. A campaign pass never holds it between runs, so two passes interleave. RETROBIOS_PROBE_LOCK names another file, RETROBIOS_PROBE_LOCK_HELD says the caller holds it. Tests use their own lock file.
2026-10-27 21:02:03 +01:00
Abdessamad Derraz d035a26828 fix: take the probe lock per run
pack_probe holds ~/.local/state/retrobios/probe.lock around each core_probe run and releases it between runs, so a platform pass never blocks other probes for its whole length.
2026-10-27 21:00:51 +01:00
Abdessamad Derraz a8340614b8 chore: merge origin/main 2026-10-27 20:57:27 +01:00
Abdessamad Derraz 8adb84696d feat: fold card hashes, one install command
System and emulator file cards show the name, size, download, a short
SHA1 with a copy button, the setups and the emulators. The full hashes
and the other facts sit in one closed fold, each hash with a copy button.

A system's install box shows one command under the OS tabs for the
setup picked in a list, remembered across pages. Without the script the
list of every command shows, open. The Markdown the page budgets are
measured on is unchanged, so no card moves.
2026-10-27 20:56:07 +01:00
Abdessamad Derraz 20dc488e41 feat: list platform files as table rows
Each file of a platform list is one row: name, folder, status chip, a short hash on a button that copies it whole, and a details cell. The details hold every declared hash, the size, the served copy and the readers. A reference's role is one word (glue, port, upstream, build) defined once in a legend instead of a phrase after every reference.

Visible words: Batocera 2,433 to 2,332, AmberELEC 1,301 to 1,299, RomM 1,607 to 1,596, RetroArch 2,207 to 2,088, RetroDECK arcade part 2 19,127 to 2,104. Rows weigh more Markdown, so 38 more systems move to pages of their own under the existing budgets.
2026-10-27 20:44:05 +01:00
Abdessamad Derraz 74b49e8c04 refactor: return source ref parts with roles
source_ref_items() gives each part of a source_ref with the role of the code it cites. _source_ref_markdown() joins them as before, so every other page renders the same text.
2026-10-27 20:43:59 +01:00
Abdessamad Derraz b6ed5ba0a1 feat: group tested rows by the file they vary
Rows sit under the file under test. A title names the game and what sets the test apart from the others of its file (build, clock, region, files tried), never cut. Zero counts leave the summary. A legend explains the dots. The chips say depends on the file and same with every file. Ran on shows the short host.
2026-10-27 19:48:16 +01:00
Abdessamad Derraz 0d510eb4bd chore: merge core versions read from code 2026-10-27 19:42:04 +01:00
Abdessamad Derraz e7d0c0183c feat: show each test as one row with its proof
The Tested block opens on one summary line, then a row per test: a short title, a result chip, a dot per variant and the date. Method, claim, computer, core build and the record wait in the row's details. Tests from before the boot oracle fold under one line, benchmarks get their own table. beetle_saturn shows under 120 words before anything is opened.
2026-10-27 19:40:16 +01:00
Abdessamad Derraz 5184b55b82 chore: merge the oracle pages 2026-10-27 19:24:19 +01:00