CPAN(TS)とランキングの件、他
朝も早うから雑多な話を駆け足で詰め込んだので、消化不良になった方も多かったろうと申し訳なくも思っていますが、ポイントは、CPAN本家のFAQからたどれる「CPANにアップロードする方の責務」についてのこの一節(「私たちはみなさんも空気を読んでくれるものと信じています」)と、
Your duties, the basics, traps
We trust that you have read the perlmodinstall, perlmodlib, perlmodstyle, and perlnewmod manpages and that you regularly check out uploads to CPAN and that you have been watching CPAN activities for a while to have an impression of how things fit together. It usually boils down to (slogan shamelessly stolen and adapted from sudo(1)):
1. Think, better even talk before you upload
2. Respect the namespace of others
CPANディストリビューションの作成やインストールを助けるツールについては、miyagawaさん(Milla)やtokuhiromさん(Minilla)、Ricardo Signesさん(Dist::Zilla)のように、Perl-Toolchain-Gangに属していたり、QA Hackathonに来ていたりする人たちがいまも積極的にメンテしているツールを使ってくださいませ、という二点だけです。
CPANは、インストール前にMakefile.PL/Build.PLといったスクリプト(要するに、任意のコード)の実行を許しているということも含めて、かなりの性善説と、ツールチェーンまわりを整備している方々の不断の努力に依存しています。かれこれ20年近く続いているサービスであるだけに、過去にはいろいろ問題のあるディストリビューションもありましたし、それを受けてさまざまな対策がとられてはいるのですが、なるべくならアップロードする側のみなさんにも、最低限、最近のディストリビューションらしい体裁とか、モジュールの階層、メタ情報もろもろを整備していただけると、QAチームの一員としては大変ありがたいですし、よくわからなかったら、過去の事情にも明るい(同じ問題を繰り返さないであろう)人たちがメンテしているツールを使う方が安心ですよ、と。
ちなみに、miyagawaさんが警鐘を鳴らしてなおModule::Install 1.04が残ったままになっているディストリビューションは以下の通りです。
- DMAKI CatalystX-AppBuilder-0.00009
- DMAKI Pickles-0.10
- DMAKI AnyEvent-HTTP-MXHR-0.00007
- FUKATA WWW-Asg-0.05
- HDAICHI Data-Enumerator-0.03
- HDAICHI Data-Visitor-Lite-0.03
- HOLLY WWW-Giraffi-API-0.2_04
- KARUPA Plack-App-Directory-Xslate-0.06
- KARUPA Sledge-Template-Xslate-0.07
- KARUPA Filesys-Notify-KQueue-0.08
- KAZUHO cppref-0.09
- KURIHARA HTTP-MobileAgent-0.36
- NEKOKAK DBIx-TransactionManager-1.12
- NEKOKAK Test-Attribute-AutoLevel-0.06
- SATOH Text-Xatena-0.18
- SATOH HTML-Trim-0.02
- SATOH FormValidator-Simple-Plugin-V8-0.01
- SATOH Test-Time-0.04
- SATOH Text-Overflow-0.02
- SATOH Config-ENV-0.12
- SATOH DBIx-RewriteDSN-0.05
- SATOH Plack-Middleware-StaticShared-0.05
- SHIBAZAKI DBIx-DataFactory-0.0.5
- TAGOMORIS Net-Hadoop-WebHDFS-0.3
- TAGOMORIS Net-Hadoop-HuahinManager-0.02
- TAGOMORIS Net-Hadoop-DFSAdmin-ReportParser-0.2
- TARO Config-Multi-0.12
- TARO FormValidator-LazyWay-0.20
- TOMITA Acme-Ikamusume-0.07
- ZIGOROU Loop-Sustainable-0.02
同じく、MYMETA.*が残っているのはこちら(リポジトリにMANIFEST.SKIPがあるならそれを修正。ない場合はリリース前にExtUtils::Manifestを最新版に更新してください)。
- ASKADNA Plack-Session-State-URI-0.03
- ASKADNA WebService-Dropbox-1.18
- AYANOKOUZ WebService-Simple-Yahoo-JP-API-0.11
- DELPHINUS WebService-Pastefire-0.02
- DELPHINUS Amon2-Plugin-Web-FormValidator-Simple-0.04
- DMAKI ZeroMQ-0.23
- DMAKI Cache-Memcached-AnyEvent-0.00021
- DMAKI Pickles-0.10
- DSYRTM File-BetweenTree-1.02
- FUJIWARA Parallel-Benchmark-0.07
- FUJIWARA Fluent-Logger-0.10
- HDAICHI Data-Enumerator-0.03
- HDAICHI Data-Visitor-Lite-0.03
- HIRAFOO Config-Divide-0.036
- HOLLY App-CLI-Extension-1.421
- HOLLY App-CLI-Plugin-Parallel-ForkManager-1.1
- HOLLY App-CLI-Plugin-DBI-1.1
- HOLLY App-digestarchive-0.044
- HOLLY App-CLI-Plugin-Proc-PID-File-1.3
- HOLLY App-CLI-Plugin-Net-SMTP-1.3
- HOLLY WWW-Giraffi-API-0.2_04
- HOLLY App-CLI-Plugin-Log-Dispatch-Configurator-YAML-1.1
- HOLLY Test-Fixture-KyotoTycoon-0.13
- HWAT PerlIO-via-Limit-0.03
- HWAT SWF-ForcibleConverter-0.01
- KARUPA Sledge-Template-Xslate-0.07
- KARUPA Filesys-Notify-KQueue-0.08
- KAZUHO Parallel-Scoreboard-0.04
- KAZUHO Server-Starter-0.15
- KAZUHO Starlet-0.20
- KAZUHO cppref-0.09
- KIMOTO Mojolicious-Plugin-DBViewer-0.26
- KIMOTO DBIx-Custom-0.28
- KIMOTO Mojolicious-Plugin-MySQLViewerLite-0.15
- KIMOTO App-cpanurl-0.04
- KIMOTO Mojolicious-Plugin-SQLiteViewerLite-0.11
- KIMOTO Mojolicious-Plugin-AutoRoute-0.14
- KIMOTO Mojolicious-Plugin-INIConfig-0.03
- KIMOTO Validator-Custom-0.20
- KUNIYOSHI Net-TinyIp-0.08
- NEKOKAK SQL-Object-0.01
- OKLAHOMER Facebook-OpenGraph-1.11
- TOKUBASS EPUB-Parser-0.05
- TURUGINA Mojolicious-Plugin-HTTPStatusRenderer-0.01
- TYPESTER Sub-Rate-0.05
- TYPESTER AnyEvent-APNS-0.10
- TYPESTER Test-RedisServer-0.12
- TYPESTER Text-MicroTemplate-Extended-0.17
- TYPESTER Cocoa-BatteryInfo-0.02
- TYPESTER Sub-Exception-0.01
- TYPESTER GitDDL-0.02
- TYPESTER Data-Apple-PriceTier-0.05
- TYPESTER Data-MessagePack-Stream-0.07
- TYPESTER JSON-Types-0.05
- UNLEARNED Term-SimpleColor-v0.0.3
- UNLEARNED Game-TextPacMonster-0.03
- YOSHIMI HTTP-MobileAgent-Flash-0.20
- ZENTOOO Term-ANSIColor-Simple-0.10
- ZIGOROU DBIx-DBHResolver-0.17
CPANTSについては、春のQA Hackathonの成果もあわせると、以前に比べてチェック項目が6増12減し、以前は非常に雑な実装になっていたいくつかの項目についても改善が進みました。それでもまだ十分とはいえない項目も残っていますが、最初から新しいツールを使ってモジュールをリリースしている若い世代が増えたおかげもあって、数年来続けているランキングについては、9/20時点では11人(その後さらに手入れをした方がいて、9/30時点では13人)の日本人CPAN Authors (5ディストリビューション以上)が満点で並ぶようになっています。最新の様子はacme.cpanauthors.orgからご確認いただければと思いますが、記録として、ここにもIDとお名前を残しておきます。
全日本最強CPAN Author決定選手権 2013年版 結果
1. BAYASHI (Dai Okabayashi) (↑)
2. SONGMU (Masayuki Matsuki) (new)
3. YAKEX (Yasutaka ATARASHI) (new)
4. MOZNION (Taiki Kawakami) (new)
5. AKIYM (Takumi Akiyama) (newb)
6. SYOHEX (Syohei Yoshida) (new)
6. SYAGI (Satoshi Yagi) (new)
6. ZIGUZAGU (Hiroshi Sakai) (new)
6. CHIBA (Masahiro Chiba) (↑)
10. ANAZAWA (Ryo Anazawa) (new)
10. PAWAPAWA (Kohei Yoshioka) (↓)
10. MORIYA (MORIYA Masaki) (↓ ただし1年以上更新なし)
10. RINTARO (Rintaro Ishizaki) (new ただし1年以上更新なし)
(※スコアは全員100点。順位はディストリビューション数によるもの)
訂正: 日本人CPAN Authorの抽出に問題があり、上記のリストからはHIDEAKIO (Hideaki Ohno)さんが漏れていました。掲載後、順位に変更が出ているためリストの修正はしませんが、MOZNIONさんと同スコアの4位相当です。大変失礼しました。
その他、ごく個人的なこととして、昨年ちょっと話を振ってみたら今年スライドの翻訳を一手に引き受けてくださったktatさん(と、ご同僚の方。お名前を伺いそびれてしまいました)に感謝します。なんだかんだで2006年から毎年なにがしかのスライドを訳してきたわけですが、今年はじめて手離れしました。あと、HackathonをまとめてくださったmyfinderさんとFreakOutのみなさまにも。おかげさまで(半年遅れですが)ようやくQA HackathonのTokyo Sateliteにリアル参加できました。その成果についてはまた別項で。