Expand description
§JayVer
A calendar versioning scheme for binaries developed by Emmett Jayhart, built upon ISO 8601 week dates and CalVer.
JayVer follows the format: YY.WW.PATCH
- YY: ISO week-numbering year minus 2000 (e.g.,
25for 2025) - WW: ISO 8601 week number (
1-53) - PATCH: Incremental number for patches within same week, starting at
0
§Examples
use jayver::Version;
// Parse a version string
let version = Version::parse("25.16.3").unwrap();
assert_eq!(version.year, 25); // Year 2025 (25 + 2000)
assert_eq!(version.week, 16);
assert_eq!(version.patch, 3);
// Create a version for the current date
let today = Version::today();
println!("Current version: {today}");
// Compare versions
let v1 = Version::parse("25.10.0").unwrap();
let v2 = Version::parse("25.11.0").unwrap();
assert!(v1 < v2);
// Check version requirements
use jayver::VersionReq;
let req = VersionReq::parse(">=25.10.0").unwrap();
assert!(req.matches(&v1));§ISO 8601 Week Dates
JayVer strictly follows ISO 8601 week dates:
- Week 01 is the week containing January 4th
- Weeks are numbered 01-53
- The ISO week-numbering year may differ from the calendar year near year boundaries
Re-exports§
pub use crate::error::Error;pub use crate::error::Result;pub use crate::parser::parse_version;pub use crate::parser::patch;pub use crate::parser::version as version_parser;pub use crate::parser::week;pub use crate::parser::year;pub use crate::parser::year_week;pub use crate::requirement::AnyVersionReq;pub use crate::requirement::Comparator;pub use crate::requirement::Op;pub use crate::requirement::VersionReq;pub use crate::version::Patch;pub use crate::version::Version;pub use crate::version::Week;pub use crate::version::Year;
Modules§
- error
- Error types for JayVer parsing and comparison operations.
- parser
- Parsers for Jayhart Version components, implemented with
nom. - requirement
- Version requirements for Jayhart versioning.
- version
- Jayhart Version type and implementations.