Какой знак каретки (^) стоит перед номером версии зависимости в pubspec.yaml Flutter? - PullRequest
0 голосов
/ 30 ноября 2018

В файле pubspec.yaml моего проекта Flutter есть номер (^) перед номером версии некоторых зависимостей.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  english_words: ^3.1.5

Какова его цель?Что это значит?

Примечания

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

Знак каретки ^ означает указанную версию и все более новые версии, которые не вносят критических изменений относительно указанной версии.

Дарт следует семантическому версионированию и предлагает использовать его для сопровождающих пакетов какхорошо.

Семантическое управление версиями определяет, что

  • для версий >= 1.0.0 основная версия должна быть увеличена для критических изменений.
  • для версий < 1.0.0 дополнительнаяверсия должна быть увеличена для критических изменений.

^2.4.3 означает >= 2.4.3 < 3.0.0 ^0.17.19 означает > 0.17.19 <0.18.0

0 голосов
/ 01 декабря 2018

это означает, что любые новые версии зависимости, которые не содержат критических изменений, будут приняты.

dart следует семантическому версионированию и использует его для сопровождающих пакетов.

в терминах непрофессионала ^ 1.8.1 означает> = 1.8.1 <2.0.0 </p>

0 голосов
/ 30 ноября 2018

Знак каретки (^) используется для зависимостей паба в Dart, чтобы указать диапазон допустимых номеров версий.В частности, любая версия от указанной версии до (но не включая) следующей неразрывной версии в порядке.

  • Так что ^3.1.5 совпадает с '>=3.1.5 <4.0.0'
  • И ^1.2.3 будет таким же, как '>=1.2.3 <2.0.0'

Это сокращение для более длинной формы.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ^ автоматически говорит о том, что я хочу автоматически использовать самый современный пакет от Pub, если это обновление ничего не сломает в моем приложении.

Примечания

Уточнение для версий менее 1.0.0

Изначально я думал, что

  • ^0.1.2 совпадает с '>=0.1.2 <1.0.0' (неправильно!)

Однако это неверное понимание Семантическое управление версиями .Когда основной номер версии равен 0 (как в 0 из 0.1.2), это означает, что API является нестабильным, и даже незначительные изменения номера версии (как в 1 из 0.1.2) могут указыватьпереломное изменение.

В статье Semantic Versioning говорится:

Основная нулевая версия (0.yz) предназначена для начальной разработки.Все может измениться в любое время.Публичный API не следует считать стабильным.

, а также

Как мне обращаться с исправлениями на начальной стадии разработки 0.yz?

Самое простое, что можно сделать, - это запустить исходный выпуск для разработки с 0.1.0, а затем увеличить вспомогательную версию для каждого последующего выпуска.

Таким образом, исправленная форма соответствует следующему:

  • ^0.1.2 совпадает с '>=0.1.2 <0.2.0'

Спасибо Günter Zöchbauer за указание на мою ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...