Cocona をアーカイブしました
Created at:
.NET 向けの CLI フレームワークライブラリーである Cocona というものを公開していましたが、今日リポジトリーをアーカイブしました。つまり事実上のライブラリープロジェクトのクローズです。
このリポジトリーの Star 数は 3.5k Stars となっていたので Star 数としては個人的にはかなりのものでしたし、自分の欲しい機能を持っていたことや、使ってますよという声もいただいていたのでもったいない/申し訳ないという気持ちでいっぱいなのですが、それはそれとして不健全な状態が続いていたのでいったん区切りをつけることにしました。
やりたいことはいろいろあったのでいつか気まぐれで Unarchive するかもしれませんが。
代替
Cysharp から Source Generator ベースの ConsoleAppFramework という CLI ライブラリーがリリースされていますので今後新たにアプリを作ったりする場合にはこちらをお勧めします。
アーカイブに至った背景
アーカイブすることにした背景は単純で、モチベーションを維持して更新できなくなったということです。その結果 Issue や Pull request を長いこと放置した状態となっていて、不誠実極まりない状態になっていました。
一度たまり始めた Issue や Pull request が熟成すると、さらに開きたくなくなるという負のループが回るもので蓋を閉じたままどんどん熟成していきました。ですが心の奥にはなんとかしないと…という気持ちもあり、無限に小骨が刺さっているような感じでこれもまた気持ちに悪影響がある状態が長期間続いていました。
というわけで何もアクションをしないないままというのも全方位よくないので思い切ってアーカイブするに至りました。
モチベーションを失った背景
そもそもモチベーションを失ったのは何故かという話もあるのですが、これも結構単純な話で自分のために作ったようなものだけれど使う機会がなかったというところにあります。
先に書いた通り Cysharp では CLI フレームワークの ConsoleAppFramework というものを提供しているのですが Cysharp は自分の雇用主という関係があります。
そうなると Cysharp での仕事をしている中で Cocona を使うということは難しい、まあ難しいといっても使うなと言われているわけではないので個人的に勝手に気を使っている形なのですが、Cysharp のライブラリーを広める必要があるという点でねじれが起きるのは実際望ましくないと思っています。似たようなものが乱立するような大企業ならまだしも。(例えば「Cysharp では ConsoleAppFramework というライブラリを提供していますが、個人的に Cocona というのを作っていてこっちも便利でオススメですよ!」とはやはり言いにくい)
そんなわけで自分が使いたくなるシチュエーションでは使うことができず、かといって趣味で作るツールに CLI ツールはない (というかそんな真面目にコマンドラインを処理する必要がない) ので出番がなかったというわけです。
またこれは完全な趣味プロジェクトだったので業務時間中に開発される ConsoleAppFramework に対して、趣味の時間を割いて使わないライブラリーをメンテするという現実をダイレクトに見ることになったのもなかなか気を揉むところでした。(特に ConsoleAppFramework は大規模に書き換わり v5 で AOT セーフやパフォーマンスとかガラッと変わったので、それに追いつくには空き時間を大量に割く必要がある)
ConsoleAppFramework のほうが先発だったので、結局これはとても近いところで開発されている同じ領域をカバーするライブラリーにぶつかっていったのがそもそも悪いとしか言いようがないですね。なるべくしてなった結末かもしれません。
最後に
このライブラリーを見つけて、採用していただいた方々に大変感謝しています。ありがとうございました。
オープンソースのライブラリーを個人でメンテし続けている人はえらい…。