Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 32 additions & 17 deletions scripts/auto-release-notes.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import re
import logging
import os
from textwrap import dedent


# 配置日志
Expand Down Expand Up @@ -195,33 +196,44 @@ def get_release_info(data, filename="rel-notes.md"):
}

# 定义模板
header_template = Template("""---
hide:
- toc
---
# Release Notes
本页列出 d.run 各项功能的一些重要变更。
""")
header_template = Template(
dedent(
"""\
---
hide:
- toc
---
# Release Notes
本页列出 d.run 各项功能的一些重要变更。
"""
).strip()
)

pub_date_template = Template("## $pub_date\n\n")
module_version_template = Template("### $module $version\n\n")
update_type_template = Template("#### $emoji_title\n\n")
pub_date_template = Template("## $pub_date")
module_version_template = Template("### $module $version")
update_type_template = Template("#### $emoji_title")
entry_with_baseline_template = Template("- [$primary_func] $baseline")
entry_without_baseline_template = Template("- [$primary_func]")

lines = []
lines.append(header_template.substitute())
def ensure_blank_line(lines_list):
if lines_list and lines_list[-1] != "":
lines_list.append("")

lines = header_template.substitute().splitlines()
ensure_blank_line(lines)

for pub_date, modules in result.items():
ensure_blank_line(lines)
lines.append(pub_date_template.substitute(pub_date=pub_date))
ensure_blank_line(lines)
for module, versions in modules.items():
for version, update_types in versions.items():
lines.append(
module_version_template.substitute(module=module, version=version)
)
ensure_blank_line(lines)
for update_type in ["新功能", "增强优化", "故障修复", "无更新类型"]:
if update_type in update_types:
entries = update_types[update_type]
Expand All @@ -231,6 +243,7 @@ def get_release_info(data, filename="rel-notes.md"):
emoji_title=emoji_map[update_type]
)
)
ensure_blank_line(lines)
for primary_func, entry in entries:
baseline = entry.get("基线参数", "")
if baseline:
Expand All @@ -245,9 +258,11 @@ def get_release_info(data, filename="rel-notes.md"):
primary_func=primary_func
)
)
lines.append("") # 空行分隔
ensure_blank_line(lines)
if lines and lines[-1] == "":
lines.pop()

md_content = "\n".join(lines)
md_content = "\n".join(lines) + "\n"
try:
with open(filename, "w", encoding="utf-8") as f:
f.write(md_content)
Expand Down
Loading