feat: hold an upstream pin a port vendors

upstream_frozen says why upstream_commit stays: the port vendors that
upstream tree, synced to that release, or merged that commit. The view
is then read at its own pin, the way pin_frozen holds source_commit, and
a bump leaves it. Outside a GitHub fork network nothing else could tell
aps3e's vendored RPCS3 1f080485 from an upstream read on a date.
This commit is contained in:
Abdessamad Derraz committed 2026-10-23 17:30:20 +02:00
1 parent 9fce5bef87
commit 82bf236a5a
3 files changed
+32 -1

No files matched your search

+14 -1
View File
@@ -1136,7 +1136,20 @@ def select_views(
continue
seen.add((repo.host, repo.slug))
views.append(RepoView(repo, pin, head, origin, field))
return _follow_fork_base(_follow_submodule(views, cache_dir, offline), cache_dir, offline)
views = _follow_fork_base(_follow_submodule(views, cache_dir, offline), cache_dir, offline)
return _hold_upstream(profile, views)
def _hold_upstream(profile: dict, views: list[RepoView]) -> list[RepoView]:
"""An upstream tree the port vendors or synced to is judged at that
revision: aps3e carries RPCS3 1f080485, yaps2 PCSX2 342db515."""
if not str(profile.get("upstream_frozen") or "").strip():
return views
return [
replace(view, head=view.pin, origin=f"{view.origin}, held")
if view.field == "upstream" else view
for view in views
]
def _follow_submodule(