Skip to content

chore(python): test on 3.12 through 3.14; floor moves to 3.12 - #101

Merged
jfrench9 merged 1 commit into
mainfrom
chore/python-matrix
Oct 15, 2026
Merged

jfrench9 merged 1 commit into
mainfrom
chore/python-matrix

Conversation

@jfrench9

Copy link
Copy Markdown
Member

Summary

Tests xbrlkit on every interpreter it supports, 3.12 through 3.14, in a fail-fast-off matrix, and moves the floor from 3.10 to 3.12. Python 3.10 reaches end of life this month, 3.11 has been security-only since 2024, and the single-version CI was hiding that the suite could not be collected on the declared floor at all: tests/test_server_json.py imports tomllib, which only exists from 3.11. Users on Homebrew already run this on 3.14; CI now does too.

Changes

  • Packaging — requires-python 3.10 → 3.12; the 3.10 and 3.11 classifiers dropped and 3.14 added; basedpyright's pythonVersion now the floor (3.12).
  • CI — test.yml runs the job under matrix.python-version: ['3.12', '3.13', '3.14'], fail-fast: false. The checks become test (3.12), test (3.13), test (3.14); the Main Branch ruleset's required check moves from test to those three.
  • Release build — create-release.yml builds and publishes on 3.14.

Nothing under edgar/, parse/, serialize/, query.py or cli.py changed.

Output Impact

INTERNAL. Output is identical. Packaging note for the release notes: uvx xbrlkit users are unaffected, since uv fetches a matching interpreter; a pip user on 3.10 or 3.11 keeps resolving to 0.21.2 and receives no later release.

Testing

Suite run locally in scratch venvs on 3.12, 3.13 and 3.14: 704 passed, 2 skipped on each; on 3.10 the suite fails at collection as described. ruff check, ruff format --check and basedpyright clean on the new lock with the 3.12 typecheck target. No conversion code changed, so no filing-specific verification beyond the suite's own fixtures.

🤖 Generated with Claude Code

CI runs the suite, lint and typecheck on every supported interpreter
instead of 3.13 alone. The floor moves from 3.10 to 3.12 and 3.14 is
declared; basedpyright now checks against the floor. 3.10 reaches end
of life this month, and the suite could not even be collected there:
tests/test_server_json.py imports tomllib, which exists from 3.11. The
release build runs on 3.14.
@jfrench9
jfrench9 merged commit c3c1765 into main Oct 15, 2026
6 checks passed
@jfrench9
jfrench9 deleted the chore/python-matrix branch October 15, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant