← 活動記録一覧

FACTUAL ACTIVITY RECORD · 実際の作業をもとにした活動記録

Web applicationをmonorepo内の独立appへ移す

挙動を変えず、workspace orchestrationとdatabaseの責務からWebを分離する

対象期間:

目的

後続componentを同じworkspaceへ追加するため、rootにあったWeb applicationを明確なapp境界へ移す必要があった。

画面や配信の挙動、dependency version、database資産を変えず、実行入口と所有責務だけを分ける必要があった。

実装

Webのsource、公開asset、3D asset、設定、script、runtime templateを内容を変えずWeb application packageへ移した。rootはworkspace orchestrationとdatabase commandを所有し、Web packageはapplication固有のcommandとdependencyを所有する。

  • rootの一つのlockfileでorchestratorとWeb packageを管理する。
  • app内の環境file、build、Worker、TypeScript生成物をnested ignoreで除外する。
  • 必要な型packageだけをhoistし、移動前と同じ型解決を維持する。
  • 検査、配信、monitoringのWeb作業場所と設定参照を新しいapp境界へ揃える。
  • database schema、migration、SQL testはroot境界へ残す。

baseline validatorはfile内容の一致、root側の重複不在、package所有、実行場所を検査するよう更新し、移動対象外の設定とdatabase資産が変わっていないことも固定した。

一次Commit時点のworkspace定義を示す。移動後のWeb appを含むapps、services、shared packagesをrootから解決し、必要な型とbuild packageを明示した。

Web app移動後のmonorepo layoutとroot toolchainの関係

図を描画しています…

確認したこと

確認結果

workspace validator 24件、Web test 90件、lint、typecheck、Next buildが通った。

Worker build、1,253 fileのsecret scan、upload bundleのdry runが通った。

database lint、5本のSQL smoke、並行処理、完全・部分rollback、最終local resetが通った。

移動したassetとsourceのinventoryが一致し、root側に重複が残らなかった。

Webの独立app化は対象へ反映された。外部環境への配信、remote migration、service起動、live runはcutoff時点で未実施だった。

完了とした根拠

Web資産を内容不変で独立appへ移し、package・lockfile・ignore・実行場所・database境界を分離したうえで、Web、Worker、database、rollbackの検証が通ったことをもって完了とした。