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

Pythonライブラリはpydanticの依存を外すか、超広範囲なバージョンを受け入れられるように変更したほうが良いかも #960

Open
3 tasks
Hiroshiba opened this issue Jan 31, 2025 · 1 comment
Labels
機能向上 要議論 実行する前に議論が必要そうなもの

Comments

@Hiroshiba
Copy link
Member

Hiroshiba commented Jan 31, 2025

内容

Pythonはデフォルトのパッケージ管理ライブラリが、パッケージが依存するパッケージのバージョンを複数持つことができません。
なのでPythonライブラリを提供する場合は、依存ライブラリに気を使い、混在できるライブラリをできる限り広くするのが城跡です。

Python版voicevox_coreはpydanticに依存していますが、受け入れられるバージョンがかなり限定的になっています。
(今のmainブランチだと>=2.5.2,<3で、2.5.2は今から1年3ヶ月前の2023年11月22日
(同じく依存しているPyhton3.10は、3.10.0のリリース日が2021年10月4日

たしか少なくとも2年だか3年だかの範囲は対応したい、みたいな話なので、受け入れられるpydanticのバージョンをもっと広くしないとな気がしました。
いっそのこと失くすのも手だと思いますが、バリデーション・シリアライズの自作をどこまでやるか次第だと思います。

Pros 良くなる点

Cons 悪くなる点

実現方法

VOICEVOXのバージョン

0.?.0

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

  • Windows
  • macOS
  • Linux

その他

こちらのコメントをいただいて課題に気づきました、ありがとうございます!

個人的には、Pydanticがやってる処理のうちシリアライズはRust側からAPIを提供するから考えなくて良くて、バリデーションだけならかなり広範囲のバージョンを使えるから依存しても良い気がしています。

@Hiroshiba Hiroshiba added 機能向上 要議論 実行する前に議論が必要そうなもの labels Jan 31, 2025
@Hiroshiba
Copy link
Member Author

Hiroshiba commented Jan 31, 2025

個人的には、0.16時点ではpydanticのバージョンがかなり狭くても良いかなと思ってます。
もちろんできればもっと広くしたいけど、プルリク5つほどかかるくらいなら先に0.16出したほうが良いはず。

エンジンのjsonに合わせるためにpydanticのシリアライズをうまいこと使う部分がpydanticのバージョンを狭めているのであれば、0.16時点でパージしちゃうのが良いのではと考えています。(せっかく実装いただいたので心苦しいですが。。。)
この場合、0.16時点でのPythonライブラリはシリアライズは正式には未対応、という形になるかなと。
速攻で実装して0.17でリリースしましょう!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
機能向上 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

1 participant