身為拿到版本的人,我要知道這一版由哪幾個 repo 的哪幾版組成,我才不會退版退一半變成沒測過的組合 #84
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
問題
一次交貨常常同時動到好幾個 repo。但現在沒有任何地方記著「這一版 = 哪幾個 repo 的哪幾個版本」。
結果是兩件事會出錯:
目標
一次交貨產出一份清單,寫明這一版包含哪些 repo 的哪些版本,例如:
然後:送測、放行、出貨、退版,全部以這份清單為單位,不以單一 repo 為單位。清單一旦凍結就不再加東西,新的需求進下一版。
沒有更動的 repo 不出空版本;有更動的一定要出版本。
驗收條件
deliverable 類型
code(→ PR)
細節
這條在 SOP 裡的位置:S9-2(凍結版本清單)、S9-5(退版以 manifest 為單位)、§7(兩層版本規則)。
已經有的、不要重造:
release-tag-guard.sh管的是「打 tag 那一刻版本號三處一致」(單一 repo 內)。本票是它上面那一層——跨 repo 的組合。兩層不衝突,是包含關係。現況:
inkstone/arcrun-rag#88(「我看到的版本從 1.4.25 直接跳到 1.4.43」)定的是內外兩條版本號的規格,也是單 repo 的。跨 repo 組合這一層沒有任何票。為什麼是真問題不是理論:D95 拆
arcrun-collector出去之後,daemon 和雲端零件包變成兩條獨立版本線(arcrun-rag#47milestone 描述裡寫著「與雲端零件包同日出,但版本線獨立」)。兩條線獨立之後,「哪兩版是一組」就沒有地方記了。單 repo 的情況:清單退化成一個版本號,規則不變,不必特例。
【subagent】PR
inkstone/ISEP#103已開,等總管給結論。分支
feat/release-manifest-and-milestone-account(與inkstone/ISEP#85同一條,兩張票共用檔案)。交的是
scripts/release-manifest(freeze/verify/show/list/current/diff/rollback)。四條驗收:freeze前每一格都去 Gitea 抓過,抓不到不給凍結。真實唯讀重演:
inkstone/ISEP@v0.11.0+inkstone/arcrun-rag@1.4.60兩格都抓到真的 release;換成
v99.0.0當場被擋。rollback吐出整份的每一格,含「已經在目標版本、不必動」那幾格(列出來才證明沒有一格被漏掉)。
--only <某個 repo>直接拒絕,訊息把整份清單列給你看。releases/INDEX.md自動重寫,最上面那份標「← 現在手上的這一版」。離線測試
scripts/test-release-manifest.sh→ 通過 21 條,失敗 0 條(不打 Gitea、不建任何真的 release)。📌 我自己裁的兩件,寫在 PR 內文裡等你打回:① 沒有配 PreToolUse 閘(誤攔風險 > 漏擋代價,工具本身就是唯一的門,同
pr-verdict的形狀);② 清單寫在專案根的releases/而不是 plugin 目錄(plugin update會把 plugin 目錄整個換掉)。