Skip to content

ci: keep release lockfile refreshes reproducible and check release credentials early - #3

Merged
kvlonge merged 2 commits into
mainfrom
ci/pin-uv
Oct 30, 2026
Merged

kvlonge merged 2 commits into
mainfrom
ci/pin-uv

Conversation

@kvlonge

@kvlonge kvlonge commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Why

The first release pull request failed twice: Release Please crashed with a raw appId error while the release App settings were missing, and then uv 0.13.6 (latest in CI) rewrote uv.lock to revision = 5, which the release metadata check rejected.

Changes

  • Pin every setup-uv step to uv 0.12.9 and set [tool.uv] required-version = ">=0.12.9,<0.13", so local and CI uv write the same lock format.
  • make release-rehearsal and a Release rehearsal job in Verify: apply Release Please's version edits on a scratch worktree, refresh lockfiles as the release workflow does, then run the unchanged strict release metadata check.
  • Release Please first checks that RELEASE_APP_ID and RELEASE_APP_PRIVATE_KEY exist, without reading the secret, and names the missing one.
  • .github/RELEASING.md: one-time setup (release App, PyPI trusted publishers, Cloudflare domains), tooling versions and token limitations.

Verification

  • Rehearsal passes with uv 0.12.9 and fails with uv 0.13.6 with the same error as the real release run.
  • Credential check exercised for present, one missing and both missing.
  • make verify and actionlint pass; hygiene scan clean.

The latest uv rewrites uv.lock with a newer revision, which the release
metadata check rejects as a change beyond the version substitution.

Amp-Thread-ID: https://ampcode.com/threads/T-01a18b8a-340f-717d-9ca7-6dcf564a065a
Co-authored-by: Kevin Longe <kvlonge@gmail.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Deploying sqlclean with  Cloudflare Pages  Cloudflare Pages

Latest commit: fc82267
Status: ✅  Deploy successful!
Preview URL: https://9e5ae27d.sqlclean.pages.dev
Branch Preview URL: https://ci-pin-uv.sqlclean.pages.dev

View logs

simulate_release.sh applies Release Please's version edits on a scratch
worktree, refreshes the lockfiles like the release workflow and runs the
release metadata check. required-version keeps local uv on the pinned line.
Release Please now fails first with the missing variable or secret named.

Amp-Thread-ID: https://ampcode.com/threads/T-01a18b8a-340f-717d-9ca7-6dcf564a065a
Co-authored-by: Kevin Longe <kvlonge@gmail.com>
@kvlonge kvlonge changed the title ci: pin uv so release lockfile refreshes keep the committed lock format ci: keep release lockfile refreshes reproducible and check release credentials early Oct 30, 2026
@kvlonge
kvlonge merged commit 14a4d2a into main Oct 30, 2026
16 checks passed
kvlonge added a commit that referenced this pull request Oct 31, 2026
…edentials early (#3)

* ci: pin uv so release lockfile refreshes keep the committed lock format

The latest uv rewrites uv.lock with a newer revision, which the release
metadata check rejects as a change beyond the version substitution.

Co-authored-by: Kevin Longe <kvlonge@gmail.com>

* ci: rehearse releases in Verify and name missing release credentials

simulate_release.sh applies Release Please's version edits on a scratch
worktree, refreshes the lockfiles like the release workflow and runs the
release metadata check. required-version keeps local uv on the pinned line.
Release Please now fails first with the missing variable or secret named.

Co-authored-by: Kevin Longe <kvlonge@gmail.com>

---------
@kvlonge
kvlonge deleted the ci/pin-uv branch October 31, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants