feat(release): include a categorized PR changelog in orb-v release notes#3429
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-05 07:28:03 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3429 +/- ##
=======================================
Coverage 92.99% 92.99%
=======================================
Files 295 295
Lines 30970 30970
Branches 11293 11293
=======================================
Hits 28801 28801
Misses 1514 1514
Partials 655 655 🚀 New features to boost your workflow:
|
1832ff2 to
e2f7bf6
Compare
|
Addressed the review's nits: reworded the tag-order comment to not overclaim precision for lightweight tags sharing a commit (documented the actual, low-impact consequence instead), and added a run-log warning when the generate-notes API call itself fails so it's distinguishable from a genuinely empty PR range. Both changes covered by an updated/new assertion in |
e2f7bf6 to
5146f0d
Compare
|
Addressed the second round of nits: |
The GitHub Release step dropped `--generate-notes` outright after the very first orb release hit GitHub's 125000-character release-body limit -- with no prior orb-v tag to bound the diff, the generated notes spanned the entire repo history. Every release from orb-v0.1.0 onward has a real previous tag, so scope the changelog explicitly to the range since the immediately preceding orb-v tag (found by tag-creation order, not a semver sort that would mis-order a prerelease against its own later stable release, and not the Release Notes API's own "previous release" auto-detection, since this repo's release list also carries unrelated mcp-v* releases on an independent cadence). Add .github/release.yml so the generated changelog groups PRs into Features/Fixes/Other Changes using the gittensor:feature/gittensor:bug labels gittensory's own review engine already applies to every merged PR -- no separate manual-labeling process needed. Keep a safety net for the original failure mode: if the combined notes would still exceed GitHub's limit, or the generate-notes call itself fails, fall back to the plain pull-command notes (optionally with a compare-view link) instead of ever blocking the release.
…ailure Review nits on the changelog PR: the "actual tag-creation order" comment overclaimed precision --sort=-creatordate can't guarantee for two lightweight orb-v tags pointing at the same commit (e.g. promoting an -rc straight to stable with no new commits); reword it as the best available local tag-date ordering and document that the only consequence of a tie is an emptier-than-expected changelog for that one release, never an incorrect or blocked one. Also warn in the run log when the generate-notes API call itself fails, so an operator can tell that apart from a genuinely empty PR range between two tags.
The exclude.authors list used bare names (dependabot, github-actions), but GitHub's changelog-generation API matches the literal API login, which for a bot account includes the [bot] suffix -- confirmed against this repo's own PR history, where dependabot's login is dependabot[bot]. The bare names never matched anything, so the exclusion was a no-op. Also add renovate[bot] (17 merged PRs here, the same routine-dependency- bump noise dependabot produces) to the list. Deliberately leave sentry[bot] and gittensory-orb[bot] unexcluded: both produce real, gittensor:bug/feature-labeled changes worth surfacing (e.g. #3305, a Seer-authored fix for a real production error), not noise. Also strengthen the oversized-changelog fallback test to assert the operator-critical pull command survives alongside the compare-link fallback, not just that the oversized filler text is gone.
The comment said "the two pure dependency-bump bots" but the list has three entries since renovate[bot] was added alongside dependabot[bot]; reword to explain github-actions[bot]'s inclusion (no PRs here today, but the same operator-facing noise if that changes) instead of miscounting. Also tighten the changelog test to assert tag_name and previous_tag_name appear on the SAME generate-notes call, not just as two substrings present somewhere in the overall command log.
5146f0d to
142e8e7
Compare
|
Third and hopefully final round: fixed the stale comment count (said "two" bots, list had three since renovate[bot] was added last round) and tightened the changelog test to assert tag_name/previous_tag_name are parameters of the SAME generate-notes call rather than just two substrings present somewhere in the log. Skipped the one explicitly-optional suggestion (a same-commit lightweight-tag tie test) since it's already documented as a low-impact non-goal and rc-to-stable-on-the-same-commit isn't a workflow this repo currently uses. |
Summary
orb-v0.2.0release list all the changes the way metagraphed's releases do? Because.github/workflows/release-selfhost.yml's "GitHub Release" step deliberately dropped--generate-notesafter the very first orb release (orb-v0.1.0-beta.1) hit GitHub's 125000-character release-body limit — with no priororb-vtag to bound the diff, the auto-generated notes spanned the entire repo history.orb-v0.1.0onward now has a real previous tag, so this scopes the changelog explicitly to the range since the immediately precedingorb-vtag — found by actual tag-creation order (git tag --sort=-creatordate), not a semver sort (which would mis-order a prerelease against its own later stable release, e.g.0.1.0-beta.2vs0.1.0) and not the Release Notes API's own "previous release" auto-detection (this repo's release list also carries unrelatedmcp-v*releases on an independent cadence that could get picked up by mistake once the two schemes' timestamps interleave)..github/release.yml(mirroring metagraphed's own.github/release.yml) so the generated changelog groups PRs into 🚀 Features / 🐛 Fixes / 🧹 Other Changes using thegittensor:feature/gittensor:buglabels gittensory's own review engine already applies automatically to every merged PR (confirmed: 40/40 of the last 40 merged PRs already carry one) — no separate manual-labeling process needed, unlike metagraphed's interim label convention.orb-v0.1.0→orb-v0.2.0generates an ~11KB changelog (69 PRs), comfortably under the limit.Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.orb-v0.2.0's release notes look sparse; no separate issue.)Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally;codecov/patchrequires ≥97% coverage of the lines AND branches you changed (aim for 98%+ on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
.github/workflows/release-selfhost.yml, the new.github/release.yml, and a new backend-only test file — nosrc/**, UI, MCP, or migration changes, so Codecov'ssrc/**-scoped patch gate and the UI/MCP/workers checks don't apply to this diff. Addedtest/unit/release-selfhost-notes.test.ts(5 tests) that extracts and executes the actual committed bash from the "GitHub Release" step against mockedgit/ghbinaries, covering: normal changelog inclusion, the no-prior-tag first-release case, the size-limit fallback, create-vs-edit routing, and API-failure fallback. Proved causality by reverting to the pre-fix step and confirming the 2 changelog-specific tests fail against it (the other 3 legitimately passed either way, since they cover create/edit routing and failure-safety behavior that was already correct). Also ran the 3 existingrelease-selfhost*/selfhost-sentry-releasetest files (18 tests) to confirm no regression, all green.Safety
UI Evidencesection below with JPG/JPEG or PNG screenshots. (N/A — no UI change.)CHANGELOG.mdtouched; this only affects future GitHub Release bodies.)UI Evidence
N/A — no UI/frontend/docs/extension change.
Notes
orb-v0.2.0(and optionallyorb-v0.1.0) release notes viagh release editusing the same generate-notes call, so the current releases get the changelog immediately instead of waiting for the next tag.