yokohama pm に行ってきた

昨日行われた yokoyama pm にいってきた。

発表はもちろんすばらしかったが、それよりも ytnobody さんからとても有益な話が聞けたので、 メモっておきたい。

僕は社内でひとりさみしくPerlを書いていて、 GHE に置いているモジュールをどう使うかで悩んでいた。 現状、Carton の dev 版を入れ cpanfile に git url を指定しているが

  • update がちょっと面倒
  • META.json を用意していないモジュールはインストールできない
  • 細かいが requires MODULE, git => URL の形でかけない (間に VERSION が必要)

などの問題がある。何より dev 版を使い続けるのに気が引けていた。

それを ytnobody さんに話したら、ytnobody さんのところでは git submodule で依存するモジュールを入れそれに symlink を張って管理しているのだという。

おそらく下記のような感じ。

https://github.com/shoichikaji/MyApp

> amon2-setup.pl MyApp
> cd MyApp
> mkdir module
> git submodule add https://github.com/shoichikaji/Amon2-Plugin-Web-Text.git module/Amon2-Plugin-Web-Text
> mkdir -p lib/Amon2/Plugin/Web
> cd lib/Amon2/Plugin/Web
> ln -s ln -s ../../../../module/Amon2-Plugin-Web-Text/lib/Amon2/Plugin/Web/Text.pm .

すばらしい!特にモジュールのアップデートが簡単だし、META.json がないものも取り込める。 来週からはこの方法で管理していこう。

そういえば tokuhirom さんのブログ

git submodule で github においてあるモジュールをインストールしようとしてた

なる文言があったが、なるほどこれのことだったらしい。わかっている人には常識なのかもしれない。