A staged release reads as live while a newer 5.4 rolling deploy is already live on its node

オープン 初心者向け
#2,070 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
frontend, testing

調査の方向性

まず src/features/instance/config/deployments/functions/stagedRelease.ts と StagedReleaseDetail コンポーネントから始め、後続の rolling_out デプロイがステージ済みリリースの状態と Activate コントロールにどう影響するかを追ってください。次に、src/integrations/api/instance/deployments/types.ts の rolling_out のドキュメントを読み、別のリリースの後続 rolling deploy を対象に stagedRelease.test.ts を拡張してください。完了条件は、B が受信ノードですでに live のときに、パネルが A を live と表示しなくなり、既存のアクティベーション動作もテストでカバーされていることです。

索引モデルが issue の本文から書いたものです。

説明

Problem

On Harper 5.4, a staged release reads as live while a newer rolling deploy of the same component is already running on the node that received it.

stagedReleaseState (src/features/instance/config/deployments/functions/stagedRelease.ts:45-74) counts a deploy still in progress as changing nothing ("A deploy still running does not count"). Only a success later deploy makes the staged release replaced, and only failed or partial makes it uncertain. Before 5.4 that held, because a running deploy hadn't swapped yet. A 5.4 rolling deploy is different: it reads rolling_out while it is already live on the receiving node and its activation job takes it to the other nodes one at a time (src/features/instance/applications/DESIGN.md, and the rolling_out doc in src/integrations/api/instance/deployments/types.ts).

Steps
  1. Activate staged release A of a component. It ends success.
  2. Start a certified rolling deploy B of the same component, which isn't an activation of A (no activated_from). While it reads rolling_out, open A in Config → Deployments.

Expected: the panel says another deploy is taking over, live on the node that received it.
Actual: StagedReleaseDetail (components/StagedReleaseDetail.tsx:57-61) says A is live. It also hides Activate (:80) until B ends success or partial.

Hiding Activate during a rolling deploy is arguably right, since a second activation would start another rolling restart. The wrong part is the "live" claim. stagedRelease.test.ts covers a rolling_out activation of the staged release itself, and a later partial, but not a later rolling_out deploy of something else.

Context

Found by a cross-model review of HarperFast/studio#2031. It reached that branch through its merge of stage, which brought in #2060 (5.4 rolling statuses), so it isn't that PR's change.

Review-Deferral: 1442a057ba5e7606 severity=minor category=correctness

🤖 Generated by Claude Code (Claude Opus 5.5); posted via @dawsontoth.

主要言語
TypeScript
スター
5
フォーク
4
平均マージ
1日 20時間
マージ済み PR(30日)
140

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

HarperFast/studio のほかの issue

HarperFast/studio の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。