-
Notifications
You must be signed in to change notification settings - Fork 829
fix python version to allow 3.14.* (anything <3.15) #1631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@dopry not clear to me how uv.lock gets updated. I tried |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello, Python 3.14 and 3.15 release manager here! 👋
I strongly recommend against an upper cap.
First, by disallowing installation on 3.15 (currently in alpha), you're preventing people testing their own code on 3.15. I would really like people to be able to test their code on 3.15 to find and report bugs in Python so we can fix them before the big release in October. Also to help prepare their own code for 3.15.
Not only those who depend on django-oauth-toolkit, but those who depend on dependencies of django-oauth-toolkit. And so on down the chain.
But more importantly, it's too late to add any top version here, you would have needed to do it from day one (or else need to yank or delete all past releases!).
For example, if you release django-oauth-toolkit 3.2.0 with <=3.15 and I try and install with Python 3.15, I'll get the last version available without the top pin, 3.1.0.
Fast forward a year or two. Maybe you have <=3.17, and have released django-oauth-toolkit 5.1.0 or something. I try and install with 3.17, and end up with 3.1.0 from way back in 2025, which is definitely not intended.
See https://iscinumpy.dev/post/bound-version-constraints/ for the long version.
|
@dopry over to you for your review of the suggestion not to set an upper bound on requirements. Testing versions will continue to need to be update as new python releases are publshed. |
Co-authored-by: Hugo van Kemenade <[email protected]>
It gets updated anytime you run |
|
@hugovk thanks for the tip! |
hugovk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(At some point you could drop Python 3.8 and 3.9: https://devguide.python.org/versions/)
|
@hugovk always happy to drop versions. I understand your desire, as a release manager, to have users testing on latest python versions. As a maintainer of a contributed module, I don't want users running code on python versions I haven't validated, so I don't get a bunch of support requests I don't have the resources to address. I don't want to advertise module as supporting something unless I have validated it. Poor experiences like that will reflect negatively on the module's quality. I feel there should be more focus on getting package maintainers testing and running CI against python latest and nightly. If you want more testing on 3.15 and latest we should lobby GitHub, CircleCI, et al to ensure they make those python versions available for testing. I would be more than happy to setup a tox environment for latest, and even have it report failures back to python org infrastructure to provide signals that could give upstream insight the effects of changes. |
👍
I think there's a difference between advertising support (for example, via documentation and Trove classifiers) and actively blocking people from testing a pre-release. If you get a support request for a version you don't advertise as supporting, you're well within your rights say it's not yet supported.
Agreed.
Yes, the good news is GitHub already has the ~monthly 3.15 pre-releases available (like this). For nightly, please add a 👍 to actions/setup-python#31
Sounds good, thank you :) |
As a developer, if a As a maintainer, I can publish prerelease versions with relaxed constraints for people who want to test at the bleeding edge.
I would prefer to pre-empt them, so I don't have to spend my time doing that. Also, I don't like telling users things that may come across as dismissive of their unmet expectations.
Awesome I'll look into it.
done. |
testing for <= 3.14 breaks on minor releases like 3.14.2
Description of the Change
Fixed pyproject.toml to test for <3.15
Checklist
CHANGELOG.mdupdated (only for user relevant changes)AUTHORS