-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
feat: python 3.12 support #6773
base: master
Are you sure you want to change the base?
Conversation
Import test succeeds, runs on a multi-mcu test box with kinematics: None |
Signed-off-by: Aaron Haun <[email protected]>
Regression tests pass on py3.12, with fresh dicts built on buster. |
BTW:
But of course, the correct versions are better, |
Thanks for looking at this. In general it seems fine. I'd just like to confirm that we do need to pin these versions and that there isn't some version of setuptools and python-can that works with a wide variety of python versions? Cheers, |
Setuptools isn't needed at all on older versions, it provides a backfill for distutils, which has been removed. |
Okay, thanks. So we have to specify two different versions for python-can (one for <3.12 and one for >3.12). I didn't understand your answer about setuptools though - there is not a version of setuptools we can reasonably use across all python versions? (It's fine if the answer is yes - I just want to be sure I understand the change.) Cheers, |
It's more that we don't need setuptools in prior versions, because the functionality that it is adding was part of the standard distribution. https://peps.python.org/pep-0632/ Setuptools contains compatibility shims that allows the use of the distutils package and modules. |
I think it'd be preferable to have every instance be pinned to a single version of setuptools, even if not all instances need it. It's just easier for debugging and troubleshooting if all instances are running as much of the same code as possible. I understand if we can't pin a single version though - so that's my main question - do you know if we can pin a single version of setuptools? Thanks again, |
AFAIK the requirement is either to upgrade |
Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html There are some steps that you can take now:
Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available. Best regards, PS: I'm just an automated script, not a human being. |
My local desktop runs fedora with python v3.12.8 . Even with the current klippy-requirements.txt, I'm not having any issues installing the Klipper virtualenv and running Klipper (at least enough to run the regression test cases). So, at least on Fedora, it doesn't seem we need any changes for python 3.12 . Can someone provide more details on how and where Klipper is failing with python3.12? -Kevin |
As I previously linked: #6550 |
Okay thanks. I can reproduce the failure if I run an explicit -Kevin EDIT: Also, there is also no single version of setuptools that works on all versions of python we support. (Quite the mess.) So, pinning setuptools only on python 3.12 seems to be the simplest fix for now. |
Entirely just some adjustments to dependencies.
Based on initial analysis by Sineos over at the discourse: https://klipper.discourse.group/t/discuss-python-versions/20942/10