about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/tools/rust-analyzer/xtask/src/publish.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/xtask/src/publish.rs b/src/tools/rust-analyzer/xtask/src/publish.rs
index 7faae9b20c4..f5d765d7c98 100644
--- a/src/tools/rust-analyzer/xtask/src/publish.rs
+++ b/src/tools/rust-analyzer/xtask/src/publish.rs
@@ -9,6 +9,15 @@ impl flags::PublishReleaseNotes {
     pub(crate) fn run(self, sh: &Shell) -> anyhow::Result<()> {
         let asciidoc = sh.read_file(&self.changelog)?;
         let mut markdown = notes::convert_asciidoc_to_markdown(std::io::Cursor::new(&asciidoc))?;
+        if !markdown.starts_with("# Changelog") {
+            bail!("changelog Markdown should start with `# Changelog`");
+        }
+        const NEWLINES: &str = "\n\n";
+        let Some(idx) = markdown.find(NEWLINES) else {
+            bail!("missing newlines after changelog title");
+        };
+        markdown.replace_range(0..idx + NEWLINES.len(), "");
+
         let file_name = check_file_name(self.changelog)?;
         let tag_name = &file_name[0..10];
         let original_changelog_url = create_original_changelog_url(&file_name);