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
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: バグ報告
title: "[Bug] "
labels: bug
---

## 概要

何が起きたか、簡潔に記述してください。

## 再現手順

1.
2.
3.

## 期待した動作

## 実際の動作

## 環境

- devbase バージョン: (`devbase --version` の出力)
- OS:
- Docker / Docker Compose バージョン:
- Python バージョン:
- シェル: bash / zsh

## 関連ログ・スクリーンショット

```
(必要に応じて貼り付け)
```
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: 機能追加・改善の提案
title: "[Feature] "
labels: enhancement
---

## 背景・課題

どのような課題を解決したいか、なぜ必要かを記述してください。

## 提案内容

実現したい振る舞いや UI を具体的に記述してください。

## 代替案

検討した別のアプローチがあれば記述してください。

## 補足
28 changes: 28 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Pull Request

## 概要

この PR で何を変更したか、なぜその変更が必要かを簡潔に記述してください。

## 関連 Issue

- Closes #

## 変更点

-
-

## 動作確認

- [ ] ローカルで `./bin/devbase --help` が正常に動作する
- [ ] 影響を受けるコマンドの主要シナリオを手動で確認した
- [ ] 必要に応じてドキュメント (`docs/`, `README.md`) を更新した
- [ ] CI が green である

## スクリーンショット・ログ(任意)

```
```

## 補足
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
python-syntax:
name: Python syntax check
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Compile-check Python sources
run: python -m compileall -q lib bin

lint:
name: Ruff lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/ruff-action@v3
with:
args: "check --select=E9,F63,F7,F82 lib"

shellcheck:
name: ShellCheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck on bin/
uses: ludeeus/action-shellcheck@master
with:
scandir: ./bin
severity: error
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Changelog

本プロジェクトの変更履歴を [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) の形式に沿って記録します。バージョン番号は [Semantic Versioning](https://semver.org/lang/ja/) に従います。

## [Unreleased]

## [2.2.0] - 2026-04-20

OSS 化に伴う初回リリース。devbase は本バージョンより `devbasex` Organization 配下で公開されます。

### Added
- MIT License
- プラグインマーケットの概念導入。任意のレジストリを `devbase plugin repo add` で追加可能。
- 公式サンプルレジストリ `devbasex/devbase-samples`(adminer / ai-plugins / devbase を収録)。
- PHP 8.5 ベースの開発コンテナ(`containers/php85`)。
- スナップショットの差分回数ベースの世代管理。
- `GIT_HOST` 環境変数による Git ホストの切り替えサポート。

### Changed
- `DEFAULT_OFFICIAL_REGISTRY` を `devbasex/devbase-samples.git` に変更。
- README / docs 内のリポジトリ参照を `devbasex/devbase` に更新。
- ドキュメント体系を `docs/user`, `docs/plugin-dev`, `docs/developer` に再編。

### Removed
- 「公式レジストリ」固定の概念を廃止。各レジストリは対等な扱いとなる。

[Unreleased]: https://github.com/devbasex/devbase/compare/v2.2.0...HEAD
[2.2.0]: https://github.com/devbasex/devbase/releases/tag/v2.2.0
52 changes: 52 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Contributing to devbase

devbase へのコントリビューションを歓迎します。バグ報告、機能提案、ドキュメント改善、コード変更のいずれも受け付けています。

## 始める前に

- バグ報告・機能提案は [GitHub Issues](https://github.com/devbasex/devbase/issues) にお願いします。
- 大きな変更を加える場合は、事前に Issue を立てて方針を相談してください。
- 既存の Issue・PR と内容が重複していないか確認してください。

## 開発フロー

1. リポジトリを fork し、作業用ブランチを切ります。
```bash
git clone https://github.com/<your-account>/devbase.git
cd devbase
git checkout -b feature/<topic>
```
2. 変更を加え、ローカルで動作確認します。
3. コミットし、自分の fork に push します。
4. `devbasex/devbase` の `main` に対して Pull Request を作成します。

`main` への直接 push は禁止されています。すべての変更は PR 経由で取り込まれます。

## コミットメッセージ

日本語または英語のいずれでも構いません。1 行目には変更の種別と要約を簡潔に記述してください。

例:

```
追加: PHP 8.5 ベースの開発コンテナ
修正: スナップショット世代管理のオフバイワン
```

## コーディング規約

- Python: PEP 8 に準拠。CLI 実装は `lib/devbase/` 配下にあります。
- Shell: Bash / Zsh の双方で動作することを確認してください。
- ドキュメントは `docs/` 配下に配置し、図表は Mermaid または PlantUML を使用してください(ASCII アートは原則使用しない)。

詳細は [docs/developer/contributing.md](docs/developer/contributing.md) を参照してください。

## Pull Request

- PR テンプレートに沿って、変更内容と動作確認手順を記載してください。
- レビュー指摘があった場合は、追加コミットで対応します(force push は避けてください)。
- CI が通っていることを確認してから merge ready にしてください。

## ライセンス

コントリビュートいただいた変更は、本プロジェクトの [MIT License](LICENSE) のもとで配布されることに同意したものとみなします。
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,19 @@ devbase login # コンテナにログイン

## Plugin

devbaseのプロジェクトはPluginとして管理されます。Pluginは外部のGitリポジトリに格納され、リポジトリ登録後に`devbase plugin install`でインストールします。
devbaseのプロジェクトはPluginとして管理されます。Pluginは**プラグインレジストリ**(複数の Plugin を束ねた Git リポジトリ)から `devbase plugin install` でインストールします。

### 主なプラグインレジストリ

| レジストリ | Visibility | 役割 |
|-----------|-----------|------|
| [`devbasex/devbase-samples`](https://github.com/devbasex/devbase-samples) | public | サンプルレジストリ(`devbase init` 時に自動登録) |
| [`takemi-ohama/devbase-ext`](https://github.com/takemi-ohama/devbase-ext) | private | 個人プロジェクト向けプラグインマーケット |
| [`volareinc/devbase-ext`](https://github.com/volareinc/devbase-ext) | private | volareinc 社内プロジェクト向けプラグインマーケット |

詳細は [プラグインレジストリ](docs/user/plugin-registries.md) を参照してください。

### 操作例

```bash
# リポジトリ登録(GitHubショートハンド対応)
Expand Down Expand Up @@ -95,6 +107,7 @@ devbaseのコマンドは4つのグループにまとめられています。
|-------------|------|
| [はじめに](docs/user/getting-started.md) | 前提条件、初回セットアップ、日常ワークフロー |
| [CLIリファレンス](docs/user/cli-reference.md) | 全コマンドの構文・オプション・使用例 |
| [プラグインレジストリ](docs/user/plugin-registries.md) | 公開・社内レジストリの一覧と追加方法 |
| [環境変数ガイド](docs/user/environment-variables.md) | 3レベル構造、コレクター、ソース同期 |
| [コンテナ操作ガイド](docs/user/container-operations.md) | ライフサイクル、並行開発、ボリューム構造 |
| [スナップショットガイド](docs/user/snapshot-guide.md) | 増分バックアップ、世代管理、復元手順 |
Expand Down
2 changes: 2 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ graph TD
|-------------|------|
| [はじめに](user/getting-started.md) | 前提条件、初回セットアップ、日常ワークフロー |
| [CLI リファレンス](user/cli-reference.md) | 全コマンドの構文・オプション・使用例 |
| [プラグインレジストリ](user/plugin-registries.md) | 公開・社内レジストリの一覧と追加方法 |
| [環境変数ガイド](user/environment-variables.md) | 3レベル構造、コレクター、ソース同期 |
| [コンテナ操作ガイド](user/container-operations.md) | ライフサイクル、並行開発、ボリューム構造 |
| [スナップショットガイド](user/snapshot-guide.md) | 増分バックアップ、世代管理、復元手順 |
Expand Down Expand Up @@ -90,6 +91,7 @@ docs/
├── user/ ← 利用者向け
│ ├── getting-started.md ← はじめに
│ ├── cli-reference.md ← CLI リファレンス
│ ├── plugin-registries.md ← プラグインレジストリ
│ ├── environment-variables.md ← 環境変数ガイド
│ ├── container-operations.md ← コンテナ操作ガイド
│ ├── snapshot-guide.md ← スナップショットガイド
Expand Down
11 changes: 11 additions & 0 deletions docs/user/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ source ~/.zshrc

### 4. プラグインリポジトリの登録

`devbase init` を実行すると、サンプルレジストリ [`devbasex/devbase-samples`](https://github.com/devbasex/devbase-samples) が自動登録されます。追加のレジストリは以下のように登録します。

```bash
devbase plugin repo add user/repo
```
Expand All @@ -63,6 +65,15 @@ GitHub のショートハンド(`user/repo`)形式で指定できます。
devbase plugin repo list
```

主な追加候補レジストリ:

| レジストリ | 用途 |
|-----------|------|
| `takemi-ohama/devbase-ext` | 個人プロジェクト向けプラグインマーケット(private) |
| `volareinc/devbase-ext` | volareinc 社内プロジェクト向けプラグインマーケット(private) |

詳細・追加方法は [プラグインレジストリ](plugin-registries.md) を参照してください。

### 5. プラグインのインストール

```bash
Expand Down
87 changes: 87 additions & 0 deletions docs/user/plugin-registries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# プラグインレジストリ

devbase のプラグインは **プラグインレジストリ** を通じて配布されます。レジストリは `plugin.yml` を含む Git リポジトリの集合体で、`devbase plugin repo add` で任意のレジストリを追加できます。

## レジストリの考え方

devbase v2.2.0 以降、「公式レジストリ」固定の概念は廃止されました。すべてのレジストリは対等な立場で扱われ、ユーザーが自分の用途に合わせてレジストリを組み合わせて使います。

- 初回インストール時には `devbasex/devbase-samples`(サンプルレジストリ)が自動登録されます。
- 追加のレジストリは `devbase plugin repo add <user>/<repo>` で登録します(GitHub ショートハンド対応)。
- 完全な URL(`https://github.com/...`、SSH 形式)も指定可能です。

## 公開レジストリ

### devbasex/devbase-samples(サンプルレジストリ)

- URL: <https://github.com/devbasex/devbase-samples>
- 役割: 初めて devbase を使うユーザーがすぐに試せる汎用ツールを収録。
- 主な収録プラグイン:
- `adminer` -- DB 管理ツール
- `ai-plugins` -- Claude Code プラグインマーケットプレイス開発環境
- `devbase` -- devbase 本体の開発環境

`devbase init` 実行時に自動で登録されます。

## プラグインマーケット(追加登録向け)

`devbasex/devbase` のプラグインマーケットとして利用できる公開・非公開レジストリです。アクセス権を持つユーザーは `devbase plugin repo add` で追加してください。

### takemi-ohama/devbase-ext

- URL: <https://github.com/takemi-ohama/devbase-ext>
- Visibility: private
- 役割: 個人プロジェクト向けプラグインを収録。
- 追加方法:
```bash
devbase plugin repo add takemi-ohama/devbase-ext
```

### volareinc/devbase-ext

- URL: <https://github.com/volareinc/devbase-ext>
- Visibility: private
- 役割: volareinc 社内プロジェクト向けプラグインを収録(carmo 系プロジェクト等)。
- 追加方法:
```bash
devbase plugin repo add volareinc/devbase-ext
```

> private リポジトリにアクセスするには、Git の認証(HTTPS のクレデンシャル、または SSH 鍵)が事前に設定されている必要があります。

## レジストリ操作コマンド

```bash
# 登録
devbase plugin repo add <user>/<repo>
devbase plugin repo add https://github.com/<user>/<repo>.git

# 一覧
devbase plugin repo list

# 削除
devbase plugin repo remove <name>

# 同期(最新化)
devbase plugin repo sync
```

## 自前レジストリの作成

独自のプラグインレジストリを作成する手順は [プラグイン開発クイックスタート](../plugin-dev/quickstart.md) を参照してください。レジストリは以下の構造を持つ Git リポジトリです。

```
<registry-root>/
├── registry.yml # レジストリメタデータ
├── <plugin-name>/
│ ├── plugin.yml
│ └── compose.yml
└── ...
```

## 関連ドキュメント

- [はじめに](getting-started.md)
- [CLI リファレンス](cli-reference.md) -- `plugin repo` サブコマンドの詳細
- [プラグイン開発クイックスタート](../plugin-dev/quickstart.md)
- [plugin.yml リファレンス](../plugin-dev/plugin-yml-reference.md)
Loading