Skip to content

PR #488 の構造改善で取り消し・見送った 2 件(使われない project_name の引数・VS Code Server の片付けの関数の分割) #490

Closed

Description

@takemi-ohama

何を見つけたか

PR #488 の構造改善(コメント 6158923037)で、採らなかった提案が 2 件ある。

# 対象 何が起きているか 構造改善での扱い
1 lib/devbase/volume/manager.py の VolumeManager.__init__(project_name)・ensure_volumes(scale, project_name)(commands/container.py から渡している) #463 で VS Code Server のボリュームが共通の 1 本になり、self.project_name と ensure_volumes の project_name はどこからも読まれない。docstring は「使わない」と書いて引数を残しており、名前がボリュームに効くと読める 取り消し。現状固定テスト(tests/commands/test_container_scale_order.py の「project_name が ensure_volumes に渡る」、tests/volume/test_manager_vscode.py・tests/volume/test_manager_ensure_volumes.py)の期待が変わるため、構造改善では行わない
2 containers/base/entrypoint.sh の devbase_prune_vscode_server_bin 古い版の削除・入れ子の本体の削除・展開の途中のディレクトリの削除という 3 つの選別規則が 1 つの関数にある 見送り。時間の枠に入らなかった。イメージに入るファイルのため、確かめには base の建て直しが要る

どこで見つけたか

PR #488(スプリント m8d)の /ndf:cross-refactoring の改修計画(I-00x の取り消し 1 件・見送り 1 件)。スプリント m8d の振り返りで、起票されていないことを確かめた

なぜこの変更の範囲外なのか

#463 の受け入れ条件は VS Code Server のボリュームの構成と片付けの振る舞いで、使われなくなった引数の削除と関数の分割はどちらも含まない。1 は現状固定テストの期待を変えるため構造改善の枠(期待出力を変えない)の外にある。根拠: MVV 版 1(main への直接の push をしない・変更は PR で通す範囲の判断で、承認の要る操作 P1〜P3 には当たらない)

直さないと何が起きるか

1 は読む人が project_name がボリュームの名前に効くと誤解し得る。振る舞いへの影響は無い。2 は片付けの規則を足す・直すときに 1 つの長い関数を読む手間が残る。どちらも利用者に見える不具合ではない

起票者の推定

由来

PR #488

受け入れ条件

スプリント m8e(#365 #452 と同じ)で直す。設計 Pull Request は出さない。1 と 2 を 1 本の実装 Pull Request で扱う。

  1. lib/devbase/volume/manager.py の VolumeManager.__init__ とモジュールの関数 ensure_volumes から、使われない project_name の引数(と self.project_name)が外れ、呼び出し元(lib/devbase/commands/container.py の 2 か所ほか)が合わせて直っている。get_volume_for_index などほかの「互換のために残す」引数はこの課題で扱わない
  2. ボリュームの名前・作る順・作る数は変わらない。期待が変わるテスト(tests/commands/test_container_scale_order.py の「project_name が ensure_volumes に渡る」・tests/volume/test_manager_vscode.py・tests/volume/test_manager_ensure_volumes.py)は、引数の受け渡しの期待だけを直し、ボリュームの名前の期待は変えない。直したテストと理由を Pull Request の本文に書く
  3. containers/base/entrypoint.sh の devbase_prune_vscode_server_bin が、3 つの選別規則(古い版の削除・入れ子の本体の削除・展開の途中のディレクトリの削除)ごとの関数に分かれる。devbase_prune_vscode_server_bin の名前・引数・出力・消す対象は変わらない
  4. tests/containers/test_entrypoint_vscode_server.py が手を入れずに通る(関数を DEVBASE_ENTRYPOINT_LIB_ONLY=1 で source して確かめる。Docker に依存しない)
  5. 実装では base イメージを建て直さず、devbase up を打たない。建て直したイメージでの確かめ(実のイメージ+使い捨てボリュームの docker run)はリリース後テストで行う
  6. 全体のテスト(env -u DEVBASE_ROOT uv run --locked pytest tests/ -q)・CI と同じ lint・devbase-base:latest の shellcheck(entrypoint.sh)・固有の語の検査が通る
  7. 利用者に見える振る舞いは変わらないため CHANGELOG.md は書かない

進行

モード: —

  • 要求と受け入れ条件
  • 作業場所の用意 — 2026-10-15 17:48
  • 設計
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画 — 2026-10-15 17:48
  • 実装 — 2026-10-15 17:57
  • 構造改善 — 2026-10-15 18:28
  • 実装レビュー — 2026-10-15 18:47
  • 完了判定 — 2026-10-15 18:02
  • Pull Request — 2026-10-15 18:04
  • 確定仕様化 — 2026-10-15 22:23
  • 後片付け
  • 配布 — 2026-10-15 23:34
  • 体裁レビュー
  • リリース後テスト — 2026-10-15 22:24
  • 振り返り — 2026-10-15 22:33
  • 棚卸し — 2026-10-15 22:35

振り返り: #495 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions