about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurențiu Nicola <lnicola@dend.ro>2022-06-18 17:00:28 +0300
committerLaurențiu Nicola <lnicola@dend.ro>2022-06-18 17:00:28 +0300
commite48ed5316fc8533bad5a5e50b2367fa0ab94f124 (patch)
treee3ad1570b0e72582792880544e4a329ddcfc1280
parent7ca5d165f8862b6fd263c2beca74bb53bf8da37e (diff)
downloadrust-e48ed5316fc8533bad5a5e50b2367fa0ab94f124.tar.gz
rust-e48ed5316fc8533bad5a5e50b2367fa0ab94f124.zip
internal: Handle fractional release numbers in changelog naming
-rw-r--r--xtask/src/release.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/xtask/src/release.rs b/xtask/src/release.rs
index 04544d6f6b4..1c5fc64c241 100644
--- a/xtask/src/release.rs
+++ b/xtask/src/release.rs
@@ -36,7 +36,15 @@ impl flags::Release {
 
         let today = date_iso(sh)?;
         let commit = cmd!(sh, "git rev-parse HEAD").read()?;
-        let changelog_n = sh.read_dir(changelog_dir.as_path())?.len();
+        let changelog_n = sh
+            .read_dir(changelog_dir.as_path())?
+            .into_iter()
+            .filter_map(|p| p.file_stem().map(|s| s.to_string_lossy().to_string()))
+            .filter_map(|s| s.splitn(5, '-').last().map(|n| n.replace('-', ".")))
+            .filter_map(|s| s.parse::<f32>().ok())
+            .map(|n| 1 + n.floor() as usize)
+            .max()
+            .unwrap_or_default();
 
         for adoc in [
             "manual.adoc",