Skip to content

ci: run the native shapes and unit tests on Python 3.14 - #382

Merged
kvlonge merged 2 commits into
mainfrom
ci/python-314-shape-check
Nov 11, 2026
Merged

kvlonge merged 2 commits into
mainfrom
ci/python-314-shape-check

Conversation

@kvlonge

@kvlonge kvlonge commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Why

SQLTide declares requires-python = ">=3.12", but CI only runs Python 3.12. Behaviour that differs on newer interpreters can therefore ship unnoticed: until the previous release, copy.replace raised TypeError on every native shape under Python 3.13 and later.

Changes

  • New Python Latest workflow with one job, Native shapes on Python 3.14. It builds the extension on Python 3.14, confirms the interpreter version, then runs the shape surface check and the unit tests.
  • It runs nightly and on manual dispatch, plus on pull requests that change the workflow itself. It is not a required PR check: the job takes about 8 runner minutes, which is more than it should add to every pull request.
  • verify.yml is unchanged.

Verification

  • Locally, with the extension built on Python 3.14.7: the shape surface check matches the baseline (751 names) and all 1905 unit tests pass.
  • actionlint passes on the new workflow.
  • On this PR's first revision, where the job ran inside Verify, it passed in 8m12s. This revision runs it through the new workflow's own pull_request trigger.

The package supports Python 3.12 and later, but CI only exercised 3.12,
so behaviour that differs on newer interpreters went unnoticed. A
parallel job now builds the extension on Python 3.14 and runs the shape
surface check and the unit tests whenever native or Python code changes,
and the Verify aggregate requires it.
@kvlonge
kvlonge enabled auto-merge (squash) November 11, 2026 07:44
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Deploying sqltide with  Cloudflare Pages  Cloudflare Pages

Latest commit: 5ec93e6
Status: ✅  Deploy successful!
Preview URL: https://4cbd1f5d.sqltide.pages.dev
Branch Preview URL: https://ci-python-314-shape-check.sqltide.pages.dev

View logs

The job takes about eight runner minutes, so it moves out of the
required Verify workflow into its own workflow that runs nightly, on
manual dispatch and on pull requests that change it.
@kvlonge
kvlonge merged commit a1f3134 into main Nov 11, 2026
13 checks passed
@kvlonge
kvlonge deleted the ci/python-314-shape-check branch November 11, 2026 08:15
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.

1 participant