Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- [ ] 影響を受けるコマンドの主要シナリオを手動で確認した
- [ ] 必要に応じてドキュメント (`docs/`, `README.md`) を更新した
- [ ] 利用者に見える変更なら `CHANGELOG.md` の `[Unreleased]` を更新した
- [ ] Plugin から使える機能を足したら、`docs/plugin-dev/plugin-yml-reference.md` の `requires` 契機表へ 1 行足した
- [ ] CI が green である

## スクリーンショット・ログ(任意)
Expand Down
17 changes: 12 additions & 5 deletions docs/plugin-dev/plugin-yml-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`

Expand Down
18 changes: 9 additions & 9 deletions docs/plugin-dev/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ my-plugin/
└── my-project/
├── compose.yml
├── project.yml
└── env # 中身は任意だが、ファイルは必須
└── env # 必須。DEVBASE_ACCOUNT_GROUP の宣言を書く
```

### 2.2 compose.yml の作成
Expand Down Expand Up @@ -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 からです。devbase の機能を使い始めたときに Plugin の側ですること(`requires.devbase` を上げるなど)は [`requires` の契機の表](plugin-yml-reference.md#更新時の警告) にあります

### 2.4 .env ファイル(任意)

Expand Down Expand Up @@ -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_<group>`(`/persistent/group`)は認証情報と会話ログ。`<group>` は `DEVBASE_ACCOUNT_GROUP`(未設定なら `default`)で決まり、devbase が生成 compose へ自動注入する
- `devbase_home_<group>`(`/persistent/group`)は認証情報と会話ログ。`<group>` は `projects/<name>/env` に宣言した `DEVBASE_ACCOUNT_GROUP` で決まり、devbase が生成 compose へ自動注入する(宣言は必須で、`default` は予約語のため使えない。[2.3.1](#231-env-ファイル必須アカウントグループの宣言を書く))
- 作業ディレクトリボリュームはプロジェクトごと・コンテナインデックスごとに独立

### 5.4 コンテナイメージの選択
Expand Down
Loading