Skip to content

feat: support Python 3.15 (and make the CI matrix test what it says) - #67

Merged
HugoFara merged 1 commit into
mainfrom
feat/python-3.15
Oct 25, 2026
Merged

HugoFara merged 1 commit into
mainfrom
feat/python-3.15

Conversation

@HugoFara

Copy link
Copy Markdown
Owner

Python 3.15

  • Adds the 3.15 classifier and a 3.15 CI job.
  • cad extra: build123d depends on cadquery-ocp, which has no cp315 wheels yet. On 3.15 the extra now installs only ezdxf (via a python_version < '3.15' marker), so DXF export works but STEP export does not. The ImportError from STEP export now says so.
  • moo extra: pymoo and moocore have no 3.15 wheels either, but they build from source and their tests pass.
  • README and CHANGELOG (Unreleased → Added) are updated.
  • uv.lock: only the build123d marker changes. The rest of the diff is the newer uv reordering resolution markers, and no package version moves.

CI fix: the matrix was testing Python 3.11 only

Each job ran uv sync --python X, then plain uv run …. uv run follows .python-version (3.11), so it deleted the environment and rebuilt it with 3.11. The "3.14" job log of #66 shows Using CPython 3.14.9 then Using CPython 3.11.17 / Removed virtual environment. A job-level UV_PYTHON: ${{ matrix.python-version }} now keeps every uv command on the matrix version.

Checked locally on Python 3.15.1 (with UV_PYTHON=3.15, interpreter confirmed after each step)

  • pytest: 2649 passed, 7 skipped
  • with --extra cad --extra moo: tests/visualizer + tests/optimization 332 passed, 3 skipped
  • ruff check . and mypy src/pylinkage: clean

Add the 3.15 classifier and CI job. cadquery-ocp, which build123d needs,
has no 3.15 wheels yet, so the cad extra skips build123d on 3.15: DXF
export works there, STEP export does not.

Also pin each CI matrix job to its Python with UV_PYTHON. Until now,
'uv run' re-created .venv from .python-version, so every job of the
matrix actually tested Python 3.11.
@HugoFara
HugoFara merged commit 7782859 into main Oct 25, 2026
10 checks passed
@HugoFara
HugoFara deleted the feat/python-3.15 branch October 25, 2026 15:31
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