Skip to content

ci: add an advisory Python 3.15 pre-release leg to the matrix (#126)#132

Merged
luisgf merged 2 commits into
mainfrom
ci/python-3.15
Jul 19, 2026
Merged

ci: add an advisory Python 3.15 pre-release leg to the matrix (#126)#132
luisgf merged 2 commits into
mainfrom
ci/python-3.15

Conversation

@luisgf

@luisgf luisgf commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #126 — CPython 3.15 (final 2026-10-01) now has a CI leg.

No CHANGELOG entry and no release: this is CI-only — the published artifact is byte-identical, and no trove classifier changes yet. That matches the precedent from when 3.14 joined the matrix (2da5a98), which carried neither. The entry and classifier land with the October follow-up.

Local gate green: flake8, mypy, pytest 1217 passed / 20 skipped, build + twine. Workflow YAML validated: the matrix resolves to 7 legs (3.10–3.15 + the pyld 2.0.4 floor leg).

luisgf added 2 commits July 19, 2026 10:13
CPython 3.15 is final on 2026-10-01; 3.15.0-beta.3 is already in the
setup-python manifest. The leg runs continue-on-error so a pre-release
regression reports without blocking a merge, and allow-prereleases only
falls back to a pre-release while a version line has no GA build — so
when 3.15.0 ships the same pin resolves to it with no edit; only the
continue-on-error line and the trove classifier are left to flip.

The supported floor is untouched: >=3.10 for all of 1.x (the raise to
>=3.11 belongs to the 2.0 window, #74).

No CHANGELOG entry: CI-only, the published artifact is unchanged —
matching the precedent set when 3.14 joined the matrix.

Closes #126
… override

The first run of the new leg failed at install: lxml (pulled by signxml and
by pyld 3.x) publishes no cp315 wheel, so pip fell back to building it from
source and died for want of libxml2 headers. That is an ecosystem lag in an
optional transitive dep, not an openvc signal — and a permanently-red advisory
leg teaches everyone to ignore CI.

The leg now installs [ebsi,dev] instead of [all], so it actually exercises
openvc's own hand-rolled core (JOSE, CBOR/COSE, codecs, status lists, DIDs) on
the new interpreter: 1028 of 1107 tests run, the rest importorskip. Coverage on
that subset is 82%, so the leg is held to the local gate's floor of 80 rather
than the full-matrix 85. Verified in a venv built with exactly those extras.

That same venv surfaced a latent config bug: signxml was missing from mypy's
ignore_missing_imports overrides, so `mypy` failed for ANYONE working without
the [trustlist] extra installed, not just on 3.15. Added; mypy is now clean
both with and without the optional extras.
@luisgf
luisgf merged commit f4a4c55 into main Jul 19, 2026
8 checks passed
@luisgf
luisgf deleted the ci/python-3.15 branch July 19, 2026 08:22
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.

ci: add Python 3.15 to the test matrix (rc now; final 2026-10-01)

1 participant