Skip to content

ci: qualify Python 3.15 final across supported platforms - #93

Merged
stefan-jansen merged 8 commits into
mainfrom
ci/python315-final-qualification
Oct 18, 2026
Merged

stefan-jansen merged 8 commits into
mainfrom
ci/python315-final-qualification

Conversation

@stefan-jansen

@stefan-jansen stefan-jansen commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Refs #56. Close the compatibility wait only after fresh merged-main qualification passes on every supported platform.

Add final Python 3.15 to the complete installed-wheel matrix alongside 3.12-3.14 on Linux, macOS and Windows. Retain immutable build-once artifacts, actual installed import/byte verification, full suites, types, coverage, security and executable/strict documentation. Remove the obsolete shared dependency-wait exception. The monthly unlocked-dependency canary remains unchanged.

Current head: d752adbd2e953ad2411b23372fe828a7002ba3f8. It includes actual temporal main b0d202771151c1eb3e8e89f0917452ac4878c17c, published Specs >=0.2,<0.3, and the merged CI101 workflow. Each of the twelve supported cells runs one complete suite; separate fresh-process MACD, public-order and cold-call stress retains its configured repetitions. The shared workflow's additional 3.15 rc1 probe does not substitute for final 3.15.0 qualification.

Repairs and compatibility

  • TA-Lib 0.7.1 failed to build on final 3.15 without native headers. Require >=0.8.2,<0.9, which supplies supported native wheels. Update the observed source-build reference dependencies to SciPy 1.18.1 and contourpy 1.4.0. Keep TA/store/viz coverage on all platforms.
  • The previous Windows job spent 40 minutes installing dependencies, including DuckDB 1.5.6 compilation, then hit its 45-minute limit during tests. Budget 90 minutes for 3.15 full-wheel and native jobs; retain existing budgets elsewhere. Do not omit tests or change child-process timeouts.
  • Preserve Engineer APO/PPO's SMA default by explicitly matching TA-Lib's moving-average parameter. TA-Lib 0.8 defaults to EMA. For the seeded crypto-price regression producer, an independent 50-digit Decimal calculation measured slope errors of 5.9e-12 for Engineer versus 2.9e-9 for the drifting TA reference. Use translated least squares for this comparison, preserving rtol=1e-7 and checking NaN/warmup masks. No runtime numerical definition changed.
  • Distinguish development 0.2 examples from published 0.1.6. The new calendar argument fails against the published package; its preserved tagged quick start passes and is linked. Correct the source installation's clone-directory step. Actual clone-to-core-install-to-README execution passes on Python 3.14 with 17 runtime packages. Correct the copied bug-form project description without changing intake policy or fields.

Executed evidence

At frozen integration ecce4c5618c3aa008f8f3532fd60853b795c216d:

  • 206 focused cases pass in 42.55s.
  • Complete source suites each pass 4,695 tests, normal in 189.55s and canonical coverage mode in 181.22s. All critical thresholds pass, with 95.91% line and 89.99% branch coverage.
  • The normally installed exact wheel on final CPython 3.15.0 passes all 4,695 tests in 123.84s, dependency consistency, immutable package identity and executable documentation. An earlier outside-checkout invocation had seven artifact-fixture CWD setup errors; the corrected complete run executes those seven tests successfully, with nothing skipped.

The final d752adb follow-up changes only the native job budget. All 200 package files are independently byte-identical to that fully tested wheel. Its fresh installed 3.15 run passes 368 public consumers, 200 Engineer/nine published Specs file identities, and dependency consistency. Actionlint, Ruff/format/ty/hooks, lock, executable docs, strict MkDocs and package/Twine checks pass.

Final local artifact tree: 3cf03d044d547a48606a82140757bd24c1f00c62.

  • Wheel SHA256: f7c0c083a9d4c6cb7556c48854b1981eb62023c50309c850413d62c4be573270.
  • Sdist SHA256: eb51defc05cb169f04307dcd0f76b7b19b4db40195182b6a7d777eeaac0614cf.

All 49 candidate contexts completed, with 48 successes and one inapplicable exception skip. Every installed-wheel cell passes all 4,695 tests, installed-origin/byte checks, types and executable docs, including actual final CPython 3.15.0 on all three systems. All shared source and native stress cells pass. Windows 3.15 full-suite job 117568707870 passed in 322.31s; native job 117568139621 passed the full configured stress protocol. Final package job 117576041937 succeeded at 03:30:23 UTC.

Ordinary exact-head-guarded merge completed at 2026-10-18 03:30:48 UTC as f24a0c5fdfd50f10b32da7a7d5748580de8f38ea, without admin bypass. Reviewed head, tested synthetic c405a28f7f56111b5da340616da37be57ce665ab and actual main have identical tree 3cf03d044d547a48606a82140757bd24c1f00c62. Fresh actual-main checks are running; issue56 deliberately remains open until they pass.

This PR does not authorize or perform a release, deployment or retry of the separately denied archive action. Breaking calendar/default-grid changes target 0.2, not the historical 0.1.7 patch.

AI assistance: Codex reviewed discussion and logs, reproduced failures, reconciled reference methods, implemented and reviewed these changes, and executed the stated checks. No independent human review is claimed.

Copilot AI balanced review requested due to automatic review settings October 17, 2026 14:12

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@stefan-jansen
stefan-jansen merged commit f24a0c5 into main Oct 18, 2026
49 checks passed
@stefan-jansen
stefan-jansen deleted the ci/python315-final-qualification branch October 18, 2026 03:30
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