twitter上でいろいろ会話したけど忘れるとあれなので、残しておく。
carton bundle で mirror を作る運用にすると carton install で snapshot を update した時に必ず実行するようにしないと辛そう。
— soh335 (@soh335) 2013年10月11日
@soh335 多分setup用スクリプトでその辺りをラップする必要がある。bundle使わなくていい運用の方が多分筋が良さそうな気はする
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 全く同じ環境に deploy 出来ないなら bundle して後 jenkins で Carton::Builder::bundle を流量して snapshot と vendor/cache の差分がないか調べるのが安全のように見える。
— soh335 (@soh335) 2013年10月11日
@shiba_yu36 で deploy される側で vendor/bin/carton install --cached かなーと思っております。
— soh335 (@soh335) 2013年10月11日
@soh335 なるほど、たしかにそういうのよさそう。違いがないことをテストしておくと安心ですね
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@soh335 そうですね。そういえばfatpackされたcartonは手元のcpanmのバージョンが使われそうに見えたので、複数人で開発するとき注意が必要かもしれない
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 fatpack したのを見たら App::cpanminus もされてるようだけど xs なのがあって $fatpacked{"darwin-2level/JSON/XS/Boolean.pm"} っていう感じなので別環境だと動かないかもしれない……..
— soh335 (@soh335) 2013年10月11日
@soh335 むずかしい、、、、、
— 柴崎優季 (@shiba_yu36) 2013年10月11日
carton pure perl かと思ってたけど現実はそう甘くなかった............
— soh335 (@soh335) 2013年10月11日
@soh335 とりあえず手元でfatpackしたものでjenkinsでテスト全部通るところまで行ったけど、何に使われてるんだろう
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 site_perl の xs が使われてるのでは
— soh335 (@soh335) 2013年10月11日
@soh335 なるほど
— 柴崎優季 (@shiba_yu36) 2013年10月11日
fatbackの中にdarwin-2level系のやつが入ってしまった時どういう風になるのか分からない
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 not supposed to work.
— Tatsuhiko Miyagawa (@miyagawa) 2013年10月11日
@miyagawa then, should I use cpan-module-bootstrap rather than fatpacked carton?
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 Carton::Packer has a workaround to rescue File::Spec in there.
— Tatsuhiko Miyagawa (@miyagawa) 2013年10月11日
@shiba_yu36 what else do you have in arch path?
— Tatsuhiko Miyagawa (@miyagawa) 2013年10月11日
@miyagawa I found following under darwin-2level. Class::XSAccessor.pm, JSON::XS, Sub::Name, common::sense.
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 i guess they're optional
— Tatsuhiko Miyagawa (@miyagawa) 2013年10月11日
@miyagawa oh, good. Thanks to reply.
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@soh335 https://t.co/WQiYKda8ge 共有します
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 ありがとうございます。optional ってことはあっても問題なしってことかな
— soh335 (@soh335) 2013年10月11日
@soh335 問題ない気がする?? その辺りの挙動全然詳しくないので違うかも...
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 うーむ……………
— soh335 (@soh335) 2013年10月11日
@soh335 別のarchの環境だとdarwin-2levelに入っててもモジュールが見えないような気がする。なのでオプショナルなモジュールが必要な機能を使わなければ問題ない??
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 その機能がどれか探すのは厳しい感じする………..
— soh335 (@soh335) 2013年10月11日
@soh335 Carton内で利用されていないか探すということ?
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 そう。
— soh335 (@soh335) 2013年10月11日
@soh335 確かに完全にちゃんと動くことを保証するならcpan-module-bootstrap的なののほうがいいかもしれないですね
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 なるほど。
— soh335 (@soh335) 2013年10月11日
@soh335 fatpackにしたいのは、簡単にアップデートしたい、他のプロジェクトと同じホストの場合に分けてcartonを入れたい、の二つを満たしたいだけだから、chefとかcpan-module-bootstrapでやれるしそっちのほうが安心かもしれない
— 柴崎優季 (@shiba_yu36) 2013年10月11日
@shiba_yu36 そうね。 global なとろに module が入るけど carton exec -- してれば local 下のが使われるし、そこもちゃんと独立しなきゃ!!ってならないならそれでいいかなーと思ってる。
— soh335 (@soh335) 2013年10月11日
Time::Piece::MySQL の package Time::Piece してるの改行しないと厳しい ..........
— soh335 (@soh335) 2013年10月11日
@shiba_yu36 they're optional as in they're not used when it can't be loaded (with pure perl fallback). so there's no problem I see
— Tatsuhiko Miyagawa (@miyagawa) 2013年10月11日
@miyagawa well, I will use fatpacked carton on trial!
— 柴崎優季 (@shiba_yu36) 2013年10月11日