つらくない構成管理

複数のプロジェクトを横断して使われるモジュールとかそういうかんじの単位のものをどう扱うか、というはなしについて、僕もいろいろ思うところがあっていろいろ考えたりもしている。

  • 更新が楽
  • VCS (Git) と相性がよい
  • 重複しない

「みなさ〜〜〜ん更新してくださ〜〜〜〜い」と必死で声をかけるのはつらいし、できればコマンド一発でどうにかしたい。その点、Git submodule はたいへん扱いづらい。

また、VCS との相性も重要で特に分散型 VCS を使っている場合、頻繁にブランチは切られてマージされるため、衝突解決もろもろがめんどうな手法だとつらい。その点、Git submodule はたいへん扱いづらい。

重複しない、というのは修正は一箇所で済むように、ということ。要するにコピペはしたくない。

で、RubyGems の source を自前で立てる、というのはどうか。つまり gem として管理するので Bundler とかで普通に管理できる。が、ホストするのは自前なので、公開する必要はない。いかんともしがたい理由で公開できないようなモジュールとか、やむをえず fork したけど還元できるような patch をあてているわけではない、とか、そういうものとうまく共存できるのではないか。

べつに Ruby の文化圏に限ったはなしでなくて、たとえば OrePAN がそういったことができるようにみえる。