pub fn sort_versions_deterministic(pairs: &mut [(String, Version)])Expand description
Sorts tag-version pairs by semantic version (descending), with deterministic tie-breaking.
When versions compare equal, uses tag name (lexicographic order) as a tie-breaker. This ensures consistent ordering across runs, which is critical for reproducible dependency resolution.
§Arguments
pairs- Mutable reference to vector of (tag_name, semver::Version) pairs
§Examples
use semver::Version;
let mut versions = vec![
("a-v1.0.0".to_string(), Version::new(1, 0, 0)),
("z-v1.0.0".to_string(), Version::new(1, 0, 0)), // Same version
("b-v2.0.0".to_string(), Version::new(2, 0, 0)),
];
agpm_cli::resolver::version_resolver::sort_versions_deterministic(&mut versions);
// After sorting: b-v2.0.0 (highest), then a-v1.0.0, z-v1.0.0 (alphabetical)