-
Notifications
You must be signed in to change notification settings - Fork 198
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
異なるバージョンのPoetryによる操作を防ぎたい #750
Comments
詳細なissueありがとうございます!! 人はどうしてもミスをしてしまうので、機械がミスを検知するのが良さそうに感じました。
が妥当な感じがします。 voicevox_engine/.github/workflows/test.yml Lines 42 to 56 in 10ac2f5
この辺りに追加で、 |
の実装を真似て↓のようにすると良さそうかもです!
結構タスク的に簡単で、Github Actionsの練習にもなる気がするので、要議論を外して初心者歓迎タスクラベルをつけようかなと思います! |
内容
#710 に関連して、一応調べたのでメモとして残しておく、くらいのIssueです。
VOICEVOX ENGINEのライブラリ管理にはPoetryが使われており、
poetry.lock
でPoetryのバージョンが固定されていますが、開発者の環境やPoetryの使い方によって、異なるバージョンのPoetryが使われる場合があります。
この状況では、Poetryの更新で
poetry.lock
のフォーマットが変わった場合に、項目の削除やバージョン文字列の更新に伴い、poetry.lock
に不要な差分が生じる問題が起きます。不要な差分が生じないように、
poetry.lock
に固定されたバージョンと異なるバージョンのPoetryによる操作を防ぎたいです。Pros 良くなる点
Cons 悪くなる点
実現方法
poetry
コマンド実行時にPython仮想環境で実行するように案内するpoetry
コマンドをpoetry run poetry
に置き換えるpoetry.lock
について、生成したPoetryバージョンを検証するCIを追加するVOICEVOXのバージョン
0.15 開発版
その他
発生する状況
VOICEVOX ENGINEリポジトリにおいて、システムにPoetryをインストールした上で
poetry install
を実行すると、Poetryが作るPython仮想環境に、固定されたバージョンのPoetryがインストールされます。
ここで、Python仮想環境に入って(
poetry env use
または.venv/bin/activate
またはpoetry run poetry
)Poetryを操作すると、Python仮想環境内のPoetryが使用されます。しかし、Python仮想環境に入らずにPoetryを操作すると、システムにインストールしたPoetry(PATHが通ったPoetry)が使用されます。
このとき、システムにインストールしたPoetryのバージョンと、VOICEVOX ENGINEが固定している(Python仮想環境内の)Poetryのバージョンとが異なる場合、固定されたバージョンのPoetryが使用されない問題が起きます。
発生例
例えば、以下のPRは番号順にマージされていますが、
poetry.lock
の内容はいずれもPoetry 1.6.1に固定されている一方で、それぞれ異なるバージョンのPoetryで
poetry.lock
が更新され、不要な差分が生じています。バージョンを指定してPoetryをインストールするコマンド
Windows(Powershell)の場合
Linux/macOSの場合
関連Issue
The text was updated successfully, but these errors were encountered: