Skip to content

ci: dependency floors on Python 3.13/3.14 are declared but never verified #281

Description

@thomaspinder

Context

#277 added the lowest-direct-deps matrix, which verifies the declared dependency floors with uv --resolution lowest-direct — but only on Python 3.11 and 3.12 (one leg per PyMC/ArviZ family).

Problem

The published metadata also makes floor claims for 3.13/3.14 that are known-untestable as declared: e.g. pydantic>=2.5 has no cp313/cp314 pydantic-core wheels (official 3.13 support arrived in pydantic 2.9, 3.14 in 2.12), and pymc>=6.0/arviz>=1.1 floors have never been resolved-and-run on 3.13/3.14. A downstream project pinning near the floors on 3.13+ can hit source-build failures or untested combinations that CI would never catch — the same failure mode #277 fixed for 3.12.

Suggested approach

Either (a) extend the lowest-direct-deps matrix to 3.13/3.14 and raise whatever floors fail, or (b) tighten markers per Python version (e.g. pydantic>=2.9; python_version == '3.13', pydantic>=2.12; python_version >= '3.14') and add the matrix legs to keep the claims verified. Option (b) keeps the repo's 'floors are verified in CI' invariant (#270) honest across all supported interpreters.

Affected files

  • pyproject.toml (dependencies)
  • .github/workflows/main.yml (lowest-direct-deps matrix + family assert)

Metadata

Metadata

Assignees

No one assigned

    Labels

    cip2Priority 2

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions