Skip to content

PLAN32: プロジェクト設定を env から project.yml へ移行する - #4

Merged
takemi-ohama merged 2 commits into
mainfrom
feature/PLAN32-project-yml
Aug 22, 2026
Merged

PLAN32: プロジェクト設定を env から project.yml へ移行する#4
takemi-ohama merged 2 commits into
mainfrom
feature/PLAN32-project-yml

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

Summary

devbase 本体の変更(1 プロジェクト = 1 コンテナ = 複数リポジトリ)に追随し、サンプルプラグイン 6 件のプロジェクト定義を project.yml 方式へ移行します。

devbase project migrate-config による機械的な変換で、設定値は変えていません。

version: 1scale: 1open_editor: truerepos:
- owner: devbasexrepo: md-specgen
env のキー移行先(project.yml
GIT_USERrepos[].owner
GIT_REPOrepos[].repo
WORK_DIRwork_dir(既定値と同じ場合は書きません)
CONTAINER_SCALEscale
DEVBASE_OPEN_EDITORopen_editor

env は「コンテナへ渡す環境変数」だけを持つ役割になります。中身が無くてもファイル自体は残します(compose.ymlenv_file: - env で参照するため)。

サンプルとしての意味もあるため、1 プロジェクトに複数リポジトリを持たせたい場合は repos に要素を足すだけで済むことがそのまま示せる形になっています。

⚠ マージ順序

devbase 本体の PLAN32 リリース(devbasex/devbase#103)が merge され、devbase build --no-cache でベースイメージを再ビルドした後に merge してください。順序が逆だと、旧 devbase が project.yml を読めず起動できません。

Test plan

  • 生成した 6 件の project.yml がローダの検証を通ること
  • 変換後の env に旧キーが残っていないこと
  • devbase build --no-cache 後、adminerdevbase up で起動すること

devbase project migrate-config による変換 (6 プロジェクト)。
GIT_USER / GIT_REPO / WORK_DIR / CONTAINER_SCALE / DEVBASE_OPEN_EDITOR を
project.yml へ移し、env はコンテナへ渡す環境変数だけを持つファイルにする。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | gemini | APPROVE

環境変数ベースから project.yml への設定移行が、すべてのサンプルプロジェクトで一貫して行われており、設定値の欠落もなく妥当です。

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | codex | REQUEST_CHANGES

  • */plugin.yml:5: project.yml を必須にする破壊的変更にもかかわらず、全プラグインが現行リリース v2.2.0 を引き続き許可しています。v2.2.0 はこの設定を読めず、インストール時の互換性チェックを通過した後に devbase up が失敗するため、PLAN32 を含むリリースで devbase のバージョンを更新し、6 件の requires.devbase の下限もそのバージョンへ揃えてください。
  • README.md:7 および README.md:48: GIT_USER/GIT_REPO と env のみを示す説明が、今回の唯一の正である project.yml と矛盾しています。表の設定名とリポジトリ構成例を新形式へ更新してください。

cross-review round 1 (codex REQUEST_CHANGES) の指摘対応。
- `*/plugin.yml` 6 件の `requires.devbase` を `">=2.2.0"` → `">=3.0.0"` へ。
`project.yml` 形式は devbase 2.2.0 では読めないため、旧版を許可したままだと
install 時の互換チェックを通過した後に `devbase up` が失敗する。
- README を `project.yml` を正とする新形式へ更新。
- 収録プラグイン表の見出しを `GIT_USER/GIT_REPO` → `repos[].owner/repo` へ変更し、
registry.yml に載る 6 件すべてを掲載(従来は 3 件のみ)
- 「プロジェクト設定 (project.yml)」節を追加。実ファイル
`adminer/projects/adminer/project.yml` と同一の例、複数リポジトリの例、
主要キーの表、devbase 本体 `docs/user/project-yml.md` への誘導を記載
- リポジトリ構成のツリーに `project.yml` を追加し、`env` の役割を明記
- 必要な devbase バージョン (3.0.0 以上) を冒頭に明記
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@takemi-ohama

Copy link
Copy Markdown
ContributorAuthor

🔧 /ndf:fix サマリ (round 1)

対応件数: critical=0 / major=2 / minor=0 (合計 2 件)
deferred: 0 件 / rejected: 0 件
commit: b2b68f7
CI: NONE(このリポジトリに CI ワークフローはありません)

codex のレビュー body の 2 点はいずれもインラインコメントではなく PR レベルの指摘だったため、この PR レベルコメントで対応内容を報告します(Resolve 対象の review thread はありません)。

1. */plugin.yml:5requires.devbase">=2.2.0" のまま【対応しました】

ご指摘のとおりです。project.yml 形式は devbase 2.2.0 では読めないため、install 時の互換性チェックを通過した後に devbase up が失敗します。6 件すべてを ">=3.0.0" へ更新しました。

版数の根拠: devbase 本体の PLAN32 リリース(devbasex/devbase#103 / release/PLAN32)が 3.0.0 として切られています(feature/PLAN32-versionpyproject.tomlversion = "3.0.0")。

adminer/plugin.yml requires.devbase: ">=3.0.0"
ai-plugins/plugin.yml requires.devbase: ">=3.0.0"
devbase/plugin.yml requires.devbase: ">=3.0.0"
github_work_time/plugin.yml requires.devbase: ">=3.0.0"
md-specgen/plugin.yml requires.devbase: ">=3.0.0"
tmllib/plugin.yml requires.devbase: ">=3.0.0"

2. README.md:7 / README.md:48 — 説明が旧 env 形式のまま【対応しました】

こちらもご指摘のとおりです。README を project.yml を正とする新形式へ更新しました。

  • 収録プラグイン表: 見出しを GIT_USER/GIT_REPO`repos[].owner/repo` へ変更。あわせて registry.yml に載る 6 件すべてを掲載しました(従来は 3 件のみで実態と乖離していました)
  • 「プロジェクト設定 (project.yml)」節を新設 — 実ファイル adminer/projects/adminer/project.yml と同一の例、repos を 2 件持つ複数リポジトリの例、主要キーの表を記載
  • スキーマの詳細は devbase 本体の docs/user/project-yml.md へ誘導する形にしました(本体の PLAN32 マージ後に有効になるリンクです)
  • リポジトリ構成のツリーに project.yml を追加し、env が「コンテナへ渡す環境変数」だけを持つ役割になったことを明記
  • 冒頭に「必要な devbase バージョン: 3.0.0 以上」を明記

サンプルレジストリとしての性格上、複数リポジトリを 1 プロジェクトに入れられることが読んで分かるよう、multi-repo の例も載せています。

version: 1defaults:
owner: devbasexrepos:
- repo: my-app # 先頭が primary(ログイン直後の作業ディレクトリ)
- repo: my-app-docs

検証

このリポジトリに Python テストはないため、以下を機械的に確認しました。

  • plugin.yml / project.yml / compose.yml / registry.yml が YAML として parse でき、project.yml は本体スキーマ(最上位 version/repos/defaults/scale/open_editor/work_dirrepos[]owner/repo/host/dir/branch/init/primary)の許可キーのみ・必須キーありを満たすこと
  • README の YAML 例 2 件が同じスキーマ検証を通ること。1 件目は adminer/projects/adminer/project.yml内容一致
  • README の収録プラグイン表 6 行が実ファイルと一致すること(プラグイン名 = registry.yml の集合、コンテナ列 = compose.ymlbuild.contextcontainers/<type>/、リポジトリ列 = project.ymlrepos[0]
  • README のツリーに書いたパスが実在すること、README 内に 2.2.0 の残存がないこと

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | gemini | APPROVE

devbase 3.0.0 の仕様(project.yml の導入と env の責務変更)に合わせた移行が全プラグインで正確に行われています。設計意図とのズレや矛盾はなく、対応アクションが必要な点はありません。

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 2 | codex | APPROVE

追加の修正提案はありません。

@takemi-ohama
takemi-ohama marked this pull request as ready for review August 22, 2026 17:44
@takemi-ohama
takemi-ohama merged commit a67d46f into mainAug 22, 2026
Sign up for freeto 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

@takemi-ohama