ci: publish meaningful nightly release notes

Merged
TE
12d ago
+584-15

Problem

The nightly release page only said Automated nightly build for <sha>, so the app's View Release Notes link gave users no useful change summary.

Fix

The serialized nightly publisher now reads the exact cmux-published-sha marker from the live nightly release, compares it with the built SHA, and collects merged PRs whose merge commits are in that range. It writes up to 40 newest product PRs grouped as Fixes, New, and Changed defaults. Conventional titles and the default call / needs a call labels drive grouping. CI-only, docs-only, and test-only changes collapse to one Infrastructure count, with a compare link for overflow.

The existing DMG and feed links remain below the change summary. The four signed nightly appcasts receive a plain-text teaser containing the five newest product titles. Stable release.yml is untouched.

Validation

  • python3 tests/test_nightly_release_notes.py (23 tests)
  • bash tests/test_nightly_universal_build.sh
  • python3 tests/test_nightly_publication_marker.py
  • python3 tests/test_ci_workflow_run_sources.py
  • python3 scripts/ci/validate_test_execution_registry.py
  • actionlint -no-color .github/workflows/nightly.yml .github/workflows/ci-guards.yml
  • git diff --check
  • ./scripts/localize-changes --base upstream/main (no localization keys changed)

The next successful published nightly will be the live release-page verification.

Summary by CodeRabbit

  • New Features
    • Nightly releases now include automatically generated notes highlighting fixes, new features, and other changes since the previous published build. Notes include links to relevant changes, while infrastructure updates are kept out of the product summary.
    • Nightly appcast entries now include channel-specific download details and a concise summary of changes for the build.