Skip to content

Docs: スプリント m7e(#214・#415)を確定仕様にする - #433

Merged
takemi-ohama merged 2 commits into
mainfrom
spec/m7e
Oct 6, 2026
Merged

takemi-ohama merged 2 commits into
mainfrom
spec/m7e

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

概要

スプリント m7e(#432)で入った #214・#415 の作業文書を確定仕様へ移し、issues/ の 4 ファイルを消す。開発者向けの文書だけの変更のため CHANGELOG.md は書かない。

課題 実装 PR 移した先 消したファイル
#214 #428 docs/specifications/cli-argument-resolution.md issues/issue-214-design.md・issues/issue-214-requirements.md
#415 #427(--no-env-resolution は #432) docs/specifications/base-image-chain-build.md issues/issue-415-design.md・issues/issue-415-requirements.md

実装 PR が両方の仕様の本文(表・不変条件 I9〜I13・テスト観点)を既に更新していたため、この PR は残りを足した。

  • cli-argument-resolution.md: 「一致テストが比べる写し」の節(走査の規則・写しごとの比べ方・補完の例外)、## 決定の記録(決定 1〜10)、概要の表の「解決するもの」を [name] の表へのリンクと規則に置き換え(設計の決定 6)、用語の参照、関連リンク
  • base-image-chain-build.md: ## 決定の記録(決定 1〜7。背景の表にあった devbase build が compose.yml の最初の build: から Dockerfile を決め、dev のサービスの Dockerfile と食い違いうる #415 の 3 行はここへ移した)、場所を出す入口の契約に「構成の読み方」「接続先を決められない」の行、tests/utils/test_docker_profiles.py のテスト観点、関連リンク
  • 用語集: 列挙の正本・一致テスト・写し・補完の例外・プロジェクトの Dockerfile・Dockerfile の場所の決め方 の出所を確定仕様へ移し、docs/glossary.md を glossary.py render で作り直した

設計と実装の食い違い(実装を正として書いた)

#214

設計 実装(main) 仕様での扱い
決定 3: [name] の集合は除外のグループ(plugin / pl / snapshot / ss / env)で絞る 含める側を名指しする(トップレベルと project グループ)。除外は走査の健全性のテストで plugin / snapshot / env を含まないことを見るだけ 決定 3 を実装の形で書いた
決定 4: 見出しは ### プロジェクト名を受け付けるサブコマンド / ### docker context を受け付けるサブコマンド 共通の ### の下に #### `[name]` を受け付けるサブコマンド / #### `--context` を受け付けるサブコマンド(錨は #name-を受け付けるサブコマンド / #--context-を受け付けるサブコマンド) 実装の見出しで書いた
決定 5: 別名は同じセルに並べる(devbase container <sub> / devbase ct <sub>) 表は devbase container <sub> だけ。一致テストが cli.GROUP_ALIASES で ct を container に直す 実装の形で書いた
決定 6: 概要の表の「解決するもの」をリンクと規則に置き換える 概要の表に列挙が残っていた この PR で設計どおりリンクと規則に置き換えた(文書の変更。一致テストは概要の表を読まない)
決定 9: zsh の case の腕は次の ;; までを本体として読む 字下げの深さで分岐の本体を決める 実装の形で書いた
(設計に無し) トップレベルで [name] を取る parser がすべて cli.SHORTCUTS にあることを見るテスト 比べ方の表に足した

#415

設計 実装(main) 仕様での扱い
入口は _compose_config_services(show_errors=True) で構成を読む resolve_env_files=False も渡し、--no-env-resolution でサービスの env_file を読まない。古い Docker Compose(v2.35 より前)が未知のオプションとして退けたら外して 1 回読み直す(#432) 契約の表と決定 7 に書いた
前処理は _apply_context と _inject_secrets(required=False) _prepare_compose(同じ 2 つを呼ぶ)。接続先を決められない(DevbaseError)ときは終了コード 1 で理由を標準エラーへ出す 契約の表に「接続先を決められない」の行を足した
bin/devbase は uv run ... python -m ... で起動 PYTHONPATH にリポジトリの lib を入れて起動する 契約の後に書いた

検査

コマンド 終了コード 結果
env -u DEVBASE_ROOT uv run --locked pytest tests/ -q 0 4099 passed, 20 skipped(一致テストは仕様の表を読むため、表の見出しを変えていないことも確かめた)
uvx ruff check --select=E9,F63,F7,F82 lib 0 All checks passed!
python3 .github/scripts/proper_term_check.py 0 語の一覧が無いため飛ばした と出たため、固有の語の検査はしていない。足した文に社内のホスト名・アカウント名は書いていない
glossary.py render 0 作り直した後に差分なし

🤖 Generated with Claude Code

takemi-ohama and others added 2 commits October 6, 2026 13:05
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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