vital.vim
vital.vim copied to clipboard
Where to place experimental changes
Lingrにて、「devブランチがある方がよいのではないか」「ホイホイpullreqマージしちゃって大丈夫なのか」という議論がありました。
僕の意見は「devブランチ不要。実験的新機能はExperimental. namespace以下に配置。実験的な既存モジュールの書き換えはそのたびにtopic branchをつくる」です。
一般に、devブランチがある方がよいのは、masterブランチが常に安定している必然性があるプロジェクトです。vitalの場合は比較的masterブランチの新規不安定moduleの追加に関しては緩やかでよい、というのが僕の意見です。新しいmoduleが入っても、vitalを利用してるプラギンがVitalizeで利用中moduleをアップデートしたところで、なにも壊れないからです。
masterブランチにある新しいmoduleを試してみようというとき、そのmoduleに高い安定性を期待するかしないか。vital開発者側の立場としては「どの程度期待するかは自己判断でお願いします」で良いと思います。というのも、安定度を高めるためには実際にプラギンから使った上でフィードバックをもらうのが不可欠だと考えるからです。vitalでプラギンに利用可能にすることが、安定度を高めるよりも重要だと思います。
TODO: 汎用目的のdevブランチを作るのと、特定module(複数の場合も)の実験的な大幅な改変のためにtopicブランチを作るのの違いについて、反論があれば僕の意見もここにまとめる
ちょっと issues の趣旨から外れるかもしれませんが、vital.vim の開発スタイルとしては 『仕様が固まっていない実験的なコード(モジュール)でもどんどん取り込もう』 というような感じなのでしょうか。 ここら辺の方向性がわたしはわかっていないので一度確認しておきたいです。
安定度を高めるためには実際にプラギンから使った上でフィードバックをもらうのが不可欠だと考えるからです。
これはわたしも同意です。 dev ブランチ切っても使用する人が少なければその分フィードバックが少ないと思うので。 あと新しいモジュールに関してはある程度形になってから(最低限テストとドキュメントが完備されている状態で)組み込んだ方がよいとは思います。 この場合だとテストやドキュメントがない状態が改善されるので使用する側としても安心感があると思います。 わたしの理想としては、外部モジュールとして開発して、問題がなければ本体へ組み込む、という流れでしょうか。 とりあえず、わたしが今現在気になっているのはこの辺りですかね。
『仕様が固まっていない実験的なコード(モジュール)でもどんどん取り込もう』
Experimental以下 (例: Experimental.Functor) なら、どんどん本家に取り込んでいく、で良いと思います。それによる害がほとんどないので。
で、Experimentalではないnamespaceに移動するときには、specとdocを義務付ける、でどうでしょう。
(余談ながらExperimentalでないnamespace以下にたくさんnospecかつnodocなmoduleがあります。僕も犯人なのでやばい)
外部モジュール
あまりに(自分が作ろうとしてる)アプリケーション寄りで、汎用性度が低いかな、みたいなのの用途を想定してました。基本的には本家にがんがん取り込んでいくのが良いかなと思ってます。vitalのrepositoryが大きくなることで困ることがあまりないので。
Experimental以下 (例: Experimental.Functor) なら、どんどん本家に取り込んでいく、で良いと思います。それによる害がほとんどないので。
外部モジュールが実装されれば『わざわざ本家に Experimental を用意する必要もないのではないか』とも思いますね。
で、Experimentalではないnamespaceに移動するときには、specとdocを義務付ける、でどうでしょう。
これは賛成です。
(余談ながらExperimentalでないnamespace以下にたくさんnospecかつnodocなmoduleがあります。僕も犯人なのでやばい)
逆にいうと spec と doc がないモジュールは全て Experimental へ移動するべきですかね…。 この辺りは期限を決めて一度整理するとよいかもしれませんね。 あと Experimental、もしくは外部モジュールを vital.vim 本体で使用する場合はどうするのがよいかな。
逆にいうと spec と doc がないモジュールは全て Experimental へ移動するべきですかね…。 この辺りは期限を決めて一度整理するとよいかもしれませんね。
やりましょう! これはこれ単独で別issue立ててほしいです。
Specに関してですが、今後のSpecをどうするかも問題になると思います。 thincaさんがテストモジュールを作成すると言っていましたが、音沙汰なく……。
とりあえず、立てておきました。