くりにっき

フルスタックキュアエンジニアです

僕がOSS導入時に気にしてること

前置き

  • 社のesaに投下したものの反応が薄くて寂しいので全体公開
  • 他人が作ったOSSを使うにあたって、もしあまりメンテされないOSSを使うと結局別のOSSに乗り換える必要があっておつらいので、僕がどんな観点でOSSを選択してるのかをまとめました
  • あくまで僕が見ている観点なので異論は認める

観点

GitHubやGitLabなどのリポジトリの場合

  • Star数
    • 多ければ多いほどいい
  • 放置されてるIssueやPRの数
    • 少なければ少ない方がいい
    • オープンになってるPRがたくさんあってもちゃんとレビューされてマージされてるのであればいいんだけど、放置されてるとヤバい
    • もしこの手のOSSを導入する時は最悪自分でforkしてメンテし続ける覚悟が必要(経験者談)
  • masterブランチやdevelopブランチの最終コミット日時
    • 最終コミットが1年以上前とかだとPR投げても依存ライブラリとかの関係でCIコケることがあるので要注意
  • 定期的にリリースされているかどうか
    • 最終tagとmasterの差分コミット数で見る
    • 小規模なライブラリであればPRマージして即リリースしてくれると嬉しい
  • CIのバッジ
    • ずっとビルドがコケてると誰も見てなくてメンテされてない可能性が高い

https://rubygems.org/

  • gemのDL数

https://hub.docker.com/

  • イメージのstar数やpull数やtag数
  • latestタグの作成日時
  • 定期的にビルドされてるかどうか
    • 手動でも自動でもいいんだけど定期的にイメージがビルドされてないと不安
      • 自分がCIで全自動dockerイメージリリースしてるだけに特にそう思う *1
    • 企業や公式がメンテしているイメージはそうでもないんだけど、個人がメンテしてるイメージは使い捨てが多くてGitHubに比べて全体的に質が悪い印象
      • なので、余計にオレオレイメージを作るしかないんだよなあという負の連鎖...