Как установить ограничения версии, когда в зависимости от пакетов git используется Flutter/Dart с версиями ниже 1.0.0?

#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 не знаю, как искать в своем репозитории версию пакета, поэтому по умолчанию выбирается последняя фиксация в главной ветви.