build-train: bos build --dry-run staleness report
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 53/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
Start with the StalenessOracle.isStale seam in workspace.ts:307, then trace memberInputHash and the deploy oracle selection in build-train.ts:296. Read the existing WorkspaceBuildRender seam from #424 and its presentation code under cli/render/workspace-build. Done when dry-run reports each closure member’s verdict, stale reason and dependency attribution through that seam, honors deploy preflight, exits 0, and has unit tests plus a changeset.
索引モデルが issue の本文から書いたものです。
説明
What to build
A --dry-run flag (and/or bos build why <workspace>) that prints the staleness verdict for every member in the closure without building — the train's equivalent of Bazel's cquery. The oracle seam already separates judgement from execution (StalenessOracle.isStale, workspace.ts:307); this surfaces it.
For each member in the prerequisite closure, report:
- fresh / stale / forced (via
BOS_FORCE_BUILDor--force) - why for stale: no cache entry / missing dist / input hash mismatch / dist hash mismatch, and — when a dependency went stale — which dependency dragged it in (the transitive-hash composition in
memberInputHashknows the dep edges) - the oracle in play (mtime vs content-hash — deploy builds only use the hash oracle today, see
build-train.ts:296)
Render through the existing WorkspaceBuildRender seam (#424) — new optional render event, presentation stays in cli/render/workspace-build. Exit 0 on dry-run regardless of verdicts.
This is the debugging surface for every "why did it rebuild" question in the rest of the train-cache sequence (#480–#483) — cheap to land first, pays for itself immediately.
Blocked by
Nothing — independent; can land in any order.
Status
-
--dry-runflag onbos build(and deploy preflight honor it) - Per-member verdict + stale reason + stale-dependency attribution
- Rendered via the
WorkspaceBuildRenderseam, not ad-hoc printing - Unit tests for the verdict/reason model
- Changeset added
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 3
- 平均マージ
- 12時間 36分
- マージ済み PR(30日)
- 79
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NEARBuilders/everything-dev のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NEARBuilders/everything-dev#400 ·
メンテナーはふだん 1 日以内に返信
-
needs-triage
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
NEARBuilders/everything-dev#485 ·
メンテナーはふだん 1 日以内に返信
-
ready-for-agent
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
NEARBuilders/everything-dev#484 ·
メンテナーはふだん 1 日以内に返信
-
ready-for-agent
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
NEARBuilders/everything-dev#482 ·
メンテナーはふだん 1 日以内に返信
-
ready-for-agent
難易度 4/5 1〜2日 初心者へのやさしさ 45/100
NEARBuilders/everything-dev#481 ·
メンテナーはふだん 1 日以内に返信
NEARBuilders/everything-dev の issue をすべて見る
似ている issue
-
Sequências em espanhol: «Atualizado em», a aba «Fila» e o valor 'pause' ainda saem em portuguêsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
melgarafael/DeskcommCRM#3104 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug service: webapp
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Ocelot-Social-Community/Ocelot-Social#10684 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nicobailon/pi-subagents#2978 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
getsentry/sentry-conventions#732 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信