#flutter #dart #dart-pub #semantic-versioning #pubspec
Вопрос:
Я пытаюсь установить ограничения для зависимостей пакетов git с версиями ниже 1.0.0; однако это также могут быть версии выше, но не уверен.
Проект Flutter зависит от двух пакетов, которые мы размещаем в репозиториях git.
Мы ссылаемся на них в нашем pubspec.yaml как на пакеты git
Согласно документам зависимостей Dart.dev: ^0.1.2 is equivalent to '>=0.1.2 <0.2.0'
Тем не менее, он всегда получает последнюю версию на github, независимо от наших ограничений по версии.
Вот как мы ссылаемся на пакет в нашем pubspec.yaml, например:
my_private_package:
git:
url: ssh://git@github.com-org/my_private_package/my_private_package.git
ref: develop
version: ^0.30.0
Например: Если у нас в этом репозитории есть ветвь с версией 0.32.1, приведенный выше код, похоже, не работает(или, скорее, соблюдает ограничения версии) и просто получит версию 0.32.1, а не 0.30.x
Кто-нибудь знает, как предотвратить flutter pub get
вытягивание команды 0.32.1 в этом случае? Может быть, ограничение каретки не работает, потому что мы извлекаем данные из репозитория git?
Ответ №1:
Судя по документации по зависимостям pubspec.yaml, зависимости Git используют ref
ключ для указания версии для извлечения из репозитория. dart pub
и flutter pub
не знаю, как искать в своем репозитории версию пакета, поэтому по умолчанию выбирается последняя фиксация в главной ветви.