about summary refs log tree commit diff
diff options
context:
space:
mode:
-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",