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

Issue

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?

Solution

+ 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

Answered By – Günter Zöchbauer

Answer Checked By – Clifford M. (FlutterFixes Volunteer)

Leave a Reply

Your email address will not be published.