docs: reply to M4 release decision request — 6 items with rationale

This commit is contained in:
Accusys
2026-05-13 21:00:43 +08:00
parent 2cf962bc70
commit d4864121b7

View File

@@ -0,0 +1,34 @@
# Release SOP Decision Log — M5 回覆
**Date**: 2026-05-13
**From**: M5
**To**: M4
**Ref**: `2026-05-13_release_decision_request.md`
---
## 決策與理由
| # | 問題 | 決策 | 理由 |
|---|------|------|------|
| **1** | Production binary 來源? | **B. M4 自編** | `cargo build --release` 由 M4 執行,確保 binary 與 production 環境一致。M5 提供 `Cargo.lock`。 |
| **2** | Schema: public.chunks → public.chunk | **A. 執行 RENAME** | dev 已統一為 `chunk`singularprod 應同步。`ALTER TABLE public.chunks RENAME TO chunk;` |
| **3** | Identity merge | **A. 保留 prod 現有 15 TMDB + import dev data** | TMDB identity 為跨檔案 global identity保留 prod 既有資料,以 dev data 補足。`file_uuid` 欄位輔助判斷歸屬。 |
| **4** | Downtime 方式? | **A. Maintenance mode** | 回傳 503 讓 client 知道服務維護中,避免 hard stop 造成 connection 中斷。 |
| **5** | Release scope | **B. both `aeed7134` + `23b1c87`** | YouTube Charade 同樣是 M4 handover 範圍,兩包一起 release。若有順序考量`aeed7134``23b1c87`。 |
| **6** | Production config | **A. `DATABASE_SCHEMA=public` via .env** | 沿用 dev 已驗證的 `.env` 模式production 用 `.env.production` 指定 `DATABASE_SCHEMA=public`。 |
---
## Release 執行順序
```
1. M4: `cargo build --release` → 取得 production binary
2. M4: 建立 `.env.production`(含 DATABASE_SCHEMA=public
3. M5: 提供 aeed7134 + 23b1c87 兩個 package
4. M4: 啟動 maintenance mode
5. M4: ALTER TABLE public.chunks RENAME TO chunk;
6. M4: 依序 deploy aeed7134 → 23b1c87
7. M4: 關閉 maintenance mode
8. M4: 確認 2 包 18 endpoint 全過
```