From bd2b2b4f24352c65c7d90fce9a0995f9c49f1776 Mon Sep 17 00:00:00 2001 From: Leon Stadler Date: Tue, 29 Sep 2026 11:52:19 +0200 Subject: [PATCH] chore: remove emojis from release notes --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/release.yml | 10 +++++----- changelog.md | 4 ++++ docs/distribution.md | 2 +- scripts/generate_macos_release_notes.sh | 6 +++++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8e3f418..bc879c9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,4 +17,4 @@ Before merging, apply exactly one category label to this PR: - `maintenance` — internal tooling, dependencies, or maintenance - `skip-release-notes` — no user-facing release note is needed -The release workflow includes PR titles, grouped by these labels, and identifies contributors automatically. Keep the title concise and avoid putting issue references alone in the title. +The release workflow includes PR titles, grouped by these labels, and identifies contributors automatically. Use plain text without emojis so the release notes stay consistent. Keep the title concise and avoid putting issue references alone in the title. diff --git a/.github/release.yml b/.github/release.yml index ae2be51..06748eb 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -5,19 +5,19 @@ changelog: authors: - dependabot[bot] categories: - - title: "⚠️ Breaking changes" + - title: "Breaking changes" labels: - breaking-change - - title: "✨ Features and improvements" + - title: "Features and improvements" labels: - enhancement - - title: "🐛 Bug fixes" + - title: "Bug fixes" labels: - bug - - title: "📚 Documentation" + - title: "Documentation" labels: - documentation - - title: "🧰 Maintenance" + - title: "Maintenance" labels: - maintenance - title: "Other changes" diff --git a/changelog.md b/changelog.md index aeb1fc0..1fd5436 100644 --- a/changelog.md +++ b/changelog.md @@ -66,6 +66,10 @@ ## Chores +- 2026-09-29: Emoji aus automatisch generierten Release-Notizen entfernt. + - Dateien: `.github/release.yml`, `.github/PULL_REQUEST_TEMPLATE.md`, `scripts/generate_macos_release_notes.sh`, `docs/distribution.md`, `changelog.md`. + - Funktionalität: Kategorieüberschriften sind textbasiert. Der Release-Notizgenerator entfernt Emoji-Zeichen und ihre Unicode-Sequenzbestandteile aus PR-Titeln, direkten Commit-Nachrichten, Beitragendennamen und dem übrigen generierten Text. Die PR-Vorlage bittet um emoji-freie Titel. Die Produktversion bleibt unverändert, da sich nur Release-Tooling und Dokumentation ändern. + - 2026-09-29: Whisper-CLI-CI-Smoke-Test verwendet ein festes Sprachsample statt macOS-Texte-to-Speech. - Dateien: `scripts/verify_whisper_cli_runtime.sh`, `changelog.md`. - Funktionalität: Der macOS-Smoke-Test transkribiert jetzt das im gepinnten whisper.cpp-Submodul enthaltene JFK-WAV-Sample. Dadurch hängt die CI-Prüfung nicht mehr von der auf GitHub-Runnern erzeugten `say`-Audioausgabe ab. Wenn Whisper keinen Text erzeugt, zeigt der Fehler zusätzlich die CLI-Ausgaben. diff --git a/docs/distribution.md b/docs/distribution.md index a5a6db0..53948c4 100644 --- a/docs/distribution.md +++ b/docs/distribution.md @@ -21,7 +21,7 @@ Expected assets: The Finder DMG layout uses the matching 800 × 500 SVG background and `dmgbuild` metadata. `create_macos_dmg.sh` verifies the app's ad-hoc signature after packaging. Release builds contain no speech model; onboarding downloads one on first launch. The Whisper CLI is linked statically against Whisper/GGML, and `validate_macos_app_runtime.sh` verifies the executable and runtime manifest. -To prepare a draft from `main`, run **Actions → macOS Release** with `action=prepare` and the value from `VERSION`. The workflow finds the previous published release, asks GitHub's Release Notes API to summarize merged PRs, groups them using `.github/release.yml`, and includes contributors plus a full changelog link. A helper adds commit subjects and authors for direct commits that have no associated PR, so older work is not lost. PR titles must be descriptive on their own; apply one category label listed in `.github/PULL_REQUEST_TEMPLATE.md` before merging. The generated body also includes concise install guidance and a machine-readable source commit used by the publish check. The notes are suitable both for the draft and published release; there is no internal “publish this draft” text. +To prepare a draft from `main`, run **Actions → macOS Release** with `action=prepare` and the value from `VERSION`. The workflow finds the previous published release, asks GitHub's Release Notes API to summarize merged PRs, groups them using `.github/release.yml`, and includes contributors plus a full changelog link. A helper adds commit subjects and authors for direct commits that have no associated PR, so older work is not lost. PR titles must be descriptive on their own; apply one category label listed in `.github/PULL_REQUEST_TEMPLATE.md` before merging. The generated body removes emoji characters from PR titles, commit subjects, author names, and category headings. It also includes concise install guidance and a machine-readable source commit used by the publish check. The notes are suitable both for the draft and published release; there is no internal “publish this draft” text. GitHub does not create the release tag while the release is a draft. After installation testing, run the same workflow with `action=publish` and the same version. The workflow checks branch, version, source commit, draft state and assets, then verifies the downloaded checksum and DMG before creating the tag at the tested source commit while publishing. For manual local verification steps, see [`macos-release-checklist.md`](macos-release-checklist.md). The old Developer ID archive, export, notarization, stapling, and Sparkle appcast scripts remain available for a future signed distribution, but they are not part of the current release path. diff --git a/scripts/generate_macos_release_notes.sh b/scripts/generate_macos_release_notes.sh index ccf8d30..f559ec8 100755 --- a/scripts/generate_macos_release_notes.sh +++ b/scripts/generate_macos_release_notes.sh @@ -13,6 +13,10 @@ OUTPUT_FILE="$4" GITHUB_REPOSITORY_VALUE="${GITHUB_REPOSITORY:-LeonStadler/Cortexa}" RELEASE_TAG="v${RELEASE_VERSION}" +strip_release_emojis() { + perl -CS -pe 's/\p{Extended_Pictographic}|[\x{FE0E}\x{FE0F}\x{200D}\x{20E3}\x{1F1E6}-\x{1F1FF}\x{1F3FB}-\x{1F3FF}\x{E0020}-\x{E007F}]//g; s/[\t ]{2,}/ /g; s/[\t ]+$//' +} + [[ "${RELEASE_VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "Release version must use MAJOR.MINOR.PATCH: ${RELEASE_VERSION}" >&2 exit 2 @@ -70,4 +74,4 @@ The DMG targets Apple Silicon (arm64). This open-source build is ad-hoc signed a EOF printf '\nSource commit: %s\n' "${SOURCE_COMMIT}" -} >"${OUTPUT_FILE}" +} | strip_release_emojis >"${OUTPUT_FILE}"