clason氏も人間
こんにちは。N本ノック34日目ですね。vim.packが出て自作プラグインマネージャーに関して色々検討している静カニです。
vim.pack登場といえば0.12、0.12といえばnvim-treesitterのサポート切り、nvim-treesitterといえばアーカイブされた件ですね。
nvim-treesitterの利用者の数はかなりのものです。ということでメモしておきます。
(NeoVimの設定楽しーとか言っている人のたわごとなので大して信頼できないので注意)
経緯
- 0.12に合わせて標準機能を使うようにしたりnvim-treesitter側も書き直す
- 0.12が正式に出たので当日に0.11のサポートを切る
- ユーザーが後方互換性をめっちゃ求めた結果心無い言葉を書いてしまう
- メンテナがブチ切れる
- アーカイブ
応急処置
アーカイブはされましたがrepoは残っていますし無論cloneも普通にできるのでひとまずは使って大丈夫そうっぽいです (0.12用にアプデする必要があることと私はまだ0.11.5にいるので未検証なことは留意)。
一応コミットは固定しとくといいと思います。 メンテナーがいなくなったリポジトリにウイルスでも仕込まれたらたまったものではありませんし。
また0.12前提のAPIが0.13になって動かなくなる可能性も十二分にあるのでそこも注意が必要です。
長期的な話
もう少し長い目で見た場合、この辺は検討しておかないといけないと思います。
- nvim-treesitterをこの先どうするか
- このような事例を今後起こさないために
nvim-treesitterをこの先どうするか
個別の対応として、nvim-treesitterをこの先どうするかという話があります。
nvim-treesitter依存(captureに依存)のプラグインは相当数あります。 例えばnvim-ts-autotagなんかですね。 こういったものが使えなくなると困るのでできれば他の方が引き継ぐことが私としてはありがたいです。
引き継ぐ方が現れなければ代替プラグインを探すことになると思います。 ただ雑に調べた感じ現在開発されているものはあまりなさそうでした。 そのためアーカイブされていてもnvim-treesitterを使い続けるか手動インストールからの登録になると思います。 (nvim-treesitterのforkを使って生きていけるようになる可能性もある)
このような事例を今後起こさないために
OSS界隈でメンテナが開発を止めてしまう事例は他にもあります。zinitなどです。
これらの原因は、「ユーザーのメンテナーへのリスペクトが足りずメンテナー側がキレた」ということにある程度集約できます。 つまり、我々ユーザー側がメンテナーへのリスペクトを払えば多少は防げたかもしれません。 (メンテナの燃えつきの場合もありますがリスペクトが足りなかったことが最後の一押しになったかも…)
また、全くメンテナをしたことがない人間が書くのも微妙ですが、メンテナ側の対策として思いついたものも書いておきます。
今回の場合メンテナーが一人が撤退しただけでrepoが止まってしまいました。 これは裏を返せばメンテナーがもう一人いれば止まらなかったかもしれないということです。 nvim-treesitterのメンテナンスには複数分野の知識が必要ですからメンテナンスできる人が少なかった可能性はありますが、 それでもコントリビューターの中には十分な知識を備えた方もいたのではないかと思います。
Linuxには最近(3ヶ月前らしい)conclave.rstがマージされたことが話題になっていました。 これを大規模なプラグインにも導入してみてはどうでしょうか。 もちろん実際に招集される人がどうなるかなどの問題はありますが、 明文化されていれば議論の前提が加わって引き継ぎが少しでもスムーズになると思います。
まとめ
メンテナーへのリスペクトをしっかり払うべし。例えば
- ポジティブなフィードバック
- スターつける
- 寄付する
- 修正しろではなく協力する
メンテナーもコードレビューボットではなく人間ですから頭の片隅に置いておきましょう。
