Skip to content

chore(ci): add Python 3.15-dev to test-published matrix as continue-on-error #11

@w-martin

Description

@w-martin

Background

As of May 2026, Python 3.15 is in alpha/early beta (following the standard annual release cycle: 3.13 stable Oct 2024, 3.14 stable Oct 2025, 3.15 alpha from roughly Jan 2026). The test-published matrix currently covers 3.11–3.14.

typedframes uses a Rust extension module compiled via PyO3 and maturin. PyO3's support for new CPython releases sometimes lags by a release cycle — catching ABI compatibility issues early gives time to fix them before 3.15 reaches stable.

Fix

Add 3.15-dev to the test-published matrix with continue-on-error: true so failures don't block the release but are visible:

test-published:
  needs: [publish]
  runs-on: ubuntu-latest
  strategy:
    matrix:
      python-version: ['3.11', '3.12', '3.13', '3.14', '3.15-dev']
  continue-on-error: ${{ matrix.python-version == '3.15-dev' }}
  steps:
    - uses: actions/checkout@v4
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
        allow-prereleases: true
    # ... rest of steps unchanged

The allow-prereleases: true flag on actions/setup-python is required for pre-release Python versions to be resolved correctly.

Note on maturin wheel availability

Pre-release Python versions require a wheel built with abi3 targeting the correct minimum version, or a source build. The pyo3 = { version = "0.23", features = ["abi3-py311"] } feature in Cargo.toml means the existing abi3 wheel should work on any Python >= 3.11 including 3.15-dev, as long as the CPython stable ABI is maintained (which it is, by design). If PyO3 itself has not yet been validated against 3.15, there may be link errors — this is exactly the signal the continue-on-error lane provides.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions