【问题标题】:What does plus one (+1) mean in dart's dependency versioning在 dart 的依赖版本控制中加一 (+1) 是什么意思
【发布时间】:2019-05-06 16:12:20
【问题描述】:

我在一些颤动的依赖项中看到了这个 +1,并且一直想知道这意味着什么,因为这些天我经常看到它。

示例 pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  cloud_firestore: ^0.8.1+1
  sqflite: 0.12.2+1
  zoomable_image: ^1.2.1+1  

我检查了here,但没有找到。

什么意思?也可以是+n 例如+2?

【问题讨论】:

  • 这是内部版本号。甚至您的构建也可以是 1.0.0+2,AppStore 和 Google play 将其读取为 1.0.0 构建 2。

标签: dart flutter dart-pub


【解决方案1】:

在 Dart 约定中,+1 在发布 patch 版本时使用,其中版本中的第一个数字是 01.2.1+1 版本不是惯用的。基本上有两种模式在使用,这取决于作者是否认为包足够稳定以达到1.0.0

  • 0.major.minor+patch
  • major.minor.patch

【讨论】:

  • 所以它本质上是第四个点......好吧
  • 是的,实际上它就像另一个.。预期的语义有点不同,不应该总是使用它。
【解决方案2】:

+ 表示它是常规发布版本,
- 表示预发布版本。
x.y.z 之后没有内部版本号也表示类似+ 的发布版本)

版本的以下部分是一些没有固定格式的内部版本号。

另见

来自https://semver.org/spec/v2.0.0-rc.1.html

  1. 预发布版本可以通过紧跟补丁版本后附加破折号和一系列点分隔标识符来表示。标识符必须仅由 ASCII 字母数字和破折号 [0-9A-Za-z-] 组成。预发布版本满足但优先级低于相关的正常版本。示例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。

  2. 可以通过在补丁版本或预发布版本之后附加一个加号和一系列点分隔标识符来表示构建版本。标识符必须仅由 ASCII 字母数字和破折号 [0-9A-Za-z-] 组成。构建版本满足并具有比关联的正常版本更高的优先级。示例:1.0.0+build.1、1.3.7+build.11.e0f985a.

提示:预发布版本(带有-)被flutter packages get 忽略,除非- 明确属于pubspec.yaml 中的版本约束,例如

foo_package: ^1.2.3-beta

【讨论】:

  • 非常感谢您的解释!
  • dart.dev/tools/pub/versioninggoing to 0.1.2+1 indicates a change that doesn’t affect the public API,显然它不仅仅是一个内部版本号,还是我理解错了?
  • 你是对的。如果有 API 更改,则应增加主要或次要部分。否则,它没有具体说明如何使用它。这取决于您,也许您正在使用的工作流程(例如自动构建和部署)
猜你喜欢
  • 2018-04-10
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
相关资源
最近更新 更多