Skip to content

Bump ruff target-version to py312 + UP045 modernization (deferred from ADR 0013) #83

Description

@caidurbin

Context

ADR 0013 (require Python >=3.12) deliberately deferred the ruff modernization to keep the security/floor diff reviewable:

Deferred to a dedicated style: commit: bumping ruff target-version from py39 to py312 and the resulting X | None (UP045) modernization across ~52 sites, kept out of this change to keep the security/floor diff reviewable.

That commit never landed. pyproject.toml still has target-version = "py39" (with the now-contradictory comment # Assume Python 3.9+) alongside requires-python = ">=3.12". The 2026-07 architecture-doc review (PR #82) removed the deferral sentence from ADR 0013; this issue is the tracking that replaces it.

Work

  • Bump [tool.ruff] target-version from "py39" to "py312" in pyproject.toml
  • Remove/update the stale # Assume Python 3.9+ comment
  • Apply the resulting UP045 (Optional[X]X | None) modernization across the codebase (~52 sites at time of ADR 0013; recount at execution)
  • Resolve any other rule deltas the bump surfaces (ruff check clean, ruff format clean)
  • Full test suite passes on all matrix legs (3.12 / 3.13 / 3.14)

One mechanical style: commit, per ADR 0013's original intent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions