2013-07-06

Bintray 上に Eclipse プラグインの更新サイト(p2 リポジトリ)を構築する。

Bintray のユーザーガイドによると、公開後5日を過ぎたファイル、30日を過ぎたバージョンは削除できないことになっています。
Eclipse プラグインの更新サイトでは新しいバージョンをリリースする際、いくつか既存のファイルを上書きして更新する必要があるので、この仕様だと更新サイトとしては使えないのかな、と考えていたのですが、サポートに問い合わせた結果、いくつかの約束事を守れば Bintray でもEclipse プラグインの更新サイトを公開できることが分かりました。


ルールは以下の三つです。
  1. 公開するプラグインがオープンソースである。
  2. リポジトリ作成時に Type として Maven を選択する。
  3. バージョン更新時に上書きされるファイル(artifacts.jar, content.ja)は Bintray の REST API を使ってアップロードする。
既に Bintray を利用している方ならこれだけ分かれば十分だと思いますが、まだ日本語の情報も少ないようなので一通り説明します。

新しいリポジトリを作成する。


ユーザー登録を済ませたら、まずはリポジトリを作成します。
  • Name は任意の文字列です。更新サイトの URL の一部となります。
  • Type は Maven を指定します。
Name と Type はリポジトリ作成後の変更はできませんが、他の項目は後からでも変更できます。

新しいパッケージを作成する。


パッケージはファイルの集合を表す概念で、Eclipse プラグインに当てはめると多分いくつかのプラグインやフィーチャーを含むカテゴリに相当するのではないかと思います。

パッケージの作成は特に注意点はありません。パッケージ名を含むすべての項目について作成後に変更することができます。

新しいバージョンを作成する。


バージョンの作成も説明不要でしょう。番号を入力するだけです。
作成後に Cancel かバージョン番号のリンクをクリックすると Version 画面に遷移します。

REST API を利用してファイルをアップロードする。


多少バリエーションがあるようですが、プラグインの更新サイトには二つのファイルと二つのディレクトリが必要です。最初に書いた通り artifacts.jar と content.jar は REST API 経由でアップロードする必要がありますが、サブディレクトリ内の JAR ファイルについては Version 画面の Files タブからアクセスできる File Upload UI でアップロードしても OK です。

REST API を利用するためには、API Key が必要です。下記の手順で取得してください。
  1. 画面上部のアカウント名のリンクをクリックします。
  2. Edit をクリックします。
  3. API Key をクリックするとキーが表示されるので、コピーします。
今回実行した curl コマンドを載せておきますが、実際に作業を行うときは Bintray の API ドキュメントで最新の情報を確認してください。

$ curl -X PUT -u harawata:MY_API_KEY --data-binary @artifacts.jar https://api.bintray.com/content/harawata/eclipse/stlipse/1.0.8/artifacts.jar

上記のコマンドは、アカウント名 harawata、リポジトリ名 eclipse、パッケージ名 stlipse、バージョン 1.0.8 を対象にして、カレントディレクトリにある artifacts.jar を同じ名前でリポジトリのルートディレクトリにアップロードする例です(MY_API_KEY を自分の API Key に書き換えてください)。

REST API 経由でアップロードした artifacts.jar, content.jarVersion 画面の Files タブにはリストされません。REST API 経由でこれらのファイルをアップロードした場合は一般のファイルとは異なる metadata として保存されるからだそうです。

バージョンを公開して Eclipse で確認する。


全てのファイルをアップロードし終わったら、Version 画面にある Publish リンクをクリックして、バージョンを公開します。
これで Eclipse からアクセスできるようになったはずです。
画面右上に表示されている URL が更新サイトの URL になります。

新バージョンをリリースする。


最初のバージョンが公開できていれば、新バージョンのリリースも簡単です。
  1. 新しいバージョンを追加します。
  2. REST API を使って更新済みの artifacts.jarcontent.jar をアップロードします。既存ファイルは上書きされます。
  3. 新たに feature, plugins フォルダに追加された JAR ファイルをアップロードします(REST API でも UI でも可)。
  4. 新しいバージョンを Publish (公開)します。

こちらが Bintray のリポジトリで、
https://bintray.com/harawata/eclipse
下記が更新サイトの URL です。
http://dl.bintray.com/harawata/eclipse/

0 件のコメント:

コメントを投稿