YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う

Preview:

DESCRIPTION

YAPC::Asia 2013 向けのトーク資料です

Citation preview

CPAN Testers Reportの情報を上手に使う

Hachioji.pm@moznion

CPAN Testers Reportの情報を上手に使う

Hachioji.pm@moznion

CPAN Testers Reportの情報を上手に使う

Hachioji.pm@moznion

全般の話

@moznion

普段は働いて暇な時に学生してます

今年の末あたりから就活が始まります

本日は寝坊して関係者各位にご迷惑をおかけしました

本日は寝坊して関係者各位にご迷惑をおかけしました

本当に申し訳ございません

宣伝

API を介したCRUD 処理がひと通り実現可能

それに伴って、いくつか クライアントを実装

(プロトタイプ的ですが)

1

Hateblo.vim

Vim からはてなブログへの投稿などが出来る

API が提供している機能は(一応) ひと通り

サポートしています

2

hatenablog-post

はてなブログへの投稿ができる Chrome 拡張

こんな感じ

大変便利なAPIですので皆様、どうぞご利用ください

宣伝ここまで

本題

< Hello

CPAN Testers Reports

Perl の世界観

テスト大事

ぶっ壊れてるモジュール必要なし

http://livedoor.blogimg.jp/u0840153/imgs/a/3/a36ee17e.jpg

デフォルトだとテストにコケるモジュールはインストールできない

(ですよね?)

なので、テスト結果に関する情報は非常に重要

CPAN Testers Reports

そのモジュールがどれくらいテストに通ってどれくらいテストにコケているかを可視化してくれているサイト

CPAN Testers Reports

あと、そのモジュールがどの環境で動いてどの環境で動かないかも確認できるので捗る

CPAN Testers Reports

有志の Tester の人がローカルの環境でテストして、その結果を送ってくれる事によって成り立っている。

よく「Perl/CPANは枯れている」といいますが、それを支えているのはPerlの歴史とかPerlerの性格といった形のないものではなく、この CPAN Testers なのです。これがすごくいいんですよ。

[出典]CPAN Testersの紹介 - Islands in the byte streamhttp://d.hatena.ne.jp/gfx/20130309/1362823135

CPAN Testers Reports を使うと捗るシーン

1

モジュール選定時

- そのモジュールは安全か- 今もメンテが継続中か- 対象環境でも動作するか

- そのモジュールは安全か- 今もメンテが継続中か- 対象環境でも動作するか

ここらへんがわかる

2

モジュールのメンテ時

- どの環境でコケてるのか判るから手元に再現環境作れる- ログが参照できるからトラブルシュートしやすい

- どの環境でコケてるのか判るから手元に再現環境作れる- ログが参照できるからトラブルシュートしやすい

モジュールの質が上がる

後で紹介するTestament は2 にフォーカス

Report の読み方

モジュールを利用する場合

ここらへんは普通に読むと良い

便利

モジュールをメンテする場合

無愛想なテキストを読む必要性があって難関

とはいえ、読めば良い所は絞ることが可能

とはいえ、読めば良い所は絞ることが可能

とはいえ、読めば良い所は絞ることが可能

どのテストがコケてるかを確認出来る

依存モジュールのインストール状況を確認できる

ここが問題になっているケース、割と多い印象

とはいえ、読めば良い所は絞ることが可能

とはいえ、読めば良い所は絞ることが可能

色々わかる

“LANG” と “PERL5LIB”、“PERL5OPT” あたりを見ると良い感じ

その他は適宜

ここら辺をよしなに引っ張ってこれる君を

書いた

Testament

CPAN Testers Reports の結果に基いて

テストにコケている環境を再現してくれるツール

@ytnobody さんと共同開発

モジュールのメンテする時、テスト失敗している環境を再現する事がままある

そこら辺を自動化したいというモチベーション

こういう環境を仮想マシンとして再現してくれる

- OS の構築- 該当するバージョンの Perl をビルド

- OS の構築- 該当するバージョンの Perl をビルド

ここまでやる

現状、OS は- OpenBSD- NetBSD- FreeBSD

に対応

バックエンドは QEMU とVagrant (VirtualBox) に対応

ちょっとデモ

Patches Welcome!https://github.com/ytnobody/testament

CPAN Testers Reports 便利!

CPAN Testers Reports

有志の Tester の人がローカルの環境でテストして、その結果を送ってくれる事によって成り立っている。

CPAN Testers Reports

有志の Tester の人がローカルの環境でテストして、その結果を送ってくれる事によって成り立っている。

恩返しをしよう!

CPAN Testers Reports にレポートを送る

cpanm を利用している場合

cpanm を利用している場合

$ cpanm App::cpanminus::reporter$ cpanm-reporter --setup$ cpanm [--test-only] Foo::Bar$ cpanm-reporter

これだけ!

やってみる

ね、簡単でしょ?

こんな感じでCPAN Testers Reports は

素晴らしいシステムなのです

是非便利に使いたいですね!

Thank you “Birmingham.pm”!!

他にも「こんな便利な使い方があるよ」とかあったら教えて下さい!

番外編

Ukigumo を使ったCPAN Testers Reports 風仕立て

Ukigumo の説明

まー、CIサーバッス

とにかく出来そう

雰囲気としてはこんな感じ

課題

レポートをパーズしてよしなにパラメータとして

セットする部分

あと、文言が色々とおかしいのでマッチさせる必要有り

上手く行けば Perl 以外の言語にもエクスポートできるのではないか

という感じです

Ukigumo の域を超えているのでは

という感じです