Bug: 220164656

Clone this repo:
  1. e0a8b66 Update Android.bp by running cargo_embargo am: 09fb2c5b14 by James Farrell · 9 weeks ago main master
  2. 09fb2c5 Update Android.bp by running cargo_embargo by James Farrell · 10 weeks ago
  3. 544ea60 Empty merge of Android 24Q2 Release (ab/11526283) to aosp-main-future by Xin Li · 3 months ago
  4. 91f7742 Upgrade semver to 1.0.21 am: 3b053b641e am: 802365cf35 by Jeff Vander Stoep · 6 months ago
  5. 802365c Upgrade semver to 1.0.21 am: 3b053b641e by Jeff Vander Stoep · 6 months ago

semver

A parser and evaluator for Cargo's flavor of Semantic Versioning.

Semantic Versioning (see https://semver.org) is a guideline for how version numbers are assigned and incremented. It is widely followed within the Cargo/crates.io ecosystem for Rust.

[dependencies]
semver = "1.0"

Compiler support: requires rustc 1.31+

Example

use semver::{BuildMetadata, Prerelease, Version, VersionReq};

fn main() {
    let req = VersionReq::parse(">=1.2.3, <1.8.0").unwrap();

    // Check whether this requirement matches version 1.2.3-alpha.1 (no)
    let version = Version {
        major: 1,
        minor: 2,
        patch: 3,
        pre: Prerelease::new("alpha.1").unwrap(),
        build: BuildMetadata::EMPTY,
    };
    assert!(!req.matches(&version));

    // Check whether it matches 1.3.0 (yes it does)
    let version = Version::parse("1.3.0").unwrap();
    assert!(req.matches(&version));
}

Scope of this crate

Besides Cargo, several other package ecosystems and package managers for other languages also use SemVer: RubyGems/Bundler for Ruby, npm for JavaScript, Composer for PHP, CocoaPods for Objective-C...

The semver crate is specifically intended to implement Cargo's interpretation of Semantic Versioning.

Where the various tools differ in their interpretation or implementation of the spec, this crate follows the implementation choices made by Cargo. If you are operating on version numbers from some other package ecosystem, you will want to use a different semver library which is appropriate to that ecosystem.

The extent of Cargo's SemVer support is documented in the Specifying Dependencies chapter of the Cargo reference.

License