採用していたOSSの更新が止まってしまうこと、ありますよね。
こんなOSSを採用したのは誰だ?という犯人探しはさておき、選択肢の1つとして、フォークして(あるいはクローズドに)自分で開発を続ける、というものが有ります。
今回は、開発が止まった後も別のフォーク先で開発が続いているプロジェクトを探してみましょう。
手法や経緯は最後にまとめるのでとりあえず結果だけ。
気になるプロジェクトを適当に検索。ジャンル分けは趣味です。GitHubでずっと開発が続く栄光あるプロジェクトの裏には数々の屍がある、と気付かされます。
Example
boltdb/bolt
いろいろなところで使われていたboltdbですが現在ではアーカイブされています。etcd-io/bboltというプロジェクトに引き継がれたと公式に書かれています。
私が作った雑な検索プログラムで検索した結果、
- 本体の最終更新以降のコミット:34
- スター:1985
- 最終更新:4 days ago
まさに後継と呼べるプロジェクトです。
antonholmquist/jason
3年前に流行ったGoでjasonをゆるふわに扱う文脈で名前の上がるライブラリです。
言及されてるQiita記事(古め)
私が個人的事情で勝手に開発しているので動作確認がてら調べてみましょう。
- 検索結果:1件
- 本体の最終更新以降のコミット12
- スター:0
- 最終更新:今日
まあこんなもんでしょう。
アクティブなフォーク先をどういう条件で探しているの?
今回は3つの指標を利用しました。
- Issueを持っているか。
- 本体の最終更新以降にコミットがあるか。
IssueについてはGitHubの仕様を知らなければ混乱するかと思いますので書いておきます。
GitHubの仕様上、フォーク直後のリポジトリはIssue機能が無効になっています。
そのIssue機能をわざわざ有効にしてIssueをたてているということはメンテの意思がある、と判断しました。
以降検索結果(代表的なもの)
該当なし
- Masterminds/glide
- antirez/disque
該当はあるが最終更新がはるか昔
- golang/leveldb
- Microsoft/MS-DOS
- Russell91/sshrc
更新が行われていたもの
なし
(今の所)
現実は非情である
これを元に何が言いたいかと言うと、
- 体制のしっかりしていないOSSを軽い気持ちで採用すると更新が止まることがある
- 更新が止まった後、たくさんIssueやPRがあってもそれをまとめて復活させようとするプロジェクトはまれ
- 結局自分でメンテする羽目になる
- 外部OSS採用時には慎重になろう!
ざっくり言えばこんな感じです。
今回使ったプログラム:myfork
ソースが汚いのであんまり見ないでほしい系コードです。
その他
その後を知りたいリポジトリがありましたらコメントをください。