From 389ebfa1320d4e61e4609044cc700e0e92482004 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Wed, 11 Nov 2026 13:27:18 +0100 Subject: [PATCH] fix: let config reads date their own build A pin_build that only dates a config_reads entry names the revision the platform reads that file at (ROCKNIX's armsx2 PKG_VERSION, KNULLI's lrmame0278), not the profile's source_commit. Since a6716796a wrote config_reads into the profiles, EveryBuildReferenceNamesThePin counted armsx2, duckstation, hatari, mame, melonds and xemu as disagreeing. The value is now required to name the pin only for a profile whose pin those references hold or follow (pin_frozen, pin_follows). advancemame still disagrees: held at 799060b, it names three earlier builds (EmuELEC 6a34ec0, AmberELEC 0f6a767, Recalbox 5f301c8). --- tests/test_pin_build.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_pin_build.py b/tests/test_pin_build.py index f2503a8f6..6b27c186f 100644 --- a/tests/test_pin_build.py +++ b/tests/test_pin_build.py @@ -155,7 +155,10 @@ class EveryBuildReferenceNamesThePin(unittest.TestCase): token = value.split()[-1].rsplit("/", 1)[-1].removesuffix(".tar.gz") return value in pins or any(token in v or v in value for v in versions) - if not any(names_it(str(r["value"])) for r in references): + # A reference that only dates a config_reads entry names the build + # the platform reads that file at, not this profile's pin. + justifies_pin = profile.get("pin_frozen") or profile.get("pin_follows") + if justifies_pin and not any(names_it(str(r["value"])) for r in references): disagree.append(name) for reference in references: if not cf.pin_build_revision(reference, REPO_ROOT / "platforms"):