我在我的构建链中使用该poetry.lock
文件作为真相的来源,所以我想确保它始终可靠。或者换句话说,鉴于我的依赖项都没有发布新版本,添加和删除依赖项会在锁定文件中累积不必要的工件吗?
特别是,在删除依赖项后,我有时会删除锁定文件并重新生成它poetry lock
作为一种警示措施,但注意到结果始终与我刚刚删除的结果相同。这仅仅是偶然,还是有保证的行为?
我在我的构建链中使用该poetry.lock
文件作为真相的来源,所以我想确保它始终可靠。或者换句话说,鉴于我的依赖项都没有发布新版本,添加和删除依赖项会在锁定文件中累积不必要的工件吗?
特别是,在删除依赖项后,我有时会删除锁定文件并重新生成它poetry lock
作为一种警示措施,但注意到结果始终与我刚刚删除的结果相同。这仅仅是偶然,还是有保证的行为?
这不是保证的行为。例如,在我们的一个项目中,我们有以下内容pyproject.toml
:
[tool.poetry.dependencies]
django-storages = {version = "1.7.1",extras = ["boto3"]}
当我poetry lock
现在在这个项目上运行时,生成的差异如下所示,因为我们只指定了django-storages
我们想要的版本,但没有指定boto3
应该使用的版本:
diff --git a/poetry.lock b/poetry.lock
index 6d542df..0ec8d23 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -77,10 +77,10 @@ marker = "extra == \"boto3\""
name = "boto3"
optional = false
python-versions = "*"
-version = "1.9.189"
+version = "1.9.191"
[package.dependencies]
-botocore = ">=1.12.189,<1.13.0"
+botocore = ">=1.12.191,<1.13.0"
jmespath = ">=0.7.1,<1.0.0"
s3transfer = ">=0.2.0,<0.3.0"
@@ -91,7 +91,7 @@ marker = "extra == \"boto3\""
name = "botocore"
optional = false
python-versions = "*"
-version = "1.12.189"
+version = "1.12.191"
[package.dependencies]
docutils = ">=0.10"
@@ -359,8 +359,8 @@ category = "main"
description = "Docutils -- Python Documentation Utilities"
name = "docutils"
optional = false
-python-versions = "*"
-version = "0.14"
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+version = "0.15.1"
[[package]]
category = "main"
任何未指定的内容pyproject.toml
都将在您运行时更新poetry lock
。