From 685c5dd17e7d669797ef018fde4ece0be816c4e5 Mon Sep 17 00:00:00 2001 From: Kayshen-X Date: Sat, 25 Jul 2026 12:53:31 +0800 Subject: [PATCH] docs(release): title v0.8.2 and promote note headings to release names GitHub releases were named by bare tag because the action got no name. The note's leading heading is the natural title, so publish it as the release name and drop it from the body instead of repeating it. --- .github/workflows/rust-release.yml | 12 +++++++++++- RELEASE_NOTES/v0.8.2.md | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index 7893fc2dc..8d14b65ae 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -926,6 +926,7 @@ jobs: grep -q "$version" release-files/install-op.sh grep -q "$version" release-files/install-op.ps1 - name: Prepare release body + id: body shell: bash run: | set -euo pipefail @@ -935,7 +936,15 @@ jobs: echo "::error::missing release note: $note" exit 1 fi - cp "$note" release-body.md + # The note's leading `# ` heading is the release title; the rest is + # the body, so the title is not repeated on the release page. + title="$(head -n 1 "$note")" + if [[ "$title" != "# "* ]]; then + echo "::error::release note must start with a '# ' title heading: $note" + exit 1 + fi + echo "title=${title#\# }" >> "$GITHUB_OUTPUT" + tail -n +2 "$note" | sed '/./,$!d' > release-body.md { printf '\n## Web Docker Image\n\n' printf -- '- Image: `%s`\n' '${{ needs.web-docker.outputs.tag }}' @@ -947,6 +956,7 @@ jobs: draft: false prerelease: true make_latest: false + name: ${{ steps.body.outputs.title }} body_path: release-body.md files: release-files/* diff --git a/RELEASE_NOTES/v0.8.2.md b/RELEASE_NOTES/v0.8.2.md index cdd94bab4..036c45da9 100644 --- a/RELEASE_NOTES/v0.8.2.md +++ b/RELEASE_NOTES/v0.8.2.md @@ -1,4 +1,4 @@ -# OpenPencil v0.8.2 +# OpenPencil v0.8.2 — Whole Apps, Faithful Imports `v0.8.2` is a prerelease focused on higher-fidelity Figma and HTML imports, multi-screen AI design generation, lower transient memory use, smoother