前置き
- 社の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タグの作成日時
- 定期的にビルドされてるかどうか
共通 (2019/12/29 11:30追記)
2019/12/29 11:30ブコメレス
ライセンス気にしないのかな…
まずライセンスでは?コピーレフトだと最悪なこになる
GPL汚染とか怖くないのかな?
重箱の隅をつつくような細かい指摘ありがとうございます!
そもそもの発端が「死なないOSSを見極めるの難しいっすよね〜(なので活発にメンテされてるOSSを選ぶべき)」っていう社内での会話から雑に書き殴っただけなので、適切なライセンスが設定されてるか見るのは当たり前すぎて意識していなかったので追記しました。