Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
10 changes: 5 additions & 5 deletions .github/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
6 changes: 5 additions & 1 deletion scripts/generate_macos_release_notes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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}"
Loading