Skip to content

chore: add Python 3.15 to CI and make it default - #717

Merged
brndnmtthws merged 1 commit into
mainfrom
brndnmtthws/chore/python-3-15
Oct 14, 2026
Merged

brndnmtthws merged 1 commit into
mainfrom
brndnmtthws/chore/python-3-15

Conversation

@brndnmtthws

Copy link
Copy Markdown
Owner

Summary

Add Python 3.15 to CI and make it the default: test matrices in all three workflows gain 3.15, publish/docker build images, .python-version, and Dockerfile move to 3.15, requires-python widens to >=3.11,<3.16, and the lockfile resolves 3.15 wheels.

User Impact

CI covers 3.15; local dev (uv sync via .python-version) and Docker builds run 3.15.0 stable. No trading behavior changes.

Root Cause

3.15 final shipped but the repo pinned 3.14 as default and capped requires-python at <3.15, so 3.15 was untested and uninstallable.

Fix

  • CI matrices: python-test, python-publish, docker-publish test 3.11–3.15; publish/docker build steps use 3.15.
  • Default: .python-version 3.15, Dockerfile uv python install 3.15 / venv, README range 3.11–3.15.
  • Packaging: requires-python >=3.11,<3.16, lockfile regenerated for 3.15 wheels.
  • Tooling: uv-pre-commit hooks bumped 0.9.8 → 0.13.1 (uv ≤0.12 only knows the 3.15 RC; 0.13 resolves 3.15.0 final). CI's setup-uv@v7 and the Dockerfile installer already track latest uv, so no bump needed there.
  • Deps: pydantic 2.12.5→2.14.1 (+pydantic-core 2.41.5→2.50.1), numpy 2.4.1→2.5.4, pandas 3.0.0→3.0.6, typing-extensions/inspection — the locked pydantic-core used PyO3 0.26 (max Python 3.14) and had no cp315 wheel, so 3.15 sync failed building from source.

Validation

  • uv run pytest -q tests under 3.15.0: 818 passed.
  • ruff check --diff, ruff format --check --diff, ty check: all clean.

@brndnmtthws
brndnmtthws marked this pull request as ready for review October 14, 2026 22:25
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T22:28:17.264320Z 00b9380 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-14T22:27:36.196705Z 00b9380 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@brndnmtthws
brndnmtthws enabled auto-merge (squash) October 14, 2026 22:26

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 00b93800bb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread uv.lock
revision = 3
requires-python = ">=3.11, <3.15"
revision = 5
requires-python = ">=3.11, <3.16"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Upgrade greenlet before locking Python 3.15

On a clean Python 3.15 sync—especially on Windows or any host without a C++ toolchain—the widened lock still selects greenlet==3.3.0 at lines 268–271, which has no cp315 wheel and predates Python 3.15 support. The greenlet changelog says preliminary 3.15 support arrived in 3.5.1, so uv sync must attempt to build this unsupported older release from source and can fail even though compatible 3.5.x wheels exist. Upgrade greenlet while regenerating the lock for 3.15.

Useful? React with 👍 / 👎.

@brndnmtthws
brndnmtthws merged commit 443cbce into main Oct 14, 2026
11 checks passed
@brndnmtthws
brndnmtthws deleted the brndnmtthws/chore/python-3-15 branch October 14, 2026 22:28
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