octopackage って何?
PHP用のoctoreleaseです。
(参考: octoreleaseのJavaScript版 "octopublish"と、PHP版 "octopackage" を作った - Copy/Cut/Paste/Hatena )
composer octopackage
コマンドを実行することで、自動で以下の処理を実行します。
- 新しいバージョン番号でtagを作成(
v1.0.0
形式 )(--major
--minor
--patch
) - tagもふくめて
git push
- 既存のバージョン番号(tag)からの新しいバージョン番号(tag)の間にあったPull Requestにどのバージョンでリリースされたかがわかるようにコメント( "Released as v1.0.0." )
- 既存のバージョン番号(tag)からの新しいバージョン番号(tag)の間にあったPull Requestのタイトルを収集してGitHubのreleaseを作成
PHPのライブラリをPackagistに登録するには、GitHubとPackagistを連携する必要があります。
逆にいうと、GitHubとPackagistを連携しておけば、GitHubにバージョン番号のtagをpushするだけで、Packagistに登録されます。
なので、octopackageが実施するのはGitHubへのtagのpushまでです。
使い方
初期設定
まず、何はなくとも ~/.config/hub
の設定が必要です。
以下のようなファイルが生成されている必要があります。hubコマンド用の設定ですね。
---
github.com:
- protocol: https
user: YOUR_USER_ID
oauth_token: YOUR_OAUTH_TOKEN
(参考: hubを2-factor authentication(2要素認証)有効でも使いたい )
インストール
オススメは各プロジェクトでoctopackageをインストールする方法です。
$ cd your-php-project/
$ composer require k1low/octopackage --dev
グローバルにもインストールできます。
$ composer global require k1low/octopackage
実行(リリース)
octopackageはComposerプラグインとして作成されています。なので、コマンドは composer octopackage
となります。
$ cd your-php-project/
$ composer octopackage
デフォルトではpatchバージョンを上げる形になっていますので、minorバージョンをあげてリリースしたいときには --minor
オプションを、majorバージョンをあげてリリースしたいときには --major
オプションを付与して実行してください。
別の使い方
octopackageはgit pushまでしかしません。
ということは、普段の開発でPullRequestベースでの開発をしていれば、バージョンタグやGitHubのreleaseをいい感じに管理できます。
便利!
あわせて読みたい
linyows/capistrano-github-releases: GitHub Releases tasks for Capistrano v3