出貨鏈三站上 main:release-ship 前置①改看 tag 的樹、release-check 可指定版本、信標開場報「打了 tag 沒 release」(inkstone/ISEP#67)
- hooks/lib/release_chain.py:問 Gitea 的判準一份三處用(匿名讀,D20) - scripts/release-ship:前置①比「要建的那個 tag 的樹」裡的 plugin.json,不比工作樹/最新 tag (總管 09-07 在 v0.23.0 被擋的情境現在放行);note 從 Gitea compare 生,從 plugin 快取跑也行; 覆核改跑 release-check <那個 tag> - scripts/release-check [vX.Y.Z]:指定版本;v0.19/0.20/0.21 依裁決標「不補」不再黃字;補法印正本絕對路徑 - hooks/lib/beacon_report.py ④:最新 tag 沒 release/main 定版沒打 tag ⇒ 一行缺站+補法;都在安靜; 只快取「都在」6 小時 - 測試:test-release-ship 14、test-release-check 14、信標 26→33;docs:TESTING A37/A38、盤點表、README 60 支腳本、 白名單加 release-ship/release-check 形狀、mistakes 一條 - 沒改 plugin.json 版本號(待總管定版) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0178ef1fGw3XeZtpN7LaZrm4
This commit is contained in:
@@ -323,3 +323,32 @@ leo 當場:「**這些為什麼不寫到票裡?**」
|
||||
離線測試的假 CF 對 secret PUT 回 200,27/27 全綠;第一次真跑 CF 回 **201**,工具把它講成「失敗」——
|
||||
而獨立用 CF API 一列,那把 secret 明明種進去了。全綠的測試證明的是「工具跟假伺服器合得來」,
|
||||
不是「工具跟 CF 合得來」。⇒ 假伺服器的回應碼要抄真的(現在回 201),而且**離線全綠之後一定要真跑一次**。
|
||||
|
||||
## ⚠️ MISTAKE: 前置條件判的是「手邊的樹」,而要送出去的東西是「那個 tag 的樹」
|
||||
|
||||
票: `inkstone/ISEP#67` → comment 6574
|
||||
日期: 2026-09-07
|
||||
|
||||
症狀: 總管在 v0.23.0 的 checkout 跑 `release-ship v0.23.0 --dry-run` 被擋,訊息說
|
||||
「最新 tag 是 v0.24.0」。v0.23.0 的樹明明一致,只因為它不是最新的那個 tag,
|
||||
就永遠建不了 release——而 09-07 缺 release 的正是 v0.23.0 與 v0.24.0 兩個。
|
||||
|
||||
實查: 09-05 那版 release-ship 的前置①直接跑 `check-version-consistency.sh`
|
||||
(工作樹 `plugin.json` vs **本機最新** tag)當判準,理由寫著「不另立判準」。
|
||||
但那支守的是「打 tag 那一刻 main 跟最新 tag 一致」(release-tag-guard.sh 的事),
|
||||
建 release 這一刻要問的是「**要送的那個 tag 的樹**,自己講的版本對不對」——
|
||||
工作樹可能是任何分支(release-ship 本身就是在一條 feature 分支上寫的),跟那個 tag 無關。
|
||||
|
||||
原因: 「重用既有判準」是對的方向,但重用之前要問「**它判的是哪個對象**」。
|
||||
對象錯了,判準再對也只是在檢查一個跟交付物無關的東西——而且會用一條看起來
|
||||
很有道理的訊息把正確的操作擋掉(誤攔)。
|
||||
|
||||
正確做法: 前置①改成問 Gitea `contents/.claude-plugin/plugin.json?ref=<tag>`,
|
||||
比的是 tag 自己的樹;工作樹的版本完全不參與(`scripts/test-release-ship.sh` 把工作樹
|
||||
故意擺成 `9.9.9`,B 群全綠才算證明)。同時把「問 Gitea」收成一份
|
||||
(`hooks/lib/release_chain.py`),release-ship/release-check/SessionStart 信標三處共用——
|
||||
判準散在三處各寫一份,就是 `leo21c-write-guard.sh` 那一族漂掉的路。
|
||||
|
||||
📌 判準:**送出去之前,先問「我判的是不是我要送的那個東西」**。
|
||||
工作樹、最新 tag、main——都不是;tag 指到的那棵樹才是。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user