Make the weekly SDK regen actually release - #30
Conversation
The weekly job regenerated the SDKs and opened a PR, but nothing connected a merged regen to a published package. It also never bumped a version, and its add-paths allowlist excluded the manifests, so a merged regen PR was structurally incapable of being released. Every release since May has been a hand-pushed tag. Three changes: - the regen bumps the patch version of whichever SDKs actually changed, and re-runs codegen when Python moved, since the package version is baked into the generated tree - release-on-version-bump.yml tags any version on main without a matching tag, which fires the existing publish workflows. Uses the PAT, because a tag pushed with GITHUB_TOKEN does not trigger other workflows - the regen files an issue when it fails, reusing one so weekly failures accumulate in a thread That last one is the actual bug: this job failed silently every week from 07-13 to 07-29 and the SDKs drifted from the API for sixteen days with no signal at all.
|
Warning Review limit reached
Next review available in: 40 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
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 |
You thought the weekly regen-and-publish was already set up. Half of it was: the regen runs weekly and opens a PR. The publish half never existed.
What was actually wired
regenerate-sdks.ymlpublish-coval-sdk.ymlpython-sdk-v*publish-coval-npm.ymltypescript-sdk-v*Nothing connects a merged regen PR to a release. PyPI confirms it — five releases ever, on three days (May 13, Jul 14, Jul 29). Never weekly.
And a regen PR could not have been released even if merged: it never bumped a version, and its
add-pathsallowlist excludedpyproject.tomlandpackage.json. That's why #26 needed #27 purely to become releasable.Changes
1. The regen bumps versions. Patch bump for whichever SDKs actually changed, via
scripts/bump-sdk-version.py. Re-runs codegen when Python moved, since the package version is baked into the generated tree bygenerate-sdks.sh. Manifests and the pinned test assertion are added toadd-paths.2.
release-on-version-bump.ymltags any version on main lacking a matching tag, which fires the existing publish workflows. UsesREGEN_PR_TOKENdeliberately — a tag pushed withGITHUB_TOKENdoes not trigger other workflows, so the publish jobs would silently never run.3. Failure alerting. The regen files an issue when it fails, reusing one issue so repeated weekly failures accumulate in a thread rather than spamming.
That third one is the real bug. This job failed silently every week from July 13 to July 29 — sixteen days of the SDKs drifting from the API, through the entire Upstart investigation, with no signal. A scheduled workflow has no reviewer and nobody watches the Actions tab.
Resulting cadence
Monday 02:00 PST → regen → PR with the version already bumped → you merge → auto-tag → published. One click a week, with a human still seeing the diff. Worth keeping that gate: the last regen silently introduced breaking model renames (
CovalRunsAPIRun→CovalRunsAPIRunResource), which no CI check can distinguish from a docstring tweak.Verified
The bump step was extracted from the YAML and run under bash, as Actions would:
Tag logic checked against the live repo:
python-sdk-v0.5.0andtypescript-sdk-v0.4.0are correctly detected as already released, so a no-op push does nothing.Two bugs found and fixed while testing:
changed X && args=...aborts the whole step underset -euo pipefailwhenchangedreturns false, since a failing&&list is itself a failing statement. That would have killed every run where only one SDK changed — the common case. Now uses explicitifblocks and a bash array.git status, notgit diff: a new spec model arrives as an untracked file and never appears in a diff against HEAD.Note
No Linear issue attached — the Linear MCP isn't reachable from this session and there's no API key on disk.