1 个稳定版本
1.0.17 | 2023年7月13日 |
---|
#614 在 数据结构
每月 下载 24 次
用于 tfswitcher
81KB
1.5K SLoC
semver
Cargo 的语义版本控制的解析器和评估器。
语义版本控制 (见 https://semver.org) 是关于如何分配和增加版本号的指南。它在 Rust 的 Cargo/crates.io 生态系统中被广泛遵循。
[dependencies]
semver = "1.0"
编译器支持:需要 rustc 1.31+
示例
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));
}
此包的范围
除了 Cargo,其他几种语言包生态系统和包管理器也使用 SemVer:RubyGems/Bundler for Ruby,npm for JavaScript,Composer for PHP,CocoaPods for Objective-C...
semver
包专门用于实现 Cargo 对语义版本控制的解释。
各种工具在规范的解释或实现方面存在差异时,此包遵循 Cargo 做出的实现选择。如果你在处理来自其他包生态系统的版本号,你需要使用适合该生态系统的其他 semver 库。
Cargo 对 SemVer 的支持范围在 Cargo 参考文档的“指定依赖项”章节中记录。
关于此分支
此分支是从主 semver
包分叉出来的,以支持 Terraform 版本约束中发现的 ~>
悲观版本控制语法。它还将默认的 Op
从 Caret
更改为 Exact
。
此分支不太可能合并到主包中,因为 semver
只关注 Cargo 对语义版本控制的解释。
许可证
根据您的选择,此软件受 Apache 许可证 2.0 版 或 MIT 许可证 许可。除非您明确说明,否则您根据Apache-2.0许可协议提交的任何有意包含在本软件包中的贡献,应按照上述方式双授权,不附加任何额外条款或条件。
依赖项
约175KB