Repository navigation
ci: publish meaningful nightly release notes - #17434
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (5)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe nightly publishing workflow now generates release notes from merged pull requests, updates the current build descriptions in four appcasts, and uses generated files for release metadata. New tests cover the script’s collection, summary, and appcast behavior. ChangesNightly release notes
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Workflow as nightly.yml
participant Script as nightly_release_notes.py
participant GitHub as GitHub API
participant Feeds as Sparkle appcasts
participant Notes as Generated note files
participant ReleaseAction as Release metadata action
Workflow->>Script: Run with release tag, commit, branch, appcast directory, and build
Script->>GitHub: Read release marker and collect pull request data
GitHub-->>Script: Return release and pull request metadata
Script->>Notes: Write release notes and published notes
Script->>Feeds: Update current build descriptions
Workflow->>ReleaseAction: Read generated release note files
Merge Risk: ⚪ Minimal · up to The change generates nightly release notes from merged PRs and adds teasers to the appcasts. No concrete merge-blocking risk was identified. The author notes that live release-page verification is still pending the next nightly. Security Architecture ReviewSecurity architecture risk: 🟡 Moderate · up to The new release-note step rejects non-descendant commits even though release-candidate publishing supports transitions between divergent branches. This can block replacement RC builds and recovery. The publishing controls remain substantially intact, but appcast title rendering still needs end-to-end validation. Retained concerns
Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 1 warning)
✅ Passed checks (23 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 2.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 43 functions across 2 files. (3 skipped: 3 unsupported.) Full details: Cmux Full InternationalizationExplanation The PR adds user-facing release metadata and rendered markdown in English without locale-specific sources. Resolution Use locale-specific message sources for generated release-note and appcast copy. Add matching translated entries to every supported locale file under ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
CI failure attributionCI passes on Written by |
|
|
Pull request was closed
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
All contributors have signed the CLA ✍️ ✅ |
|
Merge receipt for |
615a103 test(cloud): follow the Coderouter section and the Cloud sheet wrapper (manaflow-ai#17448) 5fe7ca2 ci: propose removing dormant TUI nightly workflow (manaflow-ai#17419) fbf762a ci: harden hosted queue rescue permissions (manaflow-ai#17449) 3c37fe0 ci: rescue hosted jobs cancelled in queue (manaflow-ai#17447) f4b3c1d fix: reattach live agent views after relaunch (manaflow-ai#17435) 6c7d3a9 ci: route backend-migrations and web-complexity through CI_TRUSTED_RUNNER (manaflow-ai#17445) 0b20768 ci: publish meaningful nightly release notes (manaflow-ai#17434) 2fd61ee ci: say whose failure it is in the CI attribution comment (manaflow-ai#17443) 1adaf63 ci: route read-only Linux lanes through Blacksmith (manaflow-ai#17438) 1c84448 fix: repair main's red full CI (window crash loop, Cloud port and team regressions and test drift) (manaflow-ai#17433) # Conflicts: # .github/workflows/backend-migrations.yml # .github/workflows/ci-cloud-overflow-probe.yml # .github/workflows/ci-compile-attribution.yml # .github/workflows/ci-failure-attribution.yml # .github/workflows/ci-fast-guards.yml # .github/workflows/ci-guard-attribution.yml # .github/workflows/ci-guards.yml # .github/workflows/ci-health-report.yml # .github/workflows/ci-hosted-queue-rescue.yml # .github/workflows/ci-repo-variables.yml # .github/workflows/cmux-tui-sdks.yml # .github/workflows/labels-sync.yml # .github/workflows/merge-group-policy-checks.yml # .github/workflows/nightly.yml # .github/workflows/tui-publish-npm.yml # .github/workflows/web-complexity-trusted.yml
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-shamarker from the livenightlyrelease, 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 thedefault call/needs a calllabels 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.ymlis untouched.Validation
python3 tests/test_nightly_release_notes.py(23 tests)bash tests/test_nightly_universal_build.shpython3 tests/test_nightly_publication_marker.pypython3 tests/test_ci_workflow_run_sources.pypython3 scripts/ci/validate_test_execution_registry.pyactionlint -no-color .github/workflows/nightly.yml .github/workflows/ci-guards.ymlgit 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