Skip to content

chore: add Python 3.14 to CI matrix and pyproject classifiers (Modernization Phase 6)#47

Merged
MHoroszowski merged 1 commit into
masterfrom
feature/modernization-python314
May 12, 2026
Merged

chore: add Python 3.14 to CI matrix and pyproject classifiers (Modernization Phase 6)#47
MHoroszowski merged 1 commit into
masterfrom
feature/modernization-python314

Conversation

@MHoroszowski
Copy link
Copy Markdown
Owner

Summary

Adds Python 3.14 to the CI test matrix and the python-pptx-extended classifier list. Final missing surface from the Modernization & Ergonomics epic (#29).

Python 3.14 went GA in October 2025. Phases 1–5 (PathLike, UTC datetimes, collections.abc imports, Font.color non-mutation, uv-managed deps, pyright strict on public API) already landed the substantive modernization work — adding 3.14 to the matrix at this point is a free addition: tests pass locally on CPython 3.14.4 with zero new filterwarnings allowlist entries needed.

Changes

  • .github/workflows/ci.yml — append "3.14" to the test job matrix (fail-fast: false so a 3.14 regression doesn't mask the other versions)
  • pyproject.toml — add Programming Language :: Python :: 3.14 classifier

requires-python stays at >=3.9; no lower-version drop.

Local verification (CPython 3.14.4)

$ python3 -m pytest tests/ -q | tail -3
........................................................................ [ 99%]
.............................                                            [100%]
3485 passed in 6.56s

$ python3 -m ruff check src tests | tail -3
All checks passed!

$ python3 -m ruff format --check src tests | tail -3
215 files already formatted

$ python3 -m behave features/ --no-color 2>&1 | tail -3
1048 scenarios passed, 0 failed, 0 skipped
3151 steps passed, 0 failed, 0 skipped
Took 0min 2.082s

Refs #29.

Python 3.14 went GA in October 2025. With the modernization phases 1-5
landed (pathlib support, UTC datetimes, collections.abc imports,
Font.color non-mutation, uv-managed deps, pyright strict on public API),
the codebase already runs clean on 3.14 locally — adding it to the CI
matrix is the last missing surface.

Changes:
- .github/workflows/ci.yml: append "3.14" to the test job matrix
- pyproject.toml: add 'Programming Language :: Python :: 3.14' classifier

requires-python stays at >=3.9; no lower-version drop.

Verification (local, CPython 3.14.4):
- python3 -m pytest tests/ -q     → 3485 passed in 6.56s
- python3 -m ruff check src tests → All checks passed
- python3 -m ruff format --check  → 215 files already formatted
- python3 -m behave features/     → 1048 scenarios, 0 failed; 3151 steps, 0 failed

Refs #29.
@MHoroszowski MHoroszowski merged commit 1578fcb into master May 12, 2026
18 checks passed
@MHoroszowski MHoroszowski deleted the feature/modernization-python314 branch May 12, 2026 14:44
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