From 23937cddd9b537b3b4b0296c6b5caff8e70df979 Mon Sep 17 00:00:00 2001 From: DevTwilight Date: Mon, 13 Jul 2026 16:40:43 +0530 Subject: [PATCH 1/2] chore: add release notes generation script --- .github/generate_release_notes.py | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/generate_release_notes.py diff --git a/.github/generate_release_notes.py b/.github/generate_release_notes.py new file mode 100644 index 0000000..5e88471 --- /dev/null +++ b/.github/generate_release_notes.py @@ -0,0 +1,32 @@ +import re + +def main() -> None: + """Generate release notes for the latest GitHub release.""" + + with open("CHANGELOG.md", encoding="utf-8") as file: + changelog = file.read() + + first_section = re.search(r"^### ", changelog, re.MULTILINE) + if first_section is None: + raise RuntimeError("Could not find the first changelog section.") + + next_release = re.search(r"^## ", changelog[first_section.start():], re.MULTILINE) + + if next_release is None: + raise RuntimeError("Could not find the next release heading.") + + latest_changes = changelog[first_section.start() : first_section.start() + next_release.start()].strip() + + release_notes = f"""A fast code formatter for GDScript in Godot 4. + +## Changelog + +{latest_changes} + +Learn more about the formatter in the [GDScript Formatter documentation](https://www.gdquest.com/library/gdscript_formatter/) +""" + + print(release_notes) + +if __name__ == "__main__": + main() \ No newline at end of file From e35f0eea911da66e784c8b12dcb50568b49e1935 Mon Sep 17 00:00:00 2001 From: DevTwilight Date: Mon, 13 Jul 2026 16:58:57 +0530 Subject: [PATCH 2/2] ci: use generated release notes in releases --- .github/workflows/release.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2aefeda..d6db84b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -122,17 +122,12 @@ jobs: path: artifacts merge-multiple: true + - name: Generate release notes + run: python .github/generate_release_notes.py > release-notes.md + - name: Create Release run: | - gh release create "${{ github.ref_name }}" \ - --verify-tag \ - --draft \ - --title "GDScript formatter ${{ github.ref_name }}" \ - --notes "A fast code formatter for GDScript in Godot 4. - - You can learn how to install, use, configure, and integrate the formatter into your workflow on this page: - - https://www.gdquest.com/library/gdscript_formatter/" + gh release create "${{ github.ref_name }}" --verify-tag --draft --title "GDScript formatter ${{ github.ref_name }}" --notes-file release-notes.md gh release upload "${{ github.ref_name }}" artifacts/*.zip gh release edit "${{ github.ref_name }}" --draft=false