さて、一度リリースをしたいとおもいます。
もちろん、オープンソースで出そうと思うので、ソースコードを管理する場所が必要です。

OpenPNEプロジェクトではプラグインの開発も含めて、Subversionを利用していましたが
集中型リポジトリは、どうしても運営に連絡をしないとアカウントが作れないという
問題点がありました。
しかし今は、大変便利なモノが存在します。それはGithubです。
オープンソースであれば、gitリポジトリを300MBまで無料で使うことができます。しかも、他人のソースコードから分岐したり、自分の修正を取り込んでもらうようにリクエストする機能があったりと喜ばしい機能が満載です。

Githubへソースコードをアップするまで

以下はdebianの例です。環境によって読み替えてください。
まずは、Githubへユーザ登録してください。

上の「Pricing and Signup」から新規登録ができます。プランなどが聞かれますが、クローズドでの開発を行ったり膨大な量のソースコードを管理する使い方をしない限りはFreeで良いでしょう。
登録時にSSH keyを尋ねられますが、この手順で作成し、ペーストしてください。

登録が終わったら、先にリポジトリを作成してくだい。ログイン後、右のほうに「New Repository」ボタンがあるはずです。
そこから必要事項を入力するだけでリポジトリの作成は完了します。
github

次に開発環境を設定します。

gitをインストールしていない場合は、インストールを行ってください。

$ sudo apt-get install git-core

とりあえず、基本設定(これをやらないとコミットにコンピュータ名などが出て恥ずかしいことになるらしい。)

$ git config --global user.name 'あなたの名前'
$ git config --global user.email '登録メールアドレス'

以下はプラグインのディレクトリのトップ(plugins/opVotePlugin)で以下行う操作です。

$ git init
$ git add .
$ git commit

ここでコミットメッセージが尋ねられますので、とりあえず”first commit”などを入力します。
gitではこの段階では自分の環境内のリポジトリへはコミットされましたが、まだGithubに上がっているわけではありません。

そこで、orign というリモートリポジトリを登録します。この時に指定するURLはGithubの当該リポジトリの画面に表示されています。(privateのものをコピーしてください。publicのものだとGithub上のリポジトリに書きこむことができません。)

$ git remote add origin git@github.com:ほげほげ/opVotePlugin.git

そして、originのmasterとしてpushすることにより、自分のローカルのリポジトリが、Github上のリポジトリにプッシュされ、ようやく公開されます。

$ git push origin master

OpenPNE Issue Tracking Systemへ登録

http://redmine.openpne.jp/
OpenPNEプロジェクト公式のBTSは、OpenPNE本体のリリース管理だけでなく、プラグインのリリース管理も行うことができます。
しかも、自由に登録をすることができます。

画面右上の登録から登録することができます。

リリース作業

リリースについて良くまとまっている資料は以下になります。
http://www.tejimaya.com/archives/5000

(opVotePluginは私が作ってしまっているでここから先はオリジナルのプラグインを開発したら試してみてください。)

Redmineへプラグイン登録
現行の仕組みでは、Redmineへのプラグイン登録を先に行う必要があります。
http://redmine.openpne.jp/pear_package/add?project_id=op3-plugins
で、必要事項を入力します。

パッケージ化


$ ./symfony opPlugin:release opVotePlugin ~/

この、コマンドによって、opVotePluignのパッケージが ~/ 下に作成されます。
パッケージ作成時に、リリースの状態(stable, beta, alphaから選択)
バージョン、リリースノートが聞かれますので入力してください。

最後に、作成されたパッケージを、プラグインチャネルサーバの管理画面から
アップロードしてください。
(URLは上記資料に記載)

プラグインリリース時に、プラグインのディレクトリ下にpackage.xmlが作成されている
のを確認した時点で、gitでタグ付けを行いましょう。

プラグインのディレクトへ移動して

$ git add package.xml
$ git commit -m "added package.xml to release version 0.9.0"

で、package.xmlをコミットします。
その時点で、タグを設定するには以下のようにします。

$ git tag v0.9.0

その状態のレポジトリをgithubへ公開します。

$ git push --tags
$ git push origin master

プラグインインストールのチェック

アップロードされたパッケージが正常にインストールされたかを確認してみましょう。

OpenPNE3を新たに用意し、インストールしてOpenPNEのディレクトリで
以下のコマンドを実行してみましょう。

$ ./symfony opPlugin:install -s alpha -r 0.9.0
$ ./symfony openpne:migrate

プラグインリリースの未来

OpenPNE3がデフォルトで対応しているプラグインチャネルサーバにプラグインを登録するには、少しばかりややこしい方法を取る必要があるのが理解できたでしょう。
そこで、OpenPNEのリードコミッターである海老原氏は、OpenPNE3をプラグインチャネルサーバにして、かつリリースを簡単に行える仕組みを考案しました。
もちろん、その仕組自体もOpenPNE3プラグインで動いています。
その名も、「opPluginChannelServerPlugin」です。

以下にデモがあります。
http://plugins.ebihara.dazai.pne.jp/

ずっと気軽にできますので、小物プラグインであっても、ぜひ試してみてください。
(今後はこの仕組に統一されるとのことです。)

このチュートリアルのソースコードを見たい方へ

このプラグインをgithubへアップしました。
http://github.com/kawahara/opVotePlugin