-
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 1.5に更新する #710
Poetry 1.5に更新する #710
Conversation
差分わかりやすくて助かります!! 実はpoetryのバージョン管理はrequirements-dev で行われてます。 voicevox_engine/pyproject.toml Line 65 in 3974766
ここ更新すればreadmeでの案内は省けるかな?と思いました。(更新後にreadme更新を忘れちゃいそうなので…) |
ありがとうございます! 気づいてませんでした! Poetry導入時 #535 (comment) からバージョン指定がありましたね。 Poetry 1.4.2の環境で、 $ poetry --version
Poetry (version 1.4.2)
$ poetry install
Creating virtualenv voicevox-engine in ****\voicevox_engine\.venv
Installing dependencies from lock file
Warning: poetry.lock is not consistent with pyproject.toml. You may be getting improper dependencies. Run `poetry lock [--no-update]` to fix it.
Because voicevox-engine depends on poetry (^1.5.1,>=1.5) which doesn't match any versions, version solving failed. |
あ、 #710 (comment) のエラーは |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
更新ありがとうございます!!
1点だけコメントしました!
@@ -62,7 +62,7 @@ pyinstaller = "^5.6,<5.7.0" # NOTE: 5.7.0 or higher will fail to build the bootl | |||
pre-commit = "^2.16.0" | |||
atomicwrites = "^1.4.0" | |||
colorama = "^0.4.4" | |||
poetry = "^1.3.1" | |||
poetry = "^1.5.1,>=1.5" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
,>=1.5
の意図はなんでしょうか 👀
あってもなくても良いなら周りに合わせた方が好ましそうです!
poetry = "^1.5.1,>=1.5" | |
poetry = "^1.5.1" |
(PRの範囲に関係ないのですが、そもそも範囲指定じゃなく単一バージョンに固定したほうが確実かも?とかちょっと思いました!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
開発者がPoetryを使った操作をするときに、Poetry 1.4以下を使わないようにするためですが、あんまり意味はないかもです。
バージョン1.5.x
を使ってほしい場合には、~1.5.1
のように1.5 <= version < 1.6
を指定できます。
^1.5.1
の場合、1.0 <= version < 2.0
になります。
以前の指定では、1.0 <= version < 2.0
だったので、1.5 <= version < 2.0
に範囲を狭めました。
ちなみに、開発者がシステムにPoetryをインストールしている場合、pyproject.toml
やpoetry.lock
に含まれるPoetryバージョンには制限を受けなさそうです。
これらが管理するのは、poetry install
やpip install -r requirements-dev.txt
で(venvに)インストールされるPoetryのバージョンで、開発者がvenvのPoetryを操作に使わなかった場合には影響しないと思います。
pyproject.toml
を見た開発者に、このバージョンを使ってほしいという意図を伝えることはできるかもですが、操作時にエラーを出すような形で固定できるわけではないと思います。
poetry install
して(システムの)Poetryが作成した仮想環境に入れば、venvのPoetry(poetry.lock
で管理されたバージョンのPoetry)が使われるようになるようなので、Poetry 1.5以上を使われやすくする効果はあると思います。
すでにmasterブランチ@10ac2f5(の このPRが止まっていたのは、Poetry自体のバージョンをリポジトリ側で確実に固定する方法について詳細を調べようとしていた点があり、 一応Issue化だけしておきました。 |
すみません、コメントを返していなかったことに今気づきました 🙇 グローバルのpoetryが使われて変なロックファイルが出来上がり得るのはちょっと何とかしたいなと感じました! |
内容
2023年5月にPoetry 1.5がリリースされました(リリースノート)。
Poetry 1.4と1.5ではlockファイルに差分が生じるため、その更新をします。
更新コマンド
差分の説明:
poetry.lock
からのcategory
の削除Poetry 1.5で
poetry.lock
から、未使用のフィールドcategory
が削除されました(poetry add --dev pytest
のような指定をしていたバージョンの名残だと思います)。pyproject.toml
にはgroup
が残っており、poetry add --group dev pytest
のような指定は変わらず使えます。未解決の課題: Poetryのバージョンを固定する
Poetryの機能としては、Poetryのバージョン固定は未実装のようです。
未解決の課題: リビジョンによってpoetry.lockの1行目に差分が生じてしまう
PR作成時点でPoetry最新安定版の1.5.1を使って
poetry.lock
の更新をしましたが、1行目にPoetryのバージョンが書き込まれるようになったようです。開発者によって異なるリビジョンを使っていると、パッケージを変更するPRのたびに1行目に差分が生じてしまいます。
テンプレートやドキュメントで、PR作成時点で最新のPoetryを使っているかを確認することができるといいかもしれません。
関連 Issue
スクリーンショット・動画など
その他