From 5d57ba76aeb68df082b915aeed50e186fb352bae Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 21 Aug 2026 09:15:16 +0200 Subject: [PATCH 1/2] fix(boil): Only include prerelease data if present --- rust/boil/src/utils.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rust/boil/src/utils.rs b/rust/boil/src/utils.rs index 220804e34..d9fbf6841 100644 --- a/rust/boil/src/utils.rs +++ b/rust/boil/src/utils.rs @@ -35,12 +35,13 @@ impl VersionExt for semver::Version { if self.is_floating() { self.to_string() } else { - format!( - "{major}.{minor}-{pre}", - major = self.major, - minor = self.minor, - pre = self.pre - ) + let mut version = format!("{major}.{minor}", major = self.major, minor = self.minor,); + if !self.pre.is_empty() { + version.push('-'); + version.push_str(&self.pre); + } + + version } } } From c318975613658409cc763254a251e0c82a0072fb Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 21 Aug 2026 09:24:28 +0200 Subject: [PATCH 2/2] test(boil): Add unit tests for floating tag conversion --- rust/boil/src/utils.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rust/boil/src/utils.rs b/rust/boil/src/utils.rs index d9fbf6841..4825c2b9a 100644 --- a/rust/boil/src/utils.rs +++ b/rust/boil/src/utils.rs @@ -169,4 +169,22 @@ mod tests { semver::Version::from_str(input).expect("input must be valid semantic version"); assert!(!version.is_floating()); } + + #[rstest] + // Already considered floating, returned unchanged + #[case("0.0.0-pr1234-extra-tag-data1234-amd64", None)] + #[case("0.0.0-pr1234-extra-tag-data1234", None)] + #[case("0.0.0-dev-extra-tag-data1234", None)] + #[case("0.0.0-pr1234", None)] + #[case("0.0.0-dev", None)] + // Not floating, so the expected tag is different from the input + #[case("1.2.3-pr321", Some("1.2-pr321"))] + #[case("1.2.3-rc.1", Some("1.2-rc.1"))] + #[case("1.2.3", Some("1.2"))] + fn floating_tag(#[case] input: &str, #[case] expected: Option<&str>) { + let floating_version = semver::Version::from_str(input) + .expect("input must be valid semantic version") + .floating(); + assert_eq!(floating_version, expected.unwrap_or(input)); + } }