Skip to content

Track Python 3.15 core dependency compatibility #56

Closed

Description

@stefan-jansen

Engineer currently declares Requires-Python: >=3.12,<3.15 under the ecosystem Python 3.15 waiting policy. Python 3.12 through 3.14 remain the supported release range.

Run a visible, non-blocking Python 3.15 core canary at least monthly. Recheck immediately when Python 3.15 final ships or when Polars publishes a stable release after 1.44.2. Removing the upper bound requires the complete non-hardware-dependent suite, package build, and installed-wheel import to pass on Linux, macOS, and Windows.

This is an external-dependency waiting record, not a blocker for an otherwise qualified 0.1 patch release. Tracked by ml4t/ecosystem#33 and Decision 0013.

Activity

  1. added
    type: maintenanceInternal maintenance without user-visible behavior
    status: blockedCannot progress until the documented dependency resolves
    compatibility: affectedHas Python, platform, dependency, or cross-library compatibility impact
    ecosystemTracked by a shared ML4T ecosystem requirement
    on Sep 21, 2026
  2. stefan-jansen commented on Sep 21, 2026

    @stefan-jansen
    ContributorAuthor

    Initial evidence on 2026-09-20:

    • Python 3.12-3.14 is green locally: 3,925 tests passed, with the focused public API and bar-sampler contract suite also passing.
    • An isolated CPython 3.15.0rc1 run against the current stable core constraints stops during dependency installation because stable Pydantic selects pydantic-core==2.46.5, which has no CPython 3.15 wheel.
    • Pull request ci: complete Engineer closure audit #57 adds the monthly Ubuntu canary. It is scheduled and manually dispatchable, but is not a pull-request or release gate.

    Keep this issue open. Recheck on Python 3.15 final or after a stable Polars release newer than 1.44.2, then require the full Linux, macOS, and Windows qualification before removing the upper bound.

  3. stefan-jansen commented on Oct 15, 2026

    @stefan-jansen
    ContributorAuthor

    Keep this issue open and retain Requires-Python >=3.12,<3.15. The missing closure evidence is current-main qualification with Python 3.15 final on Linux, macOS and Windows, including the complete eligible test suite, package build and installed-wheel import.

    The useful local maintenance is now integrated through #77 and #86: numeric side validation supports Polars 2, the monthly canary installs pytest-cov, and the reusable workflow consumers use the reviewed trigger-based exception policy. Current main also adopts pandas-market-calendars >=5.5 with corrected modern CME break handling and historical-break regressions. Python 3.12-3.14 qualification passed for those merged changes.

    The earlier 3,997-test local Python 3.15 result belongs to prepared revision c48069c, not current main. That branch includes the subsequently withdrawn pandas-market-calendars <5.5 cap, so neither merging that branch wholesale nor reusing its local result establishes present 3.15 support. Its useful bar and workflow changes match the integrated source; the obsolete calendar cap must not be restored.

    Next technical action: qualify current main with the final interpreter on all three hosted platforms through the shared qualification setup. Only after those results, build and installed-wheel import pass should a focused compatibility PR remove the upper bound. The existing supported-range patch release does not depend on declaring Python 3.15 supported.

    AI assistance: Codex reconciled the prepared branch with merged source, inspected the issue's closure contract, and prepared this maintenance assessment. No Python 3.15 hosted final-platform result is claimed here.

  4. stefan-jansen commented on Oct 18, 2026

    @stefan-jansen
    ContributorAuthor

    Completed through #93 and #105. Current main c69e7ba is qualified with final CPython 3.15.0 on Linux, macOS and Windows, alongside Python 3.12-3.14.

    All twelve installed-wheel cells passed 4,695 eligible tests each, type checking and executable documentation workflows. Each cell verified the actual installed version, site-packages origin and all 200 package files against the commit-bound wheel. All twelve native cells also passed, including ten fresh-process MACD runs, both public-order runs and twelve isolated cold calls per cell. The interpreter-specific cache fix was verified through real cold builds/cache saves and warm reuse, not a configuration-only assertion.

    Fresh actual-main checks completed with 46 successes and two configured inapplicable skips, with no pending or failing contexts. Source qualification, coverage thresholds, security, strict docs and final package verification passed. Coverage's configured critical thresholds passed at 96.01% lines and 89.99% branches.

    Installed-wheel CI: https://github.com/ml4t/engineer/actions/runs/39101647669
    Native qualification: https://github.com/ml4t/engineer/actions/runs/39101647706
    Shared source qualification: https://github.com/ml4t/engineer/actions/runs/39101647951

    This closes the source compatibility waiting record, not a release announcement. Published 0.1.6 still excludes Python 3.15. Current development includes breaking calendar changes and targets the next minor release, 0.2.0; publication and documentation deployment remain separate decisions.

    AI assistance: Codex reproduced the dependency/cache failures, implemented and reviewed the repairs, inspected the actual hosted logs and artifacts, and prepared this closure evidence. No independent human review or publication is claimed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    compatibility: affectedHas Python, platform, dependency, or cross-library compatibility impactecosystemTracked by a shared ML4T ecosystem requirementpriority: normalNormal planned workstatus: blockedCannot progress until the documented dependency resolvestype: maintenanceInternal maintenance without user-visible behavior

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions