From 2841998b6023b6e38b5c750271a8f107666a1caf Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 11:02:00 +0100 Subject: [PATCH 1/2] chore: hold indexnow.py to the script rules indexnow.py now exits through run_cli, its --dist option is documented in tools.md, and test_site_freshness.py imports the tests package first. --- scripts/indexnow.py | 4 +++- tests/test_site_freshness.py | 4 ++-- wiki/tools.md | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/indexnow.py b/scripts/indexnow.py index d06be8f65..6d62939ac 100644 --- a/scripts/indexnow.py +++ b/scripts/indexnow.py @@ -81,4 +81,6 @@ def main() -> int: if __name__ == "__main__": - sys.exit(main()) + from common import run_cli + + run_cli(main) diff --git a/tests/test_site_freshness.py b/tests/test_site_freshness.py index f74d07daa..e76cb8e61 100644 --- a/tests/test_site_freshness.py +++ b/tests/test_site_freshness.py @@ -6,14 +6,14 @@ the pages whose words changed for IndexNow.""" from __future__ import annotations +import tests # noqa: F401 offline, scratch under tmp/, the suite's own cache + import json import sys import tempfile import unittest from pathlib import Path -import tests # noqa: F401 - ROOT = Path(__file__).resolve().parent.parent sys.path.insert(0, str(ROOT / "scripts")) diff --git a/wiki/tools.md b/wiki/tools.md index 950a112e5..238ea5690 100644 --- a/wiki/tools.md +++ b/wiki/tools.md @@ -1376,6 +1376,7 @@ before a release (wiki/release-process.md). Its lines stay in | `site_insights.py` | What readers look for and do not find, from totals only: searches that show the site but are rarely clicked, file names searched and whether the collection holds them, site searches that found nothing, broken addresses, "Did this page help?" answers, GitHub traffic and release downloads (`--days`, `--skip gsc,goatcounter,github`, `--output`). Reads Search Console, GoatCounter and GitHub with credentials kept outside the repository. [What the site counts](privacy.md) | | `make_demo.py` | Record the installer demos of the README and the site into `docs_assets/demo/`. An ArkOS card with six games is built under `tmp/demo/` in a mount namespace of the user, this checkout is served on loopback, and VHS runs one tape per variant: `default` (`install.tape`, the one-line command in a terminal, the card at `/media/EASYROMS`, needs `unshare`) and `handheld` (`install-handheld.tape`, the full-screen interface at 640x480 on an ArkOS root made with `bwrap`, as its Tools menu starts it, driven by the keys gptokeyb sends for the buttons). `--variant NAME` records one (repeatable), every variant by default, the others kept. Each needs `vhs`, `ttyd` and `ffmpeg`. The default gets the README's GIF, each gets a WebM, an MP4 and a poster, held to their size targets, and an entry in `demo.json` with what it shows and its alt text. No Windows variant: under pwsh on Linux the installer's summary gives `--dest /mnt/e/bios` back. Never run by the build | | `validate_site.py` | Validate rendered metadata, heading order, image alternatives, JSON-LD, local resources, links and fragments, and the page size and search index budgets | +| `indexnow.py` | List the pages a deploy changes, read against the `digests.json` the live site serves, as the IndexNow request the deploy posts once the new site is live. `--dist` names the built site, `--output` appends the request to a step output | | `romset_recipes.py` | Identify which emulator version an arcade archive matches, rebuild a pinned archive from ROMs already held, record a recipe for every archive the collection holds and build any of them from the members it holds (see [Archive recipes](#archive-recipes)) | | `archive_build.py` | The archive recipes behind `romset_recipes.py --capture`, `--build` and `--build-all`: capture, member lookup by sha1, verified build | | `scraper/romset_dat_importer.py` | Fetch and import per-set recipes from MAME `-listxml` or FBNeo DATs into `recipes/`. `--fetch` alone takes the newest MAME release, and FBNeo DATs are refreshed by git blob sha. `--fetch ` reads FBNeo at that tag, branch or commit | From 44a60ca96f0c95a0225a82f23cd67c284b93ec2d Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 12:11:44 +0100 Subject: [PATCH 2/2] docs: quote the bootstrap refusal word for word The FAQ said the installer stops when it does not match "its fingerprint", and the bootstraps print "does not match its expected": the page quotes them again, within the page's word ceiling. --- wiki/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wiki/faq.md b/wiki/faq.md index 9ea6f3ac1..b46df665d 100644 --- a/wiki/faq.md +++ b/wiki/faq.md @@ -17,7 +17,7 @@ terms: ios, iphone, ipad ## How to tell which BIOS is needed? { #how-do-i-know-which-bios-i-need } -`--dry-run` lists them and changes nothing. +`--dry-run` lists them, changing nothing. ```sh @@ -61,7 +61,7 @@ Game sets must match the emulator's version: ## Is the command safe? { #is-piping-the-installer-into-a-shell-safe } -- It stops if the installer does not match its fingerprint, and +- It stops if the installer does not match its expected fingerprint, and checks each file. - It fills the BIOS folder, some save folders and a games cache. - It never touches games or save files.