Skip to content

fix: make Python 3.15 installs resolve supported Pydantic - #28

Merged
stefan-jansen merged 1 commit into
mainfrom
release/0.1.1-py315-install
Aug 9, 2026
Merged

fix: make Python 3.15 installs resolve supported Pydantic#28
stefan-jansen merged 1 commit into
mainfrom
release/0.1.1-py315-install

Conversation

@stefan-jansen

Copy link
Copy Markdown
Contributor

A clean public-index install of ml4t-engineer 0.1.0 on Python 3.15.0rc1 resolved pydantic 2.13.4 and failed while building pydantic-core 2.46.4. The locked release matrix did not detect this resolver path. This change selects pydantic 2.14.0b1 or newer on Python 3.15, whose pydantic-core 2.48.0 publishes CPython 3.15 wheels, while retaining stable Pydantic on Python 3.12-3.14. CI now installs each built wheel with fresh dependency resolution and an empty cache before locked test dependencies. Qualification run 31285692862 passed all 17 jobs, including Python 3.15 RC fresh installation on Linux, macOS, and Windows.

Copilot AI lite review requested due to automatic review settings August 9, 2026 00:54

Copilot AI 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.

Pull request overview

Updates dependency constraints and CI validation so ml4t-engineer can install cleanly on Python 3.15 (including prereleases) by selecting a Pydantic / pydantic-core combination that publishes CPython 3.15 wheels.

Changes:

  • Split core dependency spec to use stable pydantic>=2.0.0 on Python <3.15 and pydantic>=2.14.0b1 on Python ≥3.15.
  • Update uv.lock to lock separate Pydantic / pydantic-core versions across the Python <3.15 vs ≥3.15 boundary.
  • Adjust CI and release-policy tests to install the built wheel with fresh dependency resolution before applying locked test requirements.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
pyproject.toml Adds Python-version-conditional Pydantic requirements to unblock Python 3.15 installs.
uv.lock Locks Pydantic 2.13.4 (<3.15) vs 2.14.0b1 (≥3.15) and associated marker splits.
.github/workflows/ci.yml Installs built wheel into a fresh venv with a dedicated cache directory before locked test deps.
tests/test_release_policy.py Extends CI contract assertions and validates the conditional Pydantic requirements.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml
Comment on lines 159 to +162
uv venv --python python .artifact-venv
artifact_wheel="$(find dist -maxdepth 1 -name '*.whl' -print -quit)"
UV_CACHE_DIR="${{ runner.temp }}/fresh-wheel-cache" \
uv pip install --python .artifact-venv "$artifact_wheel"
@stefan-jansen
stefan-jansen merged commit fec083c into main Aug 9, 2026
35 checks passed
@stefan-jansen
stefan-jansen deleted the release/0.1.1-py315-install branch August 11, 2026 15:58
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