Skip to content

Part 1 - upgrade: update all dependencies for Python 3.13 compatibility#974

Merged
ping-ke merged 17 commits intoupgrade/py313-baselinefrom
upgrade/deps-py313
Apr 24, 2026
Merged

Part 1 - upgrade: update all dependencies for Python 3.13 compatibility#974
ping-ke merged 17 commits intoupgrade/py313-baselinefrom
upgrade/deps-py313

Conversation

@ping-ke
Copy link
Copy Markdown
Contributor

@ping-ke ping-ke commented Mar 15, 2026

Summary

  • Bump all package version constraints to versions that support Python 3.13
  • Replace unmaintained/incompatible packages:
    • python-rocksdbrocksdict
    • jsonrpcserver + jsonrpcclienthttpx + custom client
    • upnpclient + netifacesasync-upnp-client
    • pyethash (C extension, dropped)
    • jsonrpc-asyncjsonrpc_async
  • Set python_requires = ">=3.13" in setup.py

Test plan

  • pip install -r requirements.txt succeeds on Python 3.13
  • All other upgrade/* PRs apply cleanly on top of this

QuarkChain Dev and others added 3 commits March 13, 2026 04:05
- Bump all packages to versions supporting Python 3.13
- Replace python-rocksdb with rocksdict
- Replace jsonrpcserver + jsonrpcclient with httpx and custom client
- Replace upnpclient + netifaces with async-upnp-client
- Drop pyethash C extension (use pure Python ethash)
- Require Python >=3.13 in setup.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ping-ke ping-ke marked this pull request as draft March 17, 2026 18:02
@ping-ke ping-ke marked this pull request as ready for review March 18, 2026 16:41
@ping-ke ping-ke requested review from qizhou, qzhodl and syntrust March 18, 2026 16:41
Comment thread requirements.txt Outdated
Comment thread requirements.txt
Comment thread requirements.txt Outdated
@ping-ke ping-ke requested a review from qzhodl March 31, 2026 02:42
Comment thread requirements.txt Outdated
@ping-ke ping-ke requested a review from syntrust April 2, 2026 02:36
@syntrust
Copy link
Copy Markdown

syntrust commented Apr 2, 2026

It seems all commit-build-test checks failed due to

ModuleNotFoundError: No module named 'rocksdb'

Is it possible that it is still being used somewhere?

@ping-ke ping-ke changed the base branch from upgrade/py313-baseline to master April 5, 2026 02:35
@ping-ke ping-ke changed the base branch from master to upgrade/py313-baseline April 5, 2026 02:35
@ping-ke
Copy link
Copy Markdown
Contributor Author

ping-ke commented Apr 6, 2026

It seems all commit-build-test checks failed due to

ModuleNotFoundError: No module named 'rocksdb'

Is it possible that it is still being used somewhere?

Because the entire modification is very large, the individual PRs cannot pass the tests on their own; they need to be merged to pass the tests.

ping-ke added 2 commits April 16, 2026 01:20
qkchash_llrb.h: remove <T> from move constructor name — template-id on
constructors is ill-formed in C++20 (was a warning with -std=c++17)

Dockerfile: remove post-build cleanup of gcc/Rust/build-essential so the
test image retains the toolchain needed to rebuild extensions in CI
Comment thread requirements.txt Outdated
Comment thread mainnet/singularity/Dockerfile Outdated
Comment thread requirements.txt Outdated
@blockchaindevsh
Copy link
Copy Markdown

blockchaindevsh commented Apr 21, 2026

image

Looks like the merge order matters, is this intentional?

Comment thread mainnet/singularity/Dockerfile-tiny Outdated
@ping-ke
Copy link
Copy Markdown
Contributor Author

ping-ke commented Apr 22, 2026

image Looks like the merge order matters, is this intentional?

We will merge all the PRs to upgrade/py313-baseline branch. then run unittest and run node to test it before merge to master.

@ping-ke ping-ke requested a review from blockchaindevsh April 23, 2026 03:20
Comment thread mainnet/singularity/Dockerfile
Build libqkchash.so from source in PREBUILT=false so the image works on
any architecture. PREBUILT=true now rejects non-amd64 TARGETARCH since
the S3 artifacts are x86_64-only, and pulls libqkchash.so from S3 next
to the ethash extensions for consistency.
Copy link
Copy Markdown

@blockchaindevsh blockchaindevsh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit message("support arm64 builds") is a bit misleading.

A more accurate message would be something like:

Dockerfile: fail explicitly when PREBUILT=true on non-amd64

@ping-ke ping-ke merged commit 54c2e66 into upgrade/py313-baseline Apr 24, 2026
2 of 4 checks passed
@ping-ke ping-ke deleted the upgrade/deps-py313 branch April 24, 2026 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants