|
|
|
新しいバージョンのリリース
|
|
|
|
==========================
|
|
|
|
|
|
|
|
フレームワークのリリースを作成するのに必要とされる手順のリストは、時とともに長くなり、手作業で管理するのが困難になっています。
|
|
|
|
そのため、どの手順も忘れられることが無いように、コマンドラインツールを作成しました。
|
|
|
|
|
|
|
|
リリースの手順の概要
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
- ...
|
|
|
|
|
|
|
|
リリースコマンド
|
|
|
|
----------------
|
|
|
|
|
|
|
|
リリースの手順は、フレームワークの開発レポジトリに含まれている [release コンソールコマンド](../../build/controllers/ReleaseController.php) によって自動化されています。
|
|
|
|
|
|
|
|
リリースコマンドは、フレームワークの `build` ディレクトリに含まれている Yii アプリケーションを使って呼び出すことが出来ます。
|
|
|
|
|
|
|
|
./build/build help release # このコマンドをフレームワークのレポジトリのルートで実行します
|
|
|
|
|
|
|
|
> Info: コマンドを `--dryRun` オプションを付けて実行すると、どのようになるかを見ることが出来ます。
|
|
|
|
> このオプションを使うと、変更は何もなされず、どんなコミットやタグも生成されたり、プッシュされたりしません。
|
|
|
|
|
|
|
|
### 必要条件
|
|
|
|
|
|
|
|
リリースコマンドは、[Git ワークフローのドキュメント](git-workflow.md#extensions) で紹介されている開発環境に依存しています。
|
|
|
|
すなわち、アプリケーションテンプレートは `/apps/` の下に配置されていなければならず、
|
|
|
|
エクステンションは `/extensions/` の下に配置されていなければなりません。
|
|
|
|
この構成は `dev/app` および `dev/ext` のコマンドを使って作成することが推奨されます。
|
|
|
|
|
|
|
|
例えば、エクステンションのインストールは:
|
|
|
|
|
|
|
|
./build/build dev/ext authclient
|
|
|
|
|
|
|
|
アプリケーションは:
|
|
|
|
|
|
|
|
./build/build dev/app basic
|
|
|
|
|
|
|
|
このインストール方法によって、エクステンションが現在のレポジトリの状態と同じフレームワークコードを使用する事を保証することが出来ます。
|
|
|
|
|
|
|
|
### バージョンの概要
|
|
|
|
|
|
|
|
フレームワークとエクステンションのバージョンについて概要を把握したいときは、以下を実行することが出来ます。
|
|
|
|
|
|
|
|
./build/build release/info
|
|
|
|
|
|
|
|
全てのレポジトリのタグを取得するために `--update` を指定して実行し、最新の情報を取得することも出来ます。
|
|
|
|
|
|
|
|
### リリースを作成する
|
|
|
|
|
|
|
|
フレームワークのリリースの作成では、下記のコマンドの実行します (アプリケーションは常にフレームワークと一緒にリリースされます)。
|
|
|
|
|
|
|
|
./build release framework
|
|
|
|
./build release app-basic
|
|
|
|
./build release app-advanced
|
|
|
|
|
|
|
|
エクステンションのリリースの作成では、実行するコマンドは一つだけです (例えば、redis なら)
|
|
|
|
|
|
|
|
./build release redis
|
|
|
|
|
|
|
|
リリースコマンドは、デフォルトでは、現在チェックアウトされているブランチを元に新しいマイナーバージョンをリリースします。
|
|
|
|
デフォルトと異なるバージョンをリリースするためには、`--version` オプションを使ってバージョンを指定する必要があります。例えば、
|
|
|
|
`--version=2.1.0`, or `--version=2.1.0-beta`.
|
|
|
|
|
|
|
|
|
|
|
|
#### 新しいメジャーバージョン、例えば 2.1.0 をリリースする
|
|
|
|
|
|
|
|
新しいメジャーバージョンのリリースは、[バージョン規約](versions.md) で説明されているように、ブランチの変更を伴います。
|
|
|
|
以下は、`master` から派生した `2.1` ブランチ上で開発されている `2.1.0` バージョンをリリースする例を示すものです。
|
|
|
|
リリース前においては `master` は `2.0.x` の諸バージョンを含んでいます。
|
|
|
|
|
|
|
|
- `master` から新しいブランチ `2.0` を作成する
|
|
|
|
- composer.json がこのブランチに対するブランチエイリアスを含まないようにする
|
|
|
|
- 必要な変更を `master` から `2.1` にマージする
|
|
|
|
- `master` が `2.1` の最新のコミットを指すようにする
|
|
|
|
- composer.json のマスターに対するブランチエイリアスを `2.1.x-dev` とする
|
|
|
|
- `2.1` ブランチを削除する
|
|
|
|
|
|
|
|
`master` をチェックアウトし、`--version=2.1.0` オプションを付けて、リリースコマンドを実行する。
|