Skip to content

Track Python 3.15 dependency wheel compatibility #45

Open

Description

@stefan-jansen

Current state

PyArrow is no longer the external wheel blocker. On 2026-10-17, PyPI lists PyArrow 26.0.0 CPython 3.15 wheels for Linux, macOS and Windows, including x86-64 and ARM platforms where applicable. The published wheel filenames and SHA256 digests were inspected directly; this is distribution evidence, not an executed Diagnostic compatibility result.

Diagnostic still declares Requires-Python >=3.12,<3.15. Reviewed source 7525a8c retains PyArrow 25.0.0 in its frozen lock and the configured Python 3.15 qualification exception. No Python 3.15 installation or supported-platform test qualification has been established by this update. The issue remains open for actual compatibility work, not waiting for an already-published wheel.

Historical reproduction

The original published ml4t-diagnostic==0.1.2 dependency set failed installation on CPython 3.15.0rc1 when its PyArrow release had no compatible wheel and a source build lacked Arrow C++ development libraries. The subsequent PyArrow 25.0.1 wheel inspection likewise found no cp315 artifacts. Retain that evidence as historical; it does not describe current PyArrow 26.0.0 availability.

Acceptance

  • Refresh the qualification dependency set to a compatible published PyArrow release and resolve all remaining supported-install constraints.
  • Execute core installation and the complete non-hardware-dependent Diagnostic suite on Python 3.15 across Linux, macOS and Windows, including relevant installed-wheel public workflows and real failure/timeout/empty-collection detection.
  • Keep the current truthful Python upper bound and exception until the proposed support change passes its actual gates. Remove them together only after qualification, preserving existing Python 3.12-3.14 support.
  • Verify published-package support before closing the tracking issue; a source-only passing candidate is not a published replacement.

The earlier measurement hold is no longer current. Decision 0013 keeps Python 3.12-3.14 qualification blocking and permits a truthful <3.15 bound on the 0.1 release line. It requires current owning-issue evidence and a visible monthly canary. The dependency review triggers have occurred; full Python 3.15 installation/import/suite qualification is still outstanding. A validated exception job is not a Python 3.15 test run. This issue remains open; the approved wait does not block an otherwise qualified supported-platform patch release.

Tracked across libraries by ml4t/ecosystem#2.

AI assistance

Codex inspected the current PyPI metadata, Diagnostic dependency declarations and existing issue evidence, and drafted this update. The owner retains responsibility for source review and executed qualification; none is inferred from wheel availability.

Activity

  1. added
    type: bugConfirmed or reported incorrect behavior
    priority: highMaterial user impact requiring prompt remediation
    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 Aug 25, 2026
  2. stefan-jansen commented on Sep 3, 2026

    @stefan-jansen
    ContributorAuthor

    Maintainer status: still blocked. PyPI currently reports PyArrow 25.0.1, which has no CPython 3.15 wheels. The next review is 2026-09-15, or earlier when PyArrow 26.0.0 is published. Closure still requires Linux, macOS, and Windows Python 3.15 qualification plus published-package verification.

  3. changed the title [-]Track Python 3.15 PyArrow wheel compatibility[/-] [+]Track Python 3.15 dependency wheel compatibility[/+] on Sep 3, 2026
  4. stefan-jansen commented on Sep 3, 2026

    @stefan-jansen
    ContributorAuthor

    Fresh candidate evidence on 2026-09-03 adds a second dependency-stack blocker. Installing current main c1a7830 on CPython 3.15.0rc1 resolves Pydantic 2.13.5 to pydantic-core 2.46.5; that version has no cp315 wheel and its maturin source build fails before import. PyPI currently shows 30 cp315 files for pydantic-core 2.48.0, but Pydantic 2.13.5 pins 2.46.5. PyArrow 25.0.1 still has zero cp315 files. The issue now tracks both blockers; closure still requires an end-to-end install and full three-platform qualification, so resolving either package alone is insufficient.

  5. stefan-jansen commented on Sep 5, 2026

    @stefan-jansen
    ContributorAuthor

    Dependency recheck on 2026-09-05: PyPI still reports PyArrow 25.0.1 with zero CPython 3.15 wheels. Pydantic 2.13.5 still pins pydantic-core 2.46.5, while the CPython 3.15 wheels are in pydantic-core 2.48.0. The issue remains blocked; no source change can satisfy the three-platform acceptance criteria yet.

  6. stefan-jansen commented on Sep 19, 2026

    @stefan-jansen
    ContributorAuthor

    Maintainer recheck on 2026-09-19:

    • PyArrow 25.0.1 remains the latest stable release and still publishes zero CPython 3.15 wheels.
    • Pydantic 2.13.5 still pins pydantic-core 2.46.5, which also publishes zero CPython 3.15 wheels.
    • Pydantic 2.14.0b2 resolves to pydantic-core 2.49.0, which has CPython 3.15 wheels, but that is not yet a stable resolver path and PyArrow remains an independent blocker.

    This stays open. Recheck immediately when PyArrow 26.0.0 or stable Pydantic 2.14 is published, otherwise on 2026-09-26. Closure still requires the complete non-hardware suite on Python 3.15 across Linux, macOS, and Windows, followed by the Requires-Python change and published-package verification.

  7. added
    type: maintenanceInternal maintenance without user-visible behavior
    and removed
    type: bugConfirmed or reported incorrect behavior
    priority: highMaterial user impact requiring prompt remediation
    on Sep 21, 2026
  8. stefan-jansen commented on Sep 21, 2026

    @stefan-jansen
    ContributorAuthor

    Decision 0013 in ecosystem pull request ml4t/ecosystem#41 replaces the September 30 expiry with a
    version-scoped prerelease wait for the Diagnostic 0.1 release line.

    Diagnostic owns the dependency and suite evidence. Recheck when Python 3.15 final ships or when
    PyArrow 26 ships. Until the complete suite passes on Linux, macOS, and Windows, Diagnostic keeps its
    truthful <3.15 upper bound and runs a visible non-blocking canary at least monthly. Python 3.12
    through 3.14 qualification remains blocking; Python 3.15 readiness does not block an otherwise
    qualified patch release.

    Pydantic-core 2.49.0 now publishes CPython 3.15 wheels, so it is no longer a current blocker.

  9. stefan-jansen commented on Oct 14, 2026

    @stefan-jansen
    ContributorAuthor

    Fresh upstream recheck on 2026-10-14: PyArrow 26.0.0 now publishes CPython 3.15 wheels for Linux, macOS (arm64 and x86_64), and Windows amd64. Stable Pydantic 2.14.1 pins pydantic-core 2.50.1, which also publishes those CPython 3.15 wheels. SciPy 1.18.1 has the corresponding wheels too.

    Verified through the actual PyPI JSON metadata for pyarrow, pydantic, pydantic-core/2.50.1 and scipy. The September missing-wheel explanation is no longer current.

    This is dependency availability evidence, not Diagnostic qualification. Current main 76a56fe keeps Requires-Python >=3.12,<3.15; its lock still uses PyArrow 25.0.0 and platform-specific older Pydantic selections. No final Python 3.15 install/import/full-suite matrix has been executed in this recheck. Keep this issue open under the user's existing deferral. The next compatibility task is dependency/lock reconciliation and real Python 3.15 qualification on Linux, macOS and Windows before widening support and verifying a published package. The approved version-scoped wait does not block an otherwise qualified Python 3.12-3.14 patch release.

    Primary metadata: https://pypi.org/pypi/pyarrow/json, https://pypi.org/pypi/pydantic/json, https://pypi.org/pypi/pydantic-core/2.50.1/json, https://pypi.org/pypi/scipy/json.

    AI assistance: Codex retrieved and checked the upstream metadata and prepared this maintainer status update. No Python 3.15 support or release is being 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