05.01.2021       Выпуск 368 (04.01.2021 - 10.01.2021)       Статьи

Использование django-version-checks

В этом руководстве рассмотрим установку и использование простой библиотеки для проверки версий внешних зависимостей.

Читать>>




Экспериментальная функция:

Ниже вы видите текст статьи по ссылке. По нему можно быстро понять ссылка достойна прочтения или нет

Просим обратить внимание, что текст по ссылке и здесь может не совпадать.

В этом руководстве рассмотрим установку и использование простой библиотеки для проверки версий внешних зависимостей.

Бывает сложно гарантировать, что все среды, в которых работает ваш проект, используют одни и те же версии Python, PostgreSQL и остальные внешние зависимости. Часто среды разработки и CI имеют различные системы конфигурации, что затрудняет их синхронизацию. А координация между всеми членами вашей команды для обновления их локального окружения может быть затруднена, так как письма об обновлении или мгновенные сообщения забываются, если они находятся в отпуске, работают над другими проектами и т.д. А использование неверных версий внешних зависимостей может привести к трудноустранимым ошибкам, и в итоге придется затрачивать время на поиск, а так же на устранение последствий.

За годы работы на разных проектах я несколько раз решал эту проблему с помощью System check framework в Django. Фреймворк позволяет уведомлять о том, что на ранних стадиях запуска среда имеет некорректные версии. Сегодня я выпустил пакет, содержащий настраиваемые версии таких проверок, django-version-checks. Вы активируете проверки, указывая разрешенные версии в спецификаторах PEP 440, в том же формате, в котором используется pip.

Например, представьте, что вы используете передовые версии Python и MariaDB. Чтобы убедиться, что все среды используют эти версии, или совместимые выпуски для исправления ошибок, вы можете установить django-version-checks и добавить их в файл настроек:

VERSION_CHECKS = {
    "mysql": "~=10.5.4",
    "python": "~=3.8.1",
}

В любых средах, чьи зависимости не соответствуют этим спецификаторам, будет обнаружена ошибка проверки системы.

Например, если бы я оставил свою среду разработки на Python 3.6 и попытался запустить миграцию:

$ python manage.py migrate 

SystemCheckError: System check identified some issues: ERRORS: ?: (dvc.E003) The current version of Python (3.6.1) does not match the specified range (~=3.8.1).

Произошло бы исключение SystemCheckError, которое не позволило бы осуществить миграцию данных.





Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus