jQuery Plugin Registryへの登録の仕方

画像をルーレットさせる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プラグイン開発者は、これまでの大変だったプラグイン管理が非常に楽になると思う。

参考にしたサイト:
http://openweb.co.jp/2013/01/17/jquery%E5%85%AC%E5%BC%8F%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%83%BB%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA%E3%81%8C%E5%85%AC%E9%96%8B%E3%80%82github%E3%81%A8%E9%80%A3%E6%90%BA/