Знак каретки (^
) используется для зависимостей паба в 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 за указание на мою ошибку.