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

26 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Управление файлом pubspec.lock
На проекте возникает необходимость определить стратегию работы с файлом pubspec.lock.
Данный файл может либо храниться в репозитории, либо быть добавлен в .gitignore.
Оба варианта имеют свои преимущества и недостатки, которые следует учесть.
См [issue](https://github.com/smmarty/flutter_team/issues/20)
## Аргументы за хранение 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](https://github.com/flutter/flutter/issues/46979)),
поэтому рекомендуем хранить по дефолту GMS pubspec.lock как базовый.