Blog

PAUSE における comaint とはなにか

よく miyagawa さんとかが comaint が云々といっていますが、意外としられていないのが comaint の実態です。

まずは PAUSE の処理フローについて考えてみましょう。

まず minil release とかして tar ball を PAUSE のサーバーにアップロードします。この時、アップロード先は authors/id/M/MO/MOZNION/HTML-Shakan-0.18.tar.gz とかになります。 そうすると PAUSE のインデクサがブンブンと動きだして、META.json の provides セクションまたは .pm を解析して、package とバージョンの情報が抽出され、データベースに登録されます。

この際、新規ネームスペースや、自分がもってるネームスペースならいいのですが、他の人がもってる namespace の場合には UNAUTHORIZED RELEASE となってしまいます。

UNAUTHORIZED RELEASE になると悲しいんで、ちゃんとしてあげたほうがいいです。UNAUTHORIZED RELEASE になっていると cpan shell からインストールできないです。悲しみ!

そういう訳で、他の人でもインデクスに登録できるようにするのが comaint の付与、なわけです。PAUSE の web 画面から co-maintainer に任命すると、その人はその namespace の package をインデクスに登録することができるようになるのです。 PAUES の web 画面は、登録しているパッケージの量が多すぎると使用が困難を極めますので、そういう場合は miyagawa さんの comaint コマンド をつかったらいいです。

最近では、minil release すれば誰がやってもリリースフローは同じ、という感じになってますんで、ガシガシ comaint 付与しちゃっていいんじゃないかなーとおもいます。 わりと海外だと、リリースのたびにリリース担当がかわるモジュールはちょいちょいあります。