octopackageでPHPライブラリをリリースする方法

More than 1 year has passed since last update.


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