Time::Piece::MySQL が carton で上手く扱えない件
例えば
requires 'Time::Piece', '>= 1.21'; requires 'Time::Piece::MySQL';
のような cpanfile を書いた場合 cpanfile.snapshot は以下のようになる。
# carton snapshot format: version 1.0 DISTRIBUTIONS Time-Piece-1.23 pathname: R/RJ/RJBS/Time-Piece-1.23.tar.gz provides: Time::Piece 1.23 Time::Seconds 1.23 requirements: Exporter 5.57 ExtUtils::MakeMaker 0 Time-Piece-MySQL-0.06 pathname: K/KA/KASEI/Time-Piece-MySQL-0.06.tar.gz provides: Time::Piece 0.06 Time::Piece::MySQL 0.06 requirements: ExtUtils::MakeMaker 0 Test::More 0.47 Time::Piece 1.03
見ると、 Time::Piece::MySQL の provides に Time::Piece 0.06 がある。これは lib/Time/Piece/MySQL.pm - metacpan.org - Perl programming language のように書いてしまっているのが原因ぽい。
carton install --deployment
などした時に先に Time::Piece::MySQL が実行されると
Searching Time::Piece on mirror index /path/to/dir/local/cache/modules/02packages.details.txt Already tried Time-Piece-MySQL-0.06. Skipping. -> FAIL Installing the dependencies failed: Installed version (1.20_01) of Time::Piece is not in range '1.21'
となる。ちゃんと no_index は指定するようにしたり pause に index されないように改行したりしたいですね。
妥協案
extlib とかに入れるしかないのだろうか ............
書き忘れ
作者の方に no_index に TIme::Piece を追加してくれないかということはメールはしました。