nonybrighto
nonybrighto

Reputation: 9593

What does plus one (+1) mean in dart's dependency versioning

I see this +1 in a some flutter dependencies and have been wondering what it means because i have been seeing it more often these days.

Sample pubspec.yaml

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

I have checked here but didn't find it.

What is the meaning? And can it also be +n eg +2?

Upvotes: 21

Views: 6122

Answers (2)

Nate Bosch
Nate Bosch

Reputation: 10925

In Dart conventions the +1 is used when publishing a patch release where the first number in the version is 0. The version 1.2.1+1 is not idiomatic. Essentially there are two patterns in use depending on whether the author considers the package stable enough to reach 1.0.0:

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

Upvotes: 7

Günter Zöchbauer
Günter Zöchbauer

Reputation: 657871

+ means it is a regular release build,
while - would indicate a pre-release build.
(No build number after x.y.z also indicates a release build like +)

The following part of the version is some build number that does not have a fixed format.

See also

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

  1. A pre-release version MAY be denoted by appending a dash and a series of dot separated identifiers immediately following the patch version. Identifiers MUST be comprised of only ASCII alphanumerics and dash [0-9A-Za-z-]. Pre-release versions satisfy but have a lower precedence than the associated normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.

  2. A build version MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch version or pre-release version. Identifiers MUST be comprised of only ASCII alphanumerics and dash [0-9A-Za-z-]. Build versions satisfy and have a higher precedence than the associated normal version. Examples: 1.0.0+build.1, 1.3.7+build.11.e0f985a.

Hint: Pre-release versions (with -) are ignored by flutter packages get unless the - is explicitly part of the version constraint in pubspec.yaml like

foo_package: ^1.2.3-beta

Upvotes: 21

Related Questions