-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Support for Python 3.10 #9930
Support for Python 3.10 #9930
Conversation
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.
is it OK to drop python 3.8 from CI?
setup.py
Outdated
"blspy==1.0.9", # Signature library | ||
"chiavdf==1.0.4", # timelord and vdf verification | ||
"chiabip158==1.1", # bip158-style wallet filters | ||
"chiapos==1.0.8", # proof of space |
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.
bumping these dependencies seem unrelated to supporting python 3.10. are there other python-3.10 fixes in those dependencies?
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.
I think these are updates for these to provide wheels. I'm not sure if there are other changes (nor entirely sure about that). They are being updated in #9808 separately anyways and presumably that goes in first.
I'm guessing Gene was dropping 3.8 to keep just two CI runs for macOS. You get lower runner count and they are slower. But, I don't know my way around the macOS community and what is available and actually used etc. For example, why did we already not have 3.7 on macOS? |
I was indeed trying to keep the total Mac runners limited. All of our sub repos had to be version bumped to build 3.10 wheels. |
The last two MacOS releases are 3.8+ and Silicon requires 3.9+ (though Silicon was back ported into 3.8 later). Brew installs 3.9 by default right now. As such 3.7 really isn't a factor on any mostly up to date Mac. |
We'll want to hit up the loop parameter warnings being ignored at https://github.com/Chia-Network/chia-blockchain/pull/10240/files#diff-338af70c6877cd271f4d5d1c05bbfc692ad15c5dbff0f7ea3c0e578f3f59c850R19. |
Both the client and server SSL context creation use chia-blockchain/chia/server/server.py Lines 39 to 51 in a48fd43
chia-blockchain/chia/server/server.py Lines 83 to 95 in a48fd43
Here is the latest 3.9 and 3.10 source for the private function https://github.com/python/cpython/blob/v3.9.11/Lib/ssl.py#L758-L802 I'm guessing there was a copy/paste error in 3d27a7d#diff-e0bb43e77afdc23f85aefba41e3d8fda1554c6402c8e08536508ed6246d8068f that introduced this. Since we were passing in |
* 2.7 seconds -> 0.45 seconds * Merge * Work on create_plots refactor * Try to fix tests * Try to fix tests * Use new functions * Fix block_tools by adding dir * Extra argument * Try to fix cyclic import * isort * Drop warning * Some cleanups around `exclude_final_dir` and directory adding * Cleanup `min_mainnet_k_size` checks * Drop unrelated changes * Fixes after rebase * Fix cyclic import * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> Co-authored-by: xdustinface <[email protected]> Co-authored-by: dustinface <[email protected]>
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.
lgtm pending CI
Trying to install on 22.04, I'm getting the following error, even though I had pre-installed python 3.10:
Seems like apt is attempting to install python 3.9 even though 3.10 is supported, in the 2110+ block. I think we need to add an additional 2204 check |
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.
lgtm. Tested all of the following with Python 3.10, and everything worked fine with the install scripts
Linux arm64
Linux amd64
Mac arm64
Mac intel
Windows
* Support for Python 3.10 * Update install.sh to block Python 3.11 * websockets to 10.1 * Update workflows for Python 3.10 * single quote 3.10 * Enable fedora:35 (py3.10) installer script testing * rebuild workflows * fixup test-install-scripts.yml * add ignore for distutils deprecation in tests for now * asyncio.get_event_loop().run_until_complete() -> asyncio.run() * aiohttp==3.8.1 for python 3.10 support * use ssl.Purpose.CLIENT_AUTH for ssl_context_for_server() * rebuild workflows * use ssl_context_for_client() in BlockTools.get_daemon_ssl_context() * create a client context for the RpcServer to connect to the daemon * go back to asyncio.get_event_loop().run_until_complete() for now to recover 3.7 * ignore:There is no current event loop:DeprecationWarning * Ms.plot load perf2 (#10978) * 2.7 seconds -> 0.45 seconds * Merge * Work on create_plots refactor * Try to fix tests * Try to fix tests * Use new functions * Fix block_tools by adding dir * Extra argument * Try to fix cyclic import * isort * Drop warning * Some cleanups around `exclude_final_dir` and directory adding * Cleanup `min_mainnet_k_size` checks * Drop unrelated changes * Fixes after rebase * Fix cyclic import * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> Co-authored-by: xdustinface <[email protected]> Co-authored-by: dustinface <[email protected]> * remove 3.10 avoidance step from debian:bookworm installer testing * add 3.10 to wheel availability check workflow * add 3.10 to Install.ps1 supported Python versions for Windows * add jammy jellyfish to the install script test matrix * correct ubuntu:jammy job name * add 22.04 with Python 3.10 to install.sh Co-authored-by: Gene Hoffman <[email protected]> Co-authored-by: Yostra <[email protected]> Co-authored-by: Mariano Sorgente <[email protected]> Co-authored-by: xdustinface <[email protected]> Co-authored-by: dustinface <[email protected]>
* Support for Python 3.10 * Update install.sh to block Python 3.11 * websockets to 10.1 * Update workflows for Python 3.10 * single quote 3.10 * Enable fedora:35 (py3.10) installer script testing * rebuild workflows * fixup test-install-scripts.yml * add ignore for distutils deprecation in tests for now * asyncio.get_event_loop().run_until_complete() -> asyncio.run() * aiohttp==3.8.1 for python 3.10 support * use ssl.Purpose.CLIENT_AUTH for ssl_context_for_server() * rebuild workflows * use ssl_context_for_client() in BlockTools.get_daemon_ssl_context() * create a client context for the RpcServer to connect to the daemon * go back to asyncio.get_event_loop().run_until_complete() for now to recover 3.7 * ignore:There is no current event loop:DeprecationWarning * Ms.plot load perf2 (#10978) * 2.7 seconds -> 0.45 seconds * Merge * Work on create_plots refactor * Try to fix tests * Try to fix tests * Use new functions * Fix block_tools by adding dir * Extra argument * Try to fix cyclic import * isort * Drop warning * Some cleanups around `exclude_final_dir` and directory adding * Cleanup `min_mainnet_k_size` checks * Drop unrelated changes * Fixes after rebase * Fix cyclic import * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> * Update tests/block_tools.py Co-authored-by: dustinface <[email protected]> Co-authored-by: xdustinface <[email protected]> Co-authored-by: dustinface <[email protected]> * remove 3.10 avoidance step from debian:bookworm installer testing * add 3.10 to wheel availability check workflow * add 3.10 to Install.ps1 supported Python versions for Windows * add jammy jellyfish to the install script test matrix * correct ubuntu:jammy job name * add 22.04 with Python 3.10 to install.sh Co-authored-by: Gene Hoffman <[email protected]> Co-authored-by: Yostra <[email protected]> Co-authored-by: Mariano Sorgente <[email protected]> Co-authored-by: xdustinface <[email protected]> Co-authored-by: dustinface <[email protected]>
This is just a duplicate of #9765 to start. Feel free to create PRs against this one for 3.10 fixes that can't go into
main
. If they can go into main then submit them againstmain
. After they get merged you can close and reopen this PR (just buttons at the bottom) and it will trigger a rebuild including merging with the latestmain
so we can see the results of your fixes.If you know some explicit categories that need fixed or discussed, please add them to the list of reasons this is still draft.
Notable points:
Draft for:
install.sh
Ubuntu version tracking in simplify install.sh ubuntu version tracking #11288Maybe followup: