Как безопасно обновить пакет в Django (например, django-jalali с 1.0.2 до 2.0.0), не нарушая существующий код?

В настоящее время я работаю над обновлением старого проекта Django, и у меня есть как конкретный , так и общий вопрос об обновлениях пакетов.

🔍 Конкретный вопрос:

Я использую django-jalali-date==1.0.2 в одном из своих старых проектов и хотел бы обновить его до 2.0.0 из-за некоторых важных улучшений и функций.

Но прежде чем я это сделаю, я хочу быть уверен, что это ничего не нарушит — особенно в формах, моделях, шаблонах или статических файлах ({{ form.media }}, фильтрах шаблонов, таких как |to_jalali и т.д.).

Итак, как я могу безопасно сравнить две версии, проверить совместимость и убедиться, что все работает должным образом?

  • Известны ли какие-либо критические изменения между этими версиями?
  • Как я могу проверить, работает ли импорт типа JalaliDateField, AdminJalaliDateWidget, или тегов шаблона по-прежнему?
  • Я был бы признателен за любые советы по тестированию или миграции!

🔁 Общий вопрос:

В более широком смысле, каков наилучший способ безопасно обновить любой пакет Python / Django без риска регрессии?

Какие стратегии вы используете при обновлении основных версий (например, с v1.x.x до v2.x.x)?

Например:

  • Проверяете ли вы вручную журналы изменений и различия?
  • Проводите ли вы тесты или используете такие инструменты, как pipdeptree, pytest, или diff инструменты?
  • Создаете ли вы сначала промежуточную среду?
  • Есть какие-нибудь советы по проверке обратной совместимости (BC)?

Мне бы хотелось узнать о вашем опыте, инструментах или рабочих процессах, которые помогут вам уверенно управлять обновлениями пакетов.

Заранее благодарим вас за помощь! Мы будем признательны за любой обмен опытом или контрольный список.

С наилучшими пожеланиями,

Вернуться на верх