jekylog

All doggs wanna be a Geek

jQuery Plugin Registryにプラグインを登録する

2013年1月16日にjQuery Plugin Registryが公開された。

現状ではいろんな場所に断片化されているプラグインをGithubで管理する事で一元化しましょうって感じらしい。これを機会にせこせこ上げておこうとオフィシャルのドキュメント見ながら進めてたけど地味にハマったんでメモしとく。

1. Githubにプラグインを公開しておく

兎にも角にも特に構成を気にせずプラグインを公開しておく。gh-pagesブランチでプラグインのドキュメントとか用意しておくとなお良いかも。

2. GithubでPost-Receiveフックを設定

Post-Recieveフックとはレポジトリにpushが行われた際に設定したURLに通知してくれる機能。ここにjQuery Plugin Registryの通知先であるURL、http://plugins.jquery.com/postreceive-hookを設定しておく。

3. Post-Recieveフックが機能しているかテスト用のURLを追加

このサイトで「Create a RequestBin」をクリックし、与えられたURL(48時間のみ有効)もWebHook URLsに追加しておく。するとpush後に与えられたURLをリロードするとPOSTが確認出来る。まあやんなくてもいいかもしれないけどこれをしておかないとpush後にjQuery Plugin Registryに正しく通知されているか知るすべがないので念のため。

4. GithubレポジトリのルートにPackage Manifestを設置

これもサンプル見ながら作ればほぼ問題ない。気をつけるのはファイル名がpluginName.jquery.jsonとなるようにしておく事とJSONLintで念のためvalidateしておくくらい。

5. tagでバージョンを付けてtagをpush

ここでハマった。基本的にはtagがそのままプラグインのバージョンとして使用されるのでgit tag 1.0.0みたいにタグ付けしてgit push origin --tagsするだけだけど、この時重要なのが上記で設置したPackage Manifestで記述したバージョンとタグが同じでないとダメって事。ドキュメント見てればちゃんと書いてあった。

The tag name must also match the version listed in the manifest file.

さらに下記引用にあるように、jQuery Plugin Registryに反映されない等の問題にぶち当たった時はtagを上書きするのではなく、Package Manifestのバージョンを更新し、新しいtag(もちろんPackage Manifestのバージョンと同じ)を作ってpushするように、とあるので注意。自分は上書きしまくってたのでバージョンが全然反映されなくてハマった。

We highly suggest that you do not overwrite old tags, instead, update the version number tag in the manifest, commit, and create a new tag to fix any errors you've encountered.

ちなみにバージョンはSemVerに基づいて付けなきゃらしいけど基本的にx.x.xの形式なら問題ないそう。

6. masterとgh-pagesブランチもpush

自分の場合はプラグインのデモページとしてgh-pagesブランチも使用しているのでgit push --allでpush。

7. jQuery Plugin Registryに登録されたか確認

大体5分から10分でhttp://plugins.jquery.com/登録したプラグイン名/に反映されるけど、なかなか反映されない場合は何かしらミスってる可能性があるので下記ページで自分のプラグインに関するログを探してみて対処する。

無事登録されればこんな風になる。バージョンのところはミスりまくって訳が分からんことになってるのでいずれ直そう。。。

手順としてはシンプルだけどハマると情報が乏しいので苦労した。ただこれからもっと活発になってくると思うし日本語のドキュメントも出てくると思うのでドンドン登録していきたい。

Fork me on GitHub