Commit Graph
88 Commits
Author SHA1 Message Date
Abdessamad Derraz db3eba1cfc fix: find the branch in a URL into a folder
A /tree/<branch>/<dir> URL was read as one branch name, so the
repository never resolved. Each prefix is tried, shortest first.
A repository that answers nothing now says so, or reports the
declared upstream_gone.
2026-10-18 13:34:37 +02:00
Abdessamad Derraz 3bfe89c5a2 fix: read past a blank line when attributing a ref 2026-10-18 13:28:54 +02:00
Abdessamad Derraz 8605f85657 fix: never nudge a ref that cites code 2026-10-18 13:23:41 +02:00
Abdessamad Derraz ba36d9586f fix: print full hashes on collection cards 2026-10-18 09:54:28 +02:00
Abdessamad Derraz 92d639253a refactor: drop sixteen unused imports 2026-10-18 08:52:19 +02:00
Abdessamad Derraz 7531ccad8f fix: refuse a profile_sync filter matching nothing 2026-10-18 07:33:11 +02:00
Abdessamad Derraz 2db83a5e01 feat: confront added profiles in CI
profile_sync --strict exits 1 when a profile has refs to review. The
validation workflow runs it on every profile a pull request or a push to
main adds, so a profile whose refs miss their value no longer lands green.
2026-10-18 06:29:14 +02:00
Abdessamad Derraz e1b6aad51b fix: refuse abbreviated flags in every script
argparse completed a prefix into the only flag starting with it:
slots.py --emulator read profiles from a directory named after the
emulator and reported nothing, and pipeline.py --all built every pack
variant. Every parser now refuses an abbreviation.
2026-10-18 05:30:58 +02:00
Abdessamad Derraz 8a9d6919d9 feat: record the pin a prose reread confirmed
A prose citation whose text lived under several pins stayed in
read again until the text changed, so fixnes, zesarux and emucorex,
exact at their pins, would have refused every later bump.
prose_written_at names the pin a reader confirmed; it settles the
readings and never overrides a history with one candidate.
2026-10-18 02:49:24 +02:00
Abdessamad Derraz a5f41511cc fix: read a semicolon as a citation separator
lynx-emu cites the mednafen upstream after a semicolon, which the
prose scanner did not treat as a list delimiter, so the citation
was charged to the fork the profile was read from.
2026-10-18 02:47:37 +02:00
Abdessamad Derraz 9802804a9a fix: tell an offline cache miss from absence
Offline, fetch_file answered None for a path the cache never
stored, the same answer as a path known to be absent, and
profile_sync reported existing files as gone. A miss now raises
NotCachedError and the profile is reported unverified.
2026-10-18 02:46:57 +02:00
Abdessamad Derraz b91449590d fix: follow an upstream the port vendors as module
libretro/TIC-80 builds nesbox/TIC-80 through its core submodule
and tic80's upstream_commit is that submodule commit. Compared to
nesbox HEAD, profile_sync reported changes the shipped core never
had, and a bump would have moved the pin past it. When an upstream
pin is a submodule pointer of the source pin, its head is the
pointer at the source HEAD.
2026-10-18 02:45:27 +02:00
Abdessamad Derraz faa8af0800 refactor: annotate every remaining signature 2026-10-18 00:44:20 +02:00
Abdessamad Derraz 55631a2fbc fix: end listings quietly when the reader leaves 2026-10-17 20:50:22 +02:00
Abdessamad Derraz e319be1c19 fix: rank the triage when a forge refuses a lookup 2026-10-17 18:25:44 +02:00
Abdessamad Derraz 9992490854 fix: track citations a source_ref part drops
Annotations and text after a located head were discarded before
anchoring, so a citation written there never moved with its pin:
zesarux cited two macros four lines off. The leftover text of every
source_ref is now scanned as prose, and the two citations are fixed.
2026-10-17 18:25:03 +02:00
Abdessamad Derraz 5f47b77112 fix: judge prose of profiles pinned per build mode 2026-10-17 10:32:04 +02:00
Abdessamad Derraz 86043ed931 fix: count drift since the pin in profile triage 2026-10-17 10:31:48 +02:00
Abdessamad Derraz a9be4532af fix: report a refused forge as unread, not gone 2026-10-17 10:31:42 +02:00
Abdessamad Derraz 24f7ade261 fix: block a pin bump when git history is unreadable
realign_prose read a failing git log as an empty history and stopped
silently at an unreadable revision, so the stale-prose check answered
"nothing to move" and let --bump-commit through. It now reports such
citations to read again instead of passing them.
2026-10-17 02:00:39 +02:00
Abdessamad Derraz 6b7d93fc9e fix: report profiles the forge failed to serve 2026-10-16 15:56:17 +02:00
Abdessamad Derraz 3a6f2c8770 fix: key the opcode cache by content 2026-10-16 14:29:05 +02:00
Abdessamad Derraz a41648292e fix: pin a source mirror on source_commit 2026-10-16 12:30:21 +02:00
Abdessamad Derraz 7744c21b65 fix: compare citations written in comments 2026-10-16 12:28:12 +02:00
Abdessamad Derraz 8a5388db24 fix: read citations wrapped across lines 2026-10-16 12:26:00 +02:00
Abdessamad Derraz 9bfede39ba fix: hold the pin while a ref awaits its recale 2026-10-16 12:23:37 +02:00
Abdessamad Derraz 1cd743242f fix: report a pin the tracked history lost 2026-10-10 07:53:06 +02:00
Abdessamad Derraz 884c43c109 fix: a citation in an unmoved repo needs no move 2026-10-10 07:51:09 +02:00
Abdessamad Derraz 203e75c1f4 fix: let the live, owning repository judge a ref 2026-10-10 07:49:14 +02:00
Abdessamad Derraz 788a6dd4df fix: read the upstream cache from one name 2026-10-10 04:41:39 +02:00
Abdessamad Derraz d8ad89902b refactor: split helpers out of grown functions 2026-10-06 13:59:50 +02:00
Abdessamad Derraz 4117589405 fix: a cited range past the file end is gone 2026-10-06 12:59:23 +02:00
Abdessamad Derraz 1d00516d96 fix: read profile tree status from its own repo 2026-10-06 12:24:31 +02:00
Abdessamad Derraz f3d01aeeeb refactor: split this round's fixes into small helpers 2026-10-06 11:16:06 +02:00
Abdessamad Derraz 7a21b8d814 fix: keep refs for another version out of the pin check 2026-10-06 09:28:51 +02:00
Abdessamad Derraz 7224114a4b fix: realign stale prose before a pin moves 2026-10-06 09:27:33 +02:00
Abdessamad Derraz 2d000b8056 fix: leave mode-keyed pins to a hand edit 2026-10-06 09:25:23 +02:00
Abdessamad Derraz 5bf25d1964 fix: move a ref only on a hash found elsewhere 2026-10-06 09:24:49 +02:00
Abdessamad Derraz b9086262b7 refactor: split the pin gate from bump_commit 2026-10-06 06:39:02 +02:00
Abdessamad Derraz 4a32ef2bb3 fix: judge each profile ref by its own repository 2026-10-06 04:37:48 +02:00
Abdessamad Derraz ab75123320 refactor: move flag refusals out of the main functions 2026-10-06 03:08:35 +02:00
Abdessamad Derraz e0141fab15 fix: apply changed-only to every profile_sync output 2026-10-06 01:42:00 +02:00
Abdessamad Derraz fdc7fc8326 fix: default profile report containers to empty 2026-10-06 01:39:55 +02:00
Abdessamad Derraz d0a3563c3e fix: keep prose citations within reach and pinned 2026-10-06 00:26:36 +02:00
Abdessamad Derraz 17cecbf186 feat: read libretro gitlab and mark unchecked refs 2026-10-04 16:36:00 +02:00
Abdessamad Derraz c00a1ecc6c fix: collect a citation to an extensionless file 2026-09-07 07:22:26 +02:00
Abdessamad Derraz a0b2263bae feat: let a profile say its pin is held on purpose
nethersx2-turnip-classic documents the shim rules of the revision it
pins, and says so in prose: the classic build is that revision. Compared
to HEAD it reported the same two changes every pass, and recaling would
have repointed its refs at rules this build never had.

pin_frozen says the freeze is deliberate, and the profile is then judged
against its own revision, exactly as one pinned to a superseded tag
already was. Recale and bump are refused for it, which is what makes the
declaration safe to trust.
2026-09-05 10:50:53 +02:00
Abdessamad Derraz bc7f131b6f fix: compare a citation without the spacing its author chose
A recale rewrites the located tokens and leaves the sentence alone, so a
prose run keeps `a.c:228, 1439-1443` while the rendered form drops the
space. Comparing the two literally made a run that had just been written
look unwritten, pending_recale counted it, and bump_commit refused for
ever.

mariani was held back by three of them: it recaled twenty-five refs and
could never advance its pin, which is the desync the all-or-nothing rule
forbids. 67 refs, all anchored.
2026-09-05 10:41:58 +02:00
Abdessamad Derraz 02edf40d8f fix: let the fallback mapping reach the largest file cited
openbor.c is 55k lines at the pin and 57k at HEAD, over a ceiling of
40k, so its ref reported CHANGED with nothing to act on: the mapping was
never attempted. Diffing that pair takes nine seconds, and the fallback
only runs once exact anchoring has failed, which is rare.

The ceiling now sits above it and still stops a pathological pair from
stalling a sweep of every profile. savesettings moved from 2675 to 2940
and the range maps cleanly.
2026-09-05 10:17:37 +02:00
Abdessamad Derraz 6582c3237e fix: name the stale pin when the file is only shorter
The diagnostic caught a ref whose file was missing at the pin. nestopia
showed the other shape: the file is there and the line is not yet. Its
palette and database loads were cited at 2041 and 2063, which is where
HEAD carries them, against a pin four hundred lines shorter, and that
reported as a plain GONE with nothing to act on.

A cited line past the end of the pinned file that fits HEAD is the same
finding as before and now says so. nestopia's pin moved to the revision
its refs describe: 8 refs, all anchored.
2026-09-05 01:31:10 +02:00