feat: support and validate CPython 3.14 - #17
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (9)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe SDK now declares Python 3.10–3.14 support, requires a compatible ChangesPython compatibility and release validation
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to This PR updates supported Python and dependency metadata and expands CI and release validation without changing runtime SDK behavior. The metadata and validation changes are aligned, and no actionable merge-blocking risk remains beyond normal checks. Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Linked Issues checkExplanation The changes cover Python 3.13–3.14 metadata, urllib3 1.26.5 compatibility, CI matrices, minimum-dependency testing, wheel smoke testing, documentation, and release 1.1.9 updates [ Resolution Add an explicit Full details: Out of Scope Changes checkExplanation The changes are within the linked issue scope [ Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 7 functions across 2 files. (7 skipped: 7 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Bonjour @dsun0720 — pourriez-vous, s’il vous plaît, m’aider en faisant une review de cette PR ? N’hésitez pas à me dire s’il y a quoi que ce soit que je puisse modifier ou corriger. Je serai absent les 27 et 28 août, mais je serai de retour la semaine prochaine pour effectuer les ajustements nécessaires. Merci beaucoup ! hello @dsun0720 -- could you kindly help me with a review of this PR? Please let me know if there is anything I can update or fix. I will be away August 27-28 but will be back next week for any adjustments. Thank you. |
8472fea to
9da7cbd
Compare
88ec723 to
9da7cbd
Compare
There was a problem hiding this comment.
🟡 Changes recommended
CI workflows and release automation are likely to break due to non-existent GitHub Action major versions and brittle wheel metadata assertions in the new smoke test.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the SDK’s declared compatibility and CI validation to support CPython 3.10–3.14 (including raising the urllib3 minimum), and prepares the 1.1.9 release metadata while adding build/install smoke checks for the produced wheel.
Changes:
- Expand supported/declared Python range to
>=3.10,<3.15and add 3.13/3.14 classifiers. - Raise
urllib3requirement to>=1.26.5,<3and add CI jobs to validate across Linux/Windows plus minimum-dependency and wheel smoke checks. - Bump release metadata to 1.1.9 and update README/release notes accordingly.
File summaries
| File | Description |
|---|---|
| setup.py | Updates python_requires and classifiers to claim support through CPython 3.14. |
| scripts/wheel_smoke.py | Adds an installed-wheel smoke test that validates metadata, exercises offline evaluation, and checks thread cleanup. |
| requirements.txt | Raises urllib3 floor and adds <3 cap. |
| dev-requirements.txt | Mirrors the runtime urllib3 constraint for dev installs. |
| README.md | Updates documented supported Python range and CI coverage notes. |
| release/package.json | Bumps release version to 1.1.9 (also used by packaging versioning). |
| release/description.md | Updates release notes for 1.1.9 and compatibility changes. |
| .github/workflows/code-quality.yaml | Expands CI matrix to 3.10–3.14 on Linux+Windows and adds minimum-deps + wheel validation. |
| .github/workflows/release.yaml | Adds build/twine/wheel smoke validation before creating the GitHub release and publishing. |
Review details
Suppressed comments (1)
scripts/wheel_smoke.py:56
- The installed distribution requirement string ordering is not stable (it may be "urllib3>=1.26.5,<3" or "urllib3<3,>=1.26.5"), so checking only one prefix can cause false negatives. Accept both normalized orderings (or parse the requirement) so the smoke test fails only when urllib3 constraints are actually wrong.
assert any(requirement.startswith("urllib3<3,>=1.26.5") for requirement in requirements)
- Files reviewed: 8/9 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Hi @lopezm1, thanks for spending time on this PR ❤️. I've merged this PR and released https://github.com/featbit/featbit-python-sdk/releases/tag/v1.1.9 |
|
Thank you for the response! We are happy to help. @deleteLater |
Summary
urllib3>=1.26.5,<3, retaining the first 1.26.x release verified on CPython 3.14Closes #16.
Compatibility changes
>=3.6,<3.13>=3.10,<3.15urllib3>=1.22.0>=1.26.5,<3Python 3.6 through 3.9 are no longer claimed or tested.
No runtime SDK implementation was changed.
Validation
Local validation completed on CPython 3.14.5:
python -m buildpassedpython -m twine check dist/*passedpip checkpassedCI covers Python 3.10-3.14 on Linux and Windows. Python 3.14 additionally builds and installs the wheel in a fresh environment. A separate Python 3.14 job installs the exact declared minimum runtime dependencies and runs the full suite and resource audit.
Behavior
This does not change flag evaluation, targeting, user/context handling, caller defaults, network synchronization, event delivery, thread lifecycle, shutdown behavior, or the public API.
Free-threaded CPython
3.14tis neither tested nor claimed.Release note
This changes
release/package.jsonto1.1.9. The existing workflow creates a public GitHub release and publishes to public PyPI after a merge tomaster; please confirm release timing before merge. This PR does not alter the publish destination or credentials.Summary by CodeRabbit
New Features
Documentation
Bug Fixes
Greptile Summary
The PR updates package metadata, dependencies, documentation, and release metadata to support CPython 3.10 through 3.14.
Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains.
Important Files Changed
Reviews (7): Last reviewed commit: "chore: adjust supported Python versions" | Re-trigger Greptile