Skip to content

Conversation

@techouse
Copy link
Owner

@techouse techouse commented Oct 9, 2025

This pull request adds support for Python 3.8 and 3.14, expanding the range of supported Python versions. It also updates documentation and configuration files to reflect these changes, and lowers the minimum required versions for several development dependencies to improve compatibility. Additionally, from __future__ import annotations is added to two modules for forward compatibility.

Python version support:

  • Official support for Python 3.8 and 3.14 is added across the project, including CI configuration (.github/workflows/test.yml), tox.ini, and pyproject.toml classifiers and settings. [1] [2] [3] [4] [5]
  • Documentation and metadata are updated to state support for Python 3.8+ instead of 3.9+, including CONTRIBUTING.md and pyproject.toml. [1] [2] [3]

Development dependencies:

  • Minimum versions for pytest, pytest-cov, and mypy are lowered in both pyproject.toml and requirements_dev.txt to improve compatibility with older Python versions. [1] [2]

Codebase modernization:

  • Added from __future__ import annotations to src/qs_codec/decode.py and src/qs_codec/models/weak_wrapper.py for improved forward compatibility and type hinting. [1] [2]

Summary by CodeRabbit

  • Documentation

    • Updated stated Python support to 3.8+.
  • Tests

    • Expanded CI test matrix and tox environments to include Python 3.8 and 3.14.
  • Chores

    • Broadened official Python support range to 3.8–3.14 via configuration updates and classifiers.
    • Aligned tooling configurations (formatting, type checking) with the expanded Python range.
    • Adjusted development dependency versions for compatibility.
    • Internal typing compatibility tweaks without changing runtime behavior.

@techouse techouse self-assigned this Oct 9, 2025
@techouse techouse added the enhancement New feature or request label Oct 9, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 9, 2025

Walkthrough

Expands supported Python versions to 3.8–3.14 across CI workflow, tox, and packaging metadata; updates docs to state 3.8+ support; adjusts dev dependency versions for compatibility; and adds postponed evaluation of type annotations in two source modules.

Changes

Cohort / File(s) Summary of Changes
CI matrix and tox config
.github/workflows/test.yml, tox.ini
Added Python 3.8 and 3.14 to the test matrix and tox envlist; mapped gh-actions Python versions accordingly.
Project metadata and tooling
pyproject.toml
Updated Python version requirement to 3.8; added classifiers for 3.8 and 3.14; aligned tool targets (black, mypy); refreshed dev dependency minimums and added isort configuration.
Documentation
CONTRIBUTING.md
Revised stated supported Python versions from 3.9+ to 3.8+.
Dev requirements
requirements_dev.txt
Adjusted versions: pytest 8.1.2, pytest-cov 5.0.0, mypy 1.10.0; others unchanged.
Source annotations
src/qs_codec/decode.py, src/qs_codec/models/weak_wrapper.py
Inserted from __future__ import annotations to enable postponed evaluation of type annotations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

I thump my foot in versioned cheer,
From 3.8 to 3.14, support draws near.
CI hops wider, tools align tight,
Annotations postponed—so tidy, so light.
With tests in a warren of green delight,
I nibble carrots; the matrix feels right. 🥕🐇

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The description clearly outlines the changes and motivation but does not adhere to the repository’s required template; it omits the “Fixes #…” issue reference, the Type of change section, the How Has This Been Tested section, and the Checklist. Update the pull request description to include a “Fixes #…” line for the relevant issue, add the Type of change section with the appropriate checkbox selected, provide a How Has This Been Tested section with testing steps, and complete the Checklist according to the template.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The title succinctly captures the primary change—widening Python version support—and is directly related to the pull request’s main objective, though it includes an emoji which is extraneous to the content.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/widen-python-support

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 and usage tips.

@codacy-production
Copy link

codacy-production bot commented Oct 9, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.00% (target: -1.00%) 100.00%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (634eb01) 1148 1148 100.00%
Head commit (8e39726) 1150 (+2) 1150 (+2) 100.00% (+0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#29) 2 2 100.00%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

@codecov
Copy link

codecov bot commented Oct 9, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (634eb01) to head (8e39726).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #29   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           16        16           
  Lines         1148      1150    +2     
=========================================
+ Hits          1148      1150    +2     

☔ View full report in Codecov by Sentry.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@techouse techouse marked this pull request as ready for review October 9, 2025 07:41
@techouse techouse changed the title ⬆️ add support for Python 3.8 and 3.14 ⬆️ widen Python support Oct 9, 2025
@techouse techouse added python Pull requests that update Python code dependencies Pull requests that update a dependency file and removed enhancement New feature or request labels Oct 9, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/test.yml (1)

45-58: Remove the 3.14 job until tooling actually ships it.

GitHub’s actions/setup-python@v6 cannot install Python 3.14 today, so this matrix entry will make every run fail before tests even start. Please drop (or gate) the 3.14 row until the runtime exists.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 634eb01 and 8e39726.

📒 Files selected for processing (7)
  • .github/workflows/test.yml (2 hunks)
  • CONTRIBUTING.md (1 hunks)
  • pyproject.toml (5 hunks)
  • requirements_dev.txt (1 hunks)
  • src/qs_codec/decode.py (1 hunks)
  • src/qs_codec/models/weak_wrapper.py (1 hunks)
  • tox.ini (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Codacy Static Code Analysis

@techouse techouse merged commit a200c72 into main Oct 9, 2025
19 checks passed
@techouse techouse deleted the chore/widen-python-support branch October 9, 2025 07:52
@coderabbitai coderabbitai bot mentioned this pull request Nov 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants