Skip to content

#490 を実装する(スプリント m8e) - #493

Merged
takemi-ohama merged 2 commits into
sprint/m8efrom
feat/issue-490-m8e
Oct 15, 2026
Merged

takemi-ohama merged 2 commits into
sprint/m8efrom
feat/issue-490-m8e

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

スプリント m8e の作業として、#490 の 2 つのリファクタリングをまとめました。ensure_volumes と VolumeManager から使われていない引数 project_name を外しました。また、containers/base/entrypoint.sh の VS Code Server の片付けを、選別規則ごとの関数に分けました。

利用者向けの変化

  • 無し

移行の手順

  • 無し

変更の要点

  • lib/devbase/volume/manager.py
    • ensure_volumes と VolumeManager から、使われていない project_name を外しました。
    • 呼び出し元の lib/devbase/commands/container.py も合わせて直しました。
  • containers/base/entrypoint.sh
    • VS Code Server の片付けを、選別規則ごとの関数に分けました。
  • テストの追従
    • 上の 2 つの変更に合わせて、次の 3 本を直しました。
      • tests/commands/test_container_scale_order.py
      • tests/volume/test_manager_ensure_volumes.py
      • tests/volume/test_manager_vscode.py
  • 変更の量
    • 6 ファイル、79 行追加、56 行削除です。

テスト

ステップ exit 結果
test-limited 0 範囲テスト 1 本が通過(125.0 秒、戦略 local-full)
design-tests 3 停止。#490 に設計文書が無いため、3 つの確認はどれも該当なし

設計と違う点

  • 該当なし(設計文書が無い)

何を変えたか

  1. lib/devbase/volume/manager.py の VolumeManager.__init__ とモジュールの関数 ensure_volumes から、使われない project_name の引数と self.project_name を外した。呼び出し元の lib/devbase/commands/container.py(_run_deploy_pipeline・_run_scale_pipeline の 2 か所)も合わせて直した。get_volume_for_index などほかの「互換のために残す」引数には触れていない
  2. containers/base/entrypoint.sh の devbase_prune_vscode_server_bin を、選別規則ごとの 3 つの関数に分けた
    • devbase_prune_vscode_server_old_versions: 残す数を超えた古い版を消し、残した版の名前を新しい順に標準出力へ出す
    • devbase_prune_vscode_server_nested: 残した版(標準入力から読む)の直下の入れ子の本体を消す
    • devbase_prune_vscode_server_partial: 60 分より古い展開の途中のディレクトリを消す
    • devbase_prune_vscode_server_bin の名前・引数・出力(WARNING は標準エラー)・消す対象と順序(規則 1 → 2 → 3)は変わらない。古い版の削除が終わってから入れ子の片付けに入る順序も保つため、残した版の名前は一度変数へ受けてから渡している(パイプにしていない)

ボリュームの名前・作る順・作る数は変わらない。利用者に見える振る舞いは変わらないため CHANGELOG.md は書いていない。

直したテストと理由

引数の受け渡しの期待だけを直した。ボリュームの名前の期待は変えていない。

テスト 直したこと 理由
tests/commands/test_container_scale_order.py の test_scale_passes_explicit_project_name 「project_name が ensure_volumes に渡る」の期待を、「ensure_volumes には scale だけが渡る((2,))」に変えた。_build_scaled_override・_push_bao_token に渡る期待は元のまま ensure_volumes が project_name を受け取らなくなったため
同ファイルの scale_harness の ensure_volumes の差し替え lambda scale, project: を lambda scale: に 呼び出しの形が変わったため
tests/volume/test_manager_vscode.py ensure_volumes(..., project_name=...) から project_name を外した。最初のテストの名前と docstring から「プロジェクト」を外した(test_shared_volume_is_created_once_for_any_group_and_scale) 引数が無くなり、プロジェクト名を変えて呼ぶこと自体ができなくなったため。グループと scale を変えても 1 本だけ作る期待はそのまま
tests/volume/test_manager_ensure_volumes.py VolumeManager("proj-a") を VolumeManager() に、ensure_volumes(1, project_name="proj-a", group="team-b") を ensure_volumes(1, group="team-b") に 引数が無くなったため。作るボリュームの名前と順の期待はそのまま

tests/containers/test_entrypoint_vscode_server.py には手を入れずに通した(18 件)。

手で確かめたこと

  • 全体のテスト env -u DEVBASE_ROOT uv run --locked pytest tests/ -q: 4402 passed, 32 skipped
  • CI と同じ lint ruff check --select=E9,F63,F7,F82 lib: 通った
  • 手元の devbase-base:latest の shellcheck で containers/base/entrypoint.sh: 指摘なし
  • 固有の語の検査 python3 .github/scripts/proper_term_check.py: 「語の一覧が無いため飛ばした」と出た。検査したとは数えていない

残した事項

  • base イメージは建て直しておらず、devbase up も打っていない。建て直したイメージでの確かめ(実のイメージ+使い捨てボリュームの docker run で片付けが同じ対象を消すこと)はリリース後テストで行う
  • docs/specifications/vscode-server-volume.md のテストの表(ensure_volumes を「違うプロジェクト名・違うグループ・scale 2 で呼んでも」の行)は、この変更でプロジェクト名を変えて呼べなくなったため、文言が今の実装と少しずれる。触る範囲の外のため直していない

モード: standard / 通した工程: 実装 → 完了判定 → Pull Request

🤖 Generated with Claude Code

takemi-ohama and others added 2 commits October 15, 2026 17:58
#463 で VS Code Server のボリュームが共通の 1 本になり、project_name は
どこからも読まれていなかった。呼び出し元とテストの引数の受け渡しの期待を
合わせて直す。ボリュームの名前・作る順・作る数は変わらない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
devbase_prune_vscode_server_bin にあった 3 つの選別規則(古い版の削除・
入れ子の本体の削除・展開の途中のディレクトリの削除)を、それぞれの関数へ
分ける。devbase_prune_vscode_server_bin の名前・引数・出力・消す対象は
変わらない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@takemi-ohama
takemi-ohama marked this pull request as ready for review October 15, 2026 09:06
@takemi-ohama
takemi-ohama merged commit 3a55f43 into sprint/m8e Oct 15, 2026
10 checks passed
@takemi-ohama takemi-ohama mentioned this pull request Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant