mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
feat: profile RetroPie's AdvanceMAME tip build
RetroPie clones amadvance/advancemame at the branch tip with no revision (scriptmodules/emulators/advmame.sh:16, 39-41 at 427e762), so advmame is profiled at 96237a5 (v5.0-484), built_by retropie and held by pin_follows. RetroPie's advmame now resolves to it, advancemame keeping EmuELEC, AmberELEC and Recalbox. The MAME workflow at 96237a5: 28 BIOS roots registered in mame/mamedriv.c (macs2bios is not), the eight ZN roots under their MAME names (coh1000c, coh3002c, coh1002m, coh1000t, coh1002e, coh1001l, coh1000w, coh1000a), modern Neo Geo members, coh1000w's CAT702, and 15 device archives that BIOS_LOAD reads first (atarisy1, coh3002t, m1comm, midssio, namcoc65/68/69/71/74, s_smp, saa5050, sente6vb, sns_dsp1bleg, t5182, v4bios). bctvidbs declares no ROM of its own. Three laserdisc player programs are opened by name outside any ROM list, with a fatal length, CRC32 and SHA1 check: pr8210, 22vp931 and simutrek. pin_build accepts pin_follows in the schema, and bump_commit advances a built_by profile that follows the tip. Manifests: RetroPie gains 24 archives at its BIOS root, the ZN ones under their new names, and nss.zip moves to the copy holding nss-c.dat and nss-ic14.02. The other platforms do not change. verify --all keeps its counts. profile_sync: 0 to review.
This commit is contained in:
1 parent
157d60691d
commit
7ff8f17808
6 files changed
+1311
-6
No files matched your search
@@ -44,7 +44,6 @@ mode: standalone
|
||||
|
||||
cores:
|
||||
- advancemame
|
||||
- advmame
|
||||
- "AdvanceMame"
|
||||
|
||||
systems:
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -11,7 +11,7 @@
|
||||
],
|
||||
"allOf": [
|
||||
{
|
||||
"comment": "A build reference documents why a pin is held, or the build config_reads are read at: it never stands without the pin_frozen or the config_reads that say so.",
|
||||
"comment": "A build reference documents why a pin is held or follows the branch tip, or the build config_reads are read at: it never stands without the pin_frozen, pin_follows or config_reads that say so.",
|
||||
"if": {
|
||||
"required": [
|
||||
"pin_build"
|
||||
@@ -20,6 +20,7 @@
|
||||
"then": {
|
||||
"anyOf": [
|
||||
{"required": ["pin_frozen"]},
|
||||
{"required": ["pin_follows"]},
|
||||
{"required": ["config_reads"]}
|
||||
]
|
||||
}
|
||||
@@ -1142,7 +1143,7 @@
|
||||
"pin_build": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"description": "The build file each platform that ships a pin_frozen build, or the build a config_reads entry is read at, reads its revision from, so check_freshness can read it again where the platform's YAML now stands and say when the platform builds another revision.",
|
||||
"description": "The build file each platform that ships a pin_frozen or pin_follows build, or the build a config_reads entry is read at, reads its revision from, so check_freshness can read it again where the platform's YAML now stands and say when the platform builds another revision.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
|
||||
@@ -3682,10 +3682,11 @@ def bump_commit(
|
||||
if pending_recale(report, accept_changed, text):
|
||||
return False
|
||||
document = yaml.safe_load(text)
|
||||
if document.get("built_by"):
|
||||
if document.get("built_by") and not document.get("pin_follows"):
|
||||
# The pin is the commit a platform builds (recalbox gsplus.mk, the
|
||||
# mame0258 its package fetches), not a point on a moving branch:
|
||||
# HEAD is a build nobody ships under this name.
|
||||
# HEAD is a build nobody ships under this name. A build of the
|
||||
# branch tip (RetroPie's advmame) is HEAD, and follows it.
|
||||
print(
|
||||
f"{path.stem}: pinned to the build {', '.join(document['built_by'])} "
|
||||
"ships, advanced by hand",
|
||||
|
||||
@@ -145,7 +145,13 @@ class EveryBuildReferenceNamesThePin(unittest.TestCase):
|
||||
else {str(versions)} if versions else set()
|
||||
)
|
||||
|
||||
source = str(profile.get("source") or "").rstrip("/").removesuffix(".git")
|
||||
|
||||
def names_it(value: str) -> bool:
|
||||
if profile.get("pin_follows"):
|
||||
# A build of the branch tip names the repository it
|
||||
# clones, at no revision: RetroPie's advmame.
|
||||
return value.split()[-1].rstrip("/").removesuffix(".git") == source
|
||||
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)
|
||||
|
||||
|
||||
@@ -3079,7 +3079,10 @@ class TestDeliberatelyFrozenPin(TestBuildReport):
|
||||
# systems are a subset, not an equal set. A live build can also drop
|
||||
# a system upstream deleted: advancemame removed its Hyper Neo Geo 64
|
||||
# driver in dff25b6ee7, which advmame-1.4 still carries.
|
||||
removed_upstream = {("advmame-1.4", "advancemame"): {"hyper-neogeo64"}}
|
||||
removed_upstream = {
|
||||
("advmame-1.4", "advancemame"): {"hyper-neogeo64"},
|
||||
("advmame-1.4", "advmame"): {"hyper-neogeo64"},
|
||||
}
|
||||
pairs = 0
|
||||
for names in by_source.values():
|
||||
frozen = [
|
||||
@@ -3373,6 +3376,27 @@ class TestBumpCommit(unittest.TestCase):
|
||||
self.assertFalse(bump_commit(self.path, report))
|
||||
self.assertNotIn("newhead", self.path.read_text())
|
||||
|
||||
def test_a_build_of_the_branch_tip_follows_it(self):
|
||||
# RetroPie builds AdvanceMAME from the tip of master
|
||||
# (advmame.sh:16, 39-41): HEAD is the build it ships.
|
||||
self.path.write_text(
|
||||
SAMPLE + "built_by: [retropie]\n"
|
||||
+ 'pin_follows: "RetroPie builds the branch tip"\n',
|
||||
encoding="utf-8",
|
||||
)
|
||||
part = PartResult(
|
||||
RefPart("a.c", 10, 12, "a.c:10-12"), "ANCHORED", None, 10, 12, []
|
||||
)
|
||||
report = ProfileReport(
|
||||
name="p", repo="o/n", pin="pin", head="newhead",
|
||||
entries=[
|
||||
EntryReport("a.bin", "a.c:10-12, (just a note)", "ANCHORED", [part])
|
||||
],
|
||||
counts={"ANCHORED": 1},
|
||||
)
|
||||
self.assertTrue(bump_commit(self.path, report))
|
||||
self.assertIn("newhead", self.path.read_text())
|
||||
|
||||
def test_refused_when_no_ref_reads_the_pinned_repository(self):
|
||||
"""gam4980: every bare libretro.c ref anchored in upstream, and the
|
||||
bump wrote the fork's HEAD over refs that never described it."""
|
||||
|
||||
Reference in new issue
Block a user