Madogiwa Blog

主に技術系の学習メモに使っていきます。

あなたの知ってるRubyGemsTipsというイベントでGemの依存関係まわりの話でLTしました💎

先日下記のイベントでLT登壇してきました。
(LTでイベント登壇するのは初めてだったので実績解除した🏆)

connpass.com

資料はこちら💎

speakerdeck.com

内容は、bundle gemでGemを作ったときに依存するgemをGemfilegemspecどっちに書くか的な話でした。

最終的な結論としては、下記のような形で発表しました。

  • RUNTIME依存性(実行時に依存するGem): 依存性解決時にGemfileが参照されないのでgemspecに書く
  • DEVELOP依存性(開発時に依存するGem): いろんな考え方があるけどGemfileに書いたほうが良さそう

RUNTIME依存性に関しては、一応事前にrubygemsのコードを読んでなんとなくinstall時の依存周りの解決方法を理解していた気になっていたのですが、最後までちゃんと理解できておらず自信なかったので概要だけさらっと話すだけになってしまいましたが、コードリーディングのメモはこちら📝

madogiwa0124.hatenablog.com

DEVELOP依存性については色々な考え方があるようですが、bundlerにbundle gem時の開発系のgemのデフォルトの記載先がgemspecadd_development_dependencyからGemfileに変わったようなので、今後はGemfile側に記載するのが主流になるのかなと思いました。

github.com

ですが、登壇中にタイムリーに投稿頂いた下記の記事にもある通り考え方次第だと思うので自分の使いやすいように使い分けるのが良さそうですね😅

結論という結論は特になく、現状だと Gemfile でしか指定できないことは Gemfile をもちいて行うしかなく、あとは考え方次第のスタイルという感じではないだろうかと理解している。

koic.hatenablog.com

今回、自分で普段Gemを作るときに軽く疑問に思ったことをテーマに決めたのですが、bundlerの中でそれに関するコミットが検討中にマージされたり、Rubyコミュニティで話題に上がってたテーマだったりと色々とタイムリーで昨今のRubyGems周りの流れも知れたので色々と勉強になってよかったなぁと思いました。

参加頂いた方、いろいろとアドバイスを頂いた方、ありがとうありがとうございました🙇‍♂️