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: Pro Plus Run ID: 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. |
Summary
urllib3minimum from1.22.0to1.26.5, the first tested 1.26.x release that imports successfully on CPython 3.14Closes #16.
Confirmed blockers and fixes
python_requireswas>=3.6,<3.13>=3.6,<3.15and add tested 3.13/3.14 classifiersurllib3releases fail during import on CPython 3.14urllib31.22.0 through 1.26.4 use a compatibility import path that is not viable on 3.14urllib3>=1.26.5; leave every other runtime dependency constraint unchangedNo runtime SDK implementation was changed.
Validation
Local validation completed with clean environments:
pip checkpassedpython -m buildandpython -m twine check dist/*pip checkpassedThe CI matrix preserves Python 3.6–3.12 and adds blocking 3.13/3.14 jobs. Python 3.6 runs in an Ubuntu 20.04 container and Python 3.7 uses Ubuntu 22.04 because official interpreter artifacts for those versions are not available on Ubuntu 24.04. Python 3.14 also builds and installs the wheel in a fresh environment rather than testing only an editable checkout.
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.
This repository is the FeatBit SDK rather than an OpenFeature provider, so end-to-end OpenFeature-provider validation remains a downstream provider responsibility.
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 that release timing before merge. This PR does not alter the publish destination or credentials.Remaining risk
3.14tis neither tested nor claimed.@dsun0720, would you please review the compatibility scope and public 1.1.9 release timing when convenient?
Greptile Summary
This PR extends declared and tested CPython compatibility through 3.14 and raises the minimum urllib3 version needed for that runtime.
Confidence Score: 5/5
The PR appears safe to merge once its blocking CI matrix passes.
The compatibility metadata, dependency minimum, CI coverage, wheel validation, documentation, and release metadata are internally aligned, with no concrete changed-code defect remaining.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart LR PR[Pull request] --> Matrix[Python 3.6–3.14 test matrix] Matrix --> Audit[Resource lifecycle audit] Matrix --> Build[Build wheel and source distribution] Build --> Smoke[Install and smoke-test wheel] Merge[Merge to master or main] --> ReleaseBuild[Build distributions] ReleaseBuild --> Metadata[Twine metadata check] Metadata --> ReleaseSmoke[Fresh-environment wheel smoke test] ReleaseSmoke --> GitHub[Create GitHub release] GitHub --> PyPI[Publish distributions to PyPI]Reviews (1): Last reviewed commit: "feat: support CPython 3.14" | Re-trigger Greptile