From b937503ee72eb8c60e5102d9726f8d6999caa978 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Fri, 2 Oct 2026 15:26:18 +0900 Subject: [PATCH 1/2] =?UTF-8?q?docs(plugin-dev):=20quickstart=20=E3=81=AE?= =?UTF-8?q?=E3=82=A2=E3=82=AB=E3=82=A6=E3=83=B3=E3=83=88=E3=82=B0=E3=83=AB?= =?UTF-8?q?=E3=83=BC=E3=83=97=E3=82=92=E5=AE=A3=E8=A8=80=E5=BF=85=E9=A0=88?= =?UTF-8?q?=E3=81=AE=E6=9B=B8=E3=81=8D=E6=96=B9=E3=81=B8=E7=9B=B4=E3=81=99?= =?UTF-8?q?=20(#215)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit env ファイルを「中身は任意」とし、グループを「未設定なら default」と書いていた。 4.0.0(#315)から宣言は必須で default は予約語のため、宣言の書き方と止まる条件を書く。 Co-Authored-By: Claude Opus 5.5 --- docs/plugin-dev/quickstart.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/plugin-dev/quickstart.md b/docs/plugin-dev/quickstart.md index 052953d0..3d5e21cb 100644 --- a/docs/plugin-dev/quickstart.md +++ b/docs/plugin-dev/quickstart.md @@ -57,7 +57,7 @@ my-plugin/ └── my-project/ ├── compose.yml ├── project.yml - └── env # 中身は任意だが、ファイルは必須 + └── env # 必須。DEVBASE_ACCOUNT_GROUP の宣言を書く ``` ### 2.2 compose.yml の作成 @@ -138,19 +138,19 @@ repos: | `scale` | 起動するコンテナ数(既定: 2) | | `open_editor` | `devbase up` 後に VS Code を自動で開くか | -### 2.3.1 env ファイル(ファイルは必須・中身は任意) +### 2.3.1 env ファイル(必須・アカウントグループの宣言を書く) -`projects/my-project/env` には、**コンテナへ渡す環境変数**だけを書きます(`ENABLE_SSH` など)。devbase 自身の設定は `project.yml` にあります。 +`projects/my-project/env` には、**アカウントグループの宣言**(`DEVBASE_ACCOUNT_GROUP`)と、**コンテナへ渡す環境変数**(`ENABLE_SSH` など)を書きます。devbase 自身のそれ以外の設定は `project.yml` にあります。 ```bash +# projects/my-project/env +DEVBASE_ACCOUNT_GROUP=personal ENABLE_SSH=true ``` -2.2 の `compose.yml` が `env_file: - env` で参照するため、**ファイルは必ず作成してください**(実在しないと `devbase up` が compose の起動時に失敗します)。渡したい環境変数が無ければ空ファイルで構いません。 - -```bash -touch projects/my-project/env -``` +- **`DEVBASE_ACCOUNT_GROUP` の宣言は必須です。** 宣言が無い・空のとき、`devbase up` / `scale` は何も作らずに止まります。既定の値は無く、`default` は予約語のため使えません。会社の機密を使わない個人・OSS のプロジェクトは `personal` を、それ以外は使うアカウントの単位(`acme` など)を書きます。詳しくは [環境変数の説明のアカウントグループ](../user/environment-variables.md#アカウントグループ-devbase_account_group) を参照してください +- 2.2 の `compose.yml` が `env_file: - env` で参照するため、ファイルが無いと `devbase up` が compose の起動時にも失敗します +- この宣言を求めるのは devbase 4.0.0 からです。`plugin.yml` の `requires.devbase` は [契機の表](plugin-yml-reference.md#更新時の警告) に従って上げてください ### 2.4 .env ファイル(任意) @@ -324,7 +324,7 @@ flowchart LR | 作業ディレクトリ | `${COMPOSE_PROJECT_NAME}_work_${CONTAINER_INDEX:-1}` | `/work` | コンテナ専用 | - `devbase_home_ubuntu`(`/persistent/ai`)は SSH 鍵・共有ファイル・`~/.claude/plugins` など、契約に紐づかずコンテナ横断で共有したい資産の永続化に使用(entrypoint が symlink。旧 `/home/ubuntu` 直接マウントは廃止) -- `devbase_home_`(`/persistent/group`)は認証情報と会話ログ。`` は `DEVBASE_ACCOUNT_GROUP`(未設定なら `default`)で決まり、devbase が生成 compose へ自動注入する +- `devbase_home_`(`/persistent/group`)は認証情報と会話ログ。`` は `projects//env` に宣言した `DEVBASE_ACCOUNT_GROUP` で決まり、devbase が生成 compose へ自動注入する(宣言は必須で、`default` は予約語のため使えない。[2.3.1](#231-env-ファイル必須アカウントグループの宣言を書く)) - 作業ディレクトリボリュームはプロジェクトごと・コンテナインデックスごとに独立 ### 5.4 コンテナイメージの選択 From 6296b68f4aeae5b07db8b6a06e0fbfae6186ac6c Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Fri, 2 Oct 2026 15:26:49 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs(plugin-dev):=20requires=20=E3=81=AE?= =?UTF-8?q?=E5=A5=91=E6=A9=9F=E8=A1=A8=E3=82=92=E6=AD=A3=E6=9C=AC=E3=81=AB?= =?UTF-8?q?=E3=81=97=E3=80=81PR=20=E3=83=86=E3=83=B3=E3=83=97=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=B8=201=20=E8=A1=8C=E8=B6=B3=E3=81=99?= =?UTF-8?q?=E6=89=8B=E9=A0=86=E3=82=92=E5=85=A5=E3=82=8C=E3=82=8B=20(#215)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - project.yml 移行の行に ">=3.0.0" を明記し、同じ文書の推奨と揃える - 3.6.0〜4.0.0 から Plugin が依存しうる機能(base イメージの道具・~/.shellrc.d)の行と、 4.0.0 のアカウントグループの宣言を Plugin の env に持つ行を足す - 機能を足した PR が表へ 1 行足すことを表の下と PR テンプレートの動作確認に書く Co-Authored-By: Claude Opus 5.5 --- .github/pull_request_template.md | 1 + docs/plugin-dev/plugin-yml-reference.md | 17 ++++++++++++----- docs/plugin-dev/quickstart.md | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4e755d9a..29569402 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -19,6 +19,7 @@ - [ ] 影響を受けるコマンドの主要シナリオを手動で確認した - [ ] 必要に応じてドキュメント (`docs/`, `README.md`) を更新した - [ ] 利用者に見える変更なら `CHANGELOG.md` の `[Unreleased]` を更新した +- [ ] Plugin から使える機能を足したら、`docs/plugin-dev/plugin-yml-reference.md` の `requires` 契機表へ 1 行足した - [ ] CI が green である ## スクリーンショット・ログ(任意) diff --git a/docs/plugin-dev/plugin-yml-reference.md b/docs/plugin-dev/plugin-yml-reference.md index 588f2ff7..e6e8b341 100644 --- a/docs/plugin-dev/plugin-yml-reference.md +++ b/docs/plugin-dev/plugin-yml-reference.md @@ -170,14 +170,21 @@ devbase 本体を更新してください (この警告を止める場合は DEV ``` > **`requires.devbase` は本体の版数と一緒に自動では上がりません。** 上げるのは、**Plugin が -> devbase の新しい機能に依存しはじめたタイミング**です。契機は次のとおりです。 +> devbase の新しい機能に依存しはじめたタイミング**です。契機は次の表のとおりで、この表が正本です。 > -> | 契機 | 上げる版数 | +> | 契機 | Plugin の側ですること | > | --- | --- | -> | Plugin が `project.yml` 形式へ移行した | その形式を読める版 | -> | Plugin のプロジェクトが `compose.yml` に `profiles:` を使う | `">=3.5.0"`([テスト用サーバを後から起動・停止する](compose-profiles.md#plugin-として配るなら-requiresdevbase-を-350-以上へ上げる)) | +> | Plugin が `project.yml` 形式へ移行した | `requires.devbase` を `">=3.0.0"` へ上げる | +> | Plugin のプロジェクトが `compose.yml` に `profiles:` を使う | `requires.devbase` を `">=3.5.0"` へ上げる([テスト用サーバを後から起動・停止する](compose-profiles.md#plugin-として配るなら-requiresdevbase-を-350-以上へ上げる)) | +> | Plugin のプロジェクトが、base イメージに後から足された道具を前提にする(`pdftoppm` などの `poppler-utils`・`python3-lxml` は 3.7.0、`shellcheck`・`tmux-go` などの tmux のセッションのコマンドは 3.8.0) | `requires.devbase` を、その道具を足した版以上へ上げる(どの版で足されたかは `CHANGELOG.md` の Added を見る) | +> | Plugin のプロジェクトが、コンテナの中で `~/.shellrc.d/`(環境変数 `DEVBASE_SHELLRC_DIR`)へシェルの設定を置く | `requires.devbase` を `">=3.8.0"` へ上げる | +> | devbase 4.0.0 以降で使われる Plugin のプロジェクト(アカウントグループの宣言が必須) | `requires.devbase` の下限ではなく、Plugin のプロジェクトの `env` に `DEVBASE_ACCOUNT_GROUP=<グループ>` を書く(`default` は予約語で使えない。[クイックスタート 2.3.1](quickstart.md#231-env-ファイル必須アカウントグループの宣言を書く))。宣言が無いと `devbase up` / `scale` が止まる | > -> どちらも、その機能を使い始めた Pull Request で一緒に上げます。 +> どれも、その機能を使い始めた Pull Request で一緒に行います。base イメージの道具とシェルの設定の置き場所は、 +> 利用者がイメージを建て直すまで効きません。 +> +> devbase の側で Plugin から使える機能(Plugin が書く設定・compose の書き方・イメージの道具・コンテナの中の置き場所など)を +> 足した Pull Request は、この表へ 1 行足します(Pull Request のテンプレートの「動作確認」に項目があります)。 ### `priority` diff --git a/docs/plugin-dev/quickstart.md b/docs/plugin-dev/quickstart.md index 3d5e21cb..b41af63e 100644 --- a/docs/plugin-dev/quickstart.md +++ b/docs/plugin-dev/quickstart.md @@ -150,7 +150,7 @@ ENABLE_SSH=true - **`DEVBASE_ACCOUNT_GROUP` の宣言は必須です。** 宣言が無い・空のとき、`devbase up` / `scale` は何も作らずに止まります。既定の値は無く、`default` は予約語のため使えません。会社の機密を使わない個人・OSS のプロジェクトは `personal` を、それ以外は使うアカウントの単位(`acme` など)を書きます。詳しくは [環境変数の説明のアカウントグループ](../user/environment-variables.md#アカウントグループ-devbase_account_group) を参照してください - 2.2 の `compose.yml` が `env_file: - env` で参照するため、ファイルが無いと `devbase up` が compose の起動時にも失敗します -- この宣言を求めるのは devbase 4.0.0 からです。`plugin.yml` の `requires.devbase` は [契機の表](plugin-yml-reference.md#更新時の警告) に従って上げてください +- この宣言を求めるのは devbase 4.0.0 からです。devbase の機能を使い始めたときに Plugin の側ですること(`requires.devbase` を上げるなど)は [`requires` の契機の表](plugin-yml-reference.md#更新時の警告) にあります ### 2.4 .env ファイル(任意)