MYMETA.yml ってどうすればいいの?
ちょっと前に、新しい CPAN モジュールを ship した関係で気づいたのですが、Perl 5.14 でモジュール作成すると、MYMETA.yml というファイルが生成されます。
と、いうか、5.14 というよりはどうやら ExtUtils::MakeMaker の 6.57 以降を使うと生成されるみたい*1。さらに、E::MM 6.57 はデベロッパリリースしか出ていないので、Perl 5.14 以外の環境だと、(明示的にデベロッパリリースを入れてなければ)たぶん META.yml が生成されないはずです。
で、何が困ったかというと、別の環境(5.8)でモジュールいじってみたら、MANIFEST と合わなくなっていてテストがこけたり*2、5.14 の環境でも、ShipIt 使おうとしたら、途中でエラーになって落っこったりします。MANIFEST.SKIP に MYMETA.yml を登録すると、とりあえずどちらの現象も回避できます。
ただ、長期的には、MYMETA.yml に tool chanin が対応していく方向性みたいなので、MANIFEST.SKIP でいいのかどうかはちょっと疑問だったりもします。*3
自分は MANIFEST もリポジトリに突っ込んでいるのですが、これが間違いという気もしなくもありません。でも、MANIFEST を git の管理下から外しても、ShipIt がコケる現象は変わらないしなぁ。。。*4
と、いうわけで、しばらくは MANIFEST.SKIP に登録してしのごうと思っているのですが、イマイチ納得できなかったのでした。