Skip to content

feat: add support for Python 3.13 and 3.14#298

Merged
curfew-marathon merged 1 commit into
mainfrom
feat/support-python-3.13-3.14
Jun 28, 2026
Merged

feat: add support for Python 3.13 and 3.14#298
curfew-marathon merged 1 commit into
mainfrom
feat/support-python-3.13-3.14

Conversation

@curfew-marathon

@curfew-marathon curfew-marathon commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Brings the SDK's tested and advertised Python versions in line with the OpenFGA Language & Framework Version Support Policy.

The policy requires supporting every Python version currently in the bug-fix or security-fix phase per the Python Developer's Guide. As of this change the
supported set is 3.10, 3.11, 3.12, 3.13, 3.14. The repo previously only covered 3.10–3.12, leaving the two newest actively-developed releases (3.13 and 3.14, both in the bug-fix phase) untested and
unadvertised.

Changes

  • .github/workflows/main.yaml — add 3.13 and 3.14 to the test job's python-version matrix.
  • pyproject.toml — add the Programming Language :: Python :: 3.13 and :: 3.14 trove classifiers.

Policy alignment

Python Phase (Jun 2026) Before After
3.10 security
3.11 security
3.12 security
3.13 bugfix
3.14 bugfix
3.9 EOL (Oct 2025) — (correctly excluded)

Intentionally unchanged

  • requires-python = ">=3.10" — floor stays at the oldest supported version; 3.9 is EOL.
  • target-version = "py310" (ruff) and python_version = "3.10" (mypy) — these target the minimum supported version for lint/type-check, which is correct.
  • The single-version steps (ruff/codecov gate, publish) remain pinned to 3.10.
  • .snyk interpreter pin (3.10.6) — scanner resolves deps against the floor version; left as-is.

Notes

  • The test matrix also has a urllib3-version axis (1.26.19, 2.2.2), so this adds 4 new CI cells (2 Python × 2 urllib3).
  • aiohttp is unpinned (>=3.9.3); the lockfile already resolves aiohttp 3.14.x, which ships 3.13/3.14 wheels.

Test plan

  • CI matrix passes on the new 3.13 and 3.14 cells (both urllib3 variants)
  • urllib3==1.26.19 (pinned legacy line) installs and imports cleanly on 3.13 and 3.14
  • Package builds and classifiers render correctly on PyPI metadata

Summary by CodeRabbit

  • Chores
    • Expanded CI test coverage to run against newer Python versions, including 3.13 and 3.14.
    • Updated supported Python version metadata to reflect the added version compatibility.

Copilot AI review requested due to automatic review settings June 28, 2026 15:44
@curfew-marathon curfew-marathon requested a review from a team as a code owner June 28, 2026 15:44
@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 95a212ba-2918-40fa-9983-f106ba6641a7

📥 Commits

Reviewing files that changed from the base of the PR and between 8d4655c and 0f5b52f.

📒 Files selected for processing (2)
  • .github/workflows/main.yaml
  • pyproject.toml

Walkthrough

Python 3.13 and 3.14 are added to the CI test matrix in .github/workflows/main.yaml and to the package classifiers in pyproject.toml.

Python 3.13/3.14 support

Layer / File(s) Summary
CI matrix and classifiers update
.github/workflows/main.yaml, pyproject.toml
python-version matrix expanded to include "3.13" and "3.14"; matching classifiers added to project metadata.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Python 3.13 and 3.14 support.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/support-python-3.13-3.14

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.93%. Comparing base (8d4655c) to head (0f5b52f).

❌ Your project status has failed because the head coverage (69.93%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #298   +/-   ##
=======================================
  Coverage   69.93%   69.93%           
=======================================
  Files         142      142           
  Lines       10774    10774           
=======================================
  Hits         7535     7535           
  Misses       3239     3239           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns the SDK’s declared and CI-tested Python support with the OpenFGA version support policy by extending coverage to the newest supported Python releases.

Changes:

  • Expanded the GitHub Actions test matrix to run on Python 3.13 and 3.14.
  • Added PyPI trove classifiers advertising Python 3.13 and 3.14 support.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
pyproject.toml Adds trove classifiers for Python 3.13 and 3.14 to advertise support on package metadata.
.github/workflows/main.yaml Extends CI test matrix to include Python 3.13 and 3.14 across both urllib3 variants.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@curfew-marathon curfew-marathon added this pull request to the merge queue Jun 28, 2026
Merged via the queue into main with commit 23910bb Jun 28, 2026
41 checks passed
@curfew-marathon curfew-marathon deleted the feat/support-python-3.13-3.14 branch June 28, 2026 16:47
@openfga-releaser-bot openfga-releaser-bot Bot mentioned this pull request Jun 29, 2026
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.

4 participants