Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0.17以降?] 各言語ごとにバージョニングする #981

Open
3 tasks done
qryxip opened this issue Feb 7, 2025 · 1 comment
Open
3 tasks done

[0.17以降?] 各言語ごとにバージョニングする #981

qryxip opened this issue Feb 7, 2025 · 1 comment

Comments

@qryxip
Copy link
Member

qryxip commented Feb 7, 2025

内容

題の通りで、Rust APIにはRust APIの、C APIには C APIの、Python APIにはPython APIのバージョンを割り振ります。

ただしやるのはv0.17よりは後になることになると思います。何故なら0.16を出したらまたあらゆる破壊的変更を入れたくなり、そう遠くないうちに全言語の0.17が出ることが容易に想像できるからです。

Pros 良くなる点

  • 「破壊的変更を生じさせるかどうか」が足枷になることを軽減できる

Cons 悪くなる点

  • 「VOICEVOX COREのリリース」というものが外からわかりにくくなる (後述する通りbuild versionを含めることで軽減可能?)
    • 宣伝もしにくいかもしれない (「CORE v0.18リリース!」とは言いにくいため)

実現方法

build_and_deployを適切に分割すればこれは可能だと思います。

タグの付け方については一般的なパターンだとrust-0.17.1python-0.17.1のようになると思います。SemVerの<build>を使ってpython-0.17.1+0.17.1とかにするのもありかもしれません。ただしRust APIを「基準」とすることにはなります。

VOICEVOXのバージョン

0.17.0以降

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

以上の話をどっかでしたような気がしたのですが、見つかりませんでした…

@Hiroshiba
Copy link
Member

Hiroshiba commented Feb 7, 2025

言語 バージョンとかで検索した感じ、覚えていた議論はこれかも?

どうバージョンを分けるかはさておいて、バージョンが同期しないことは全然あり得ると思うので、バージョンは別れていく前提に考えるのはありだと思います!
宣伝やメンテナンスのしやすさ、書かれたユーザー記事を別言語に置き換えて捉えられるなども考えると、バージョンはなるべく揃えるべきだとも考えます。

希望としては少なくともメジャーバージョンは揃えたみ。
その次のバージョン(0.A.BのB)もできれば揃えたみ。マイナーバージョンで破壊的ではない重要な機能を追加することもありそうなので。

言語別にprefixをつけ、メジャー・マイナー・パッチはRust APIに合わせて、その後ろのバージョンをリリース回数でインクリメントするとかできないですかね。
python-0.X.Ypython-0.X.Y+1python-0.X.Y+2とか。
あるいは0.X.Y.Zとか。(これはsemver的に非合法だった記憶)

あーでもこれはその言語内で破壊的変更をしたくなったときに困るか・・・。
ま、まあそんなことはめったに起こらない・・・・・・・・?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants