Files
friflex_flutter_starter/tools/rfc/RFC-managing_pubspec_lock.md

2.7 KiB
Raw Blame History

Управление файлом pubspec.lock

На проекте возникает необходимость определить стратегию работы с файлом pubspec.lock. Данный файл может либо храниться в репозитории, либо быть добавлен в .gitignore. Оба варианта имеют свои преимущества и недостатки, которые следует учесть. См issue

Аргументы за хранение pubspec.lock

  1. Повторяемость сборки. Файл фиксирует конкретные версии зависимостей, обеспечивая единообразие версий для всех разработчиков и сред сборки.
  2. Избежание неожиданных изменений. Новые версии зависимостей могут внести изменения, способные нарушить сборку или логику приложения. Наличие pubspec.lock позволяет контролировать изменения и избегать неожиданных обновлений.
  3. Стабильность CI/CD. Зафиксированные версии зависимостей способствуют стабильным сборкам и тестам в CI-процессах.
  4. Рекомендации Dart. Dart рекомендует хранить pubspec.lock в репозитории для приложений, чтобы обеспечить стабильность окружения. (См. документацию.)

Аргументы против хранения pubspec.lock

  1. Частые изменения. pubspec.lock обновляется при каждом изменении зависимостей, что увеличивает количество коммитов и PR, связанных только с обновлением зависимостей.

Рекомендации

  1. ХРАНИТЬ pubspec.lock для ПРИЛОЖЕНИЙ.
  2. НЕ ХРАНИТЬ pubspec.lock ДЛЯ ПАКЕТОВ.
  3. Решение для переключаемых зависимостей (GMS/HMS). При изменении зависимостей, таких как GMS/HMS, может возникать несовместимость версий. Flutter пока не поддерживает флаворы на уровне зависимостей pubspec (см. Flutter issue #46979), поэтому рекомендуем хранить по дефолту GMS pubspec.lock как базовый.