画像をルーレットさせるjQueryプラグインを作ったので、jQuery Plugin Registryへ登録してみた。
roulette
http://plugins.jquery.com/roulette/
jQuery Plugin Registryの概要としては、
開発者が、作ったjQuery pluginをその開発者のgithubに置き、
post-receive hookという仕組みを使って、
githubからjQuery Plugin Registryへpush内容を伝える。
そうすると自動的にjQuery Plugin Registryへ登録されたり、更新されたりするわけだ。
なので、開発者はgithubしか触らなくていい。jQuery Plugin Registryに登録したり更新内容をアップしたりする必要はない。
非常にスマートな仕組みだ。
さて、登録の仕方だが、
http://plugins.jquery.com/docs/publish/
を見ればだいたい分かる。
まず、準備としてgithubにリポジトリを作り登録したいjQueryプラグインを置く。
で、次に、github repository の"Settings"を選んで、左側の"Service Hooks"を選択。
そうすると、"AVAILABLE SERVICE HOOKS"として登録可能なサービスが出てくるので、
"jQuery Plugins"を選んで"Active"にチェックを入れ、"Update Settings"を押す。
次に、jQuery Plugin Package Manifestを作る。
作り方は以下にある。
http://plugins.jquery.com/docs/package-manifest/
要はjsonファイルを作り、githubリポジトリのトップディレクトリに配置すればよい。
jsonの名前は"pluginName.jquery.json"である必要がある。
pluginNameには自分のプラグインの名前を指定する。
名前はなんでもよいが以下のような制限がある。
Plugin names may only contain letters, numbers, hypens, dots, and underscores.
また、名前は早い者勝ちだ。
ちなみにrouletteプラグインのJSONファイルは以下のように書いた。
{ "name": "roulette", "title": "jQuery Roulette Image", "description": "jQuery plugin for roulette image.", "keywords": [ "roulette", "image" ], "version": "1.0.9", "author": { "name": "Akira Kuriyama", "url": "http://d.hatena.ne.jp/shepherdMaster" }, "licenses": [ { "type": "MIT", "url": "https://github.com/akira-kuriyama/roulette.js/blob/master/MIT-LICENSE.txt" } ], "bugs": "https://github.com/akira-kuriyama/roulette.js/issues", "demo": "http://demo.st-marron.info/roulette/sample/demo.html", "dependencies": { "jquery": ">=1.8" } }
さて、jsonファイルを頑張って書いても内容が間違っていると登録/更新されない。
なので、
http://plugins.jquery.com/docs/publish/
の"Validate Your Manifest File Here"からファイルを検証しよう。
"Congratulations, your manifest file is valid."と表示されれば内容は合っている。
最後はgit で tagを作ってpush すれば終わりだ。
tagをpushしないといくらコミットしてもjQuery Plugin Registryには登録/更新されない。
gitのtagの付け方は以下のページを見ればよい。
http://git-scm.com/book/ja/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%BF%E3%82%B0
tagをつけるコマンドは以下のような感じだ。
git tag -a v1.0.0 -m 'Roulette plugin release' git push origin v1.0.0
ここで、注意点がある。
タグのversionと、Manifest JSONファイル内のversionのが合ってないと登録/反映されない。
ここまで頑張ったなら登録/反映されるはずだが、
それでも登録/反映されない場合は、
http://plugins.jquery.com/docs/publish/
"Troubleshooting" の項目にerror log というリンクがあるので、
ここを見てみよう。自分のpluginのエラーが出ているかもしれない。
また登録/反映には数分かかる。
実際やってみるとJSONファイルの書き間違えでハマった以外はすんなりいけた。
jQueryプラグイン開発者は、これまでの大変だったプラグイン管理が非常に楽になると思う。