diff --git a/.gitea/workflows/release-plugin.yml b/.gitea/workflows/release-plugin.yml index e21af46..c91a47b 100644 --- a/.gitea/workflows/release-plugin.yml +++ b/.gitea/workflows/release-plugin.yml @@ -168,10 +168,11 @@ jobs: version = os.environ["VERSION"] with open("CHANGELOG.md", encoding="utf-8") as f: content = f.read() - # "## v" optional gefolgt von " — Datum" und beliebigem Suffix, - # Inhalt bis zum nächsten "## v" oder einer "---"-Trennzeile oder EOF. + # "## v" gefolgt von beliebigem Rest der Zeile (auch "— Datum"), + # Inhalt ab nächster Zeile bis zum nächsten "## v" oder "---" oder EOF. + # [^\n]* statt .*, damit die erste Zeile nicht mit DOTALL bis EOF gefressen wird. pat = re.compile( - r"^##\s+v" + re.escape(version) + r"(?:\s+.*)?$\n(.*?)(?=^##\s+v\d|^---\s*$|\Z)", + r"^##\s+v" + re.escape(version) + r"[^\n]*\n(.*?)(?=^##\s+v\d|^---\s*$|\Z)", re.MULTILINE | re.DOTALL, ) m = pat.search(content) @@ -229,9 +230,10 @@ jobs: readme_path = pathlib.Path(sys.argv[1]) changelog_path = pathlib.Path(sys.argv[2]) - # CHANGELOG.md parsen: Einträge "## v" bis zum nächsten "## v…" oder "---" oder EOF + # CHANGELOG.md parsen: Einträge "## v" bis zum nächsten "## v…" oder "---" oder EOF. + # [^\n]* für die erste Zeile, damit DOTALL nicht greedy über Zeilen frisst. entry_pat = re.compile( - r"^##\s+v(\d+\.\d+\.\d+)(?:\s+—\s+(\S+))?(?:\s+.*)?$\n(.*?)(?=^##\s+v\d|^---\s*$|\Z)", + r"^##\s+v(\d+\.\d+\.\d+)(?:\s+—\s+(\S+))?[^\n]*\n(.*?)(?=^##\s+v\d|^---\s*$|\Z)", re.MULTILINE | re.DOTALL, ) content = changelog_path.read_text(encoding="utf-8")