LoginSignup
6
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-06-20

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

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6