Нужно ли проверять файлы Стихотворение?

Я использую poetry.lock файл как источник правды в моей цепочке сборки, поэтому я хотел бы быть уверен, что он всегда надежен. Или, другими словами, учитывая, что ни одна из моих зависимостей не выпустила новые версии, будет ли добавление и удаление зависимостей накапливать ненужные артефакты в файле блокировки?

В частности, после удаления зависимостей я иногда удаляю файл блокировки и заново генерирую его с poetry lock в качестве меры предосторожности, но заметил, что результат всегда был идентичен тому, который я только что удалил. Это было просто случайно, или это гарантированное поведение?

2 ответа

Это не гарантированное поведение. Например, в одном из наших проектов в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.

Различия в поэзии часто трудно понять, и с этим мало что можно поделать.

Чтобы проверить изменения моих зависимостей и отслеживать все изменения, я написал действие Github, которое будет публиковать хорошо читаемую сводку всех изменений из поэтического файла.lock в ваши запросы на включение. Возможно, вам это будет полезно: https://github.com/marketplace/actions/diff-poetry-lock .

Другие вопросы по тегам