Skip to content

Bump dependencies and modernize pyproject.toml - #843

Merged
achow101 merged 9 commits into
bitcoin-core:masterfrom
achow101:2026-08-bump-deps
Aug 12, 2026
Merged

Bump dependencies and modernize pyproject.toml#843
achow101 merged 9 commits into
bitcoin-core:masterfrom
achow101:2026-08-bump-deps

Conversation

@achow101

@achow101 achow101 commented Aug 4, 2026

Copy link
Copy Markdown
Member

Updates:

  • Python >=3.10,<3.16
  • cbor2 >=5.9.0<6.0.0

All other dependencies should have the same minimum and maximums.

typing-extensions is dropped as we aren't using it anymore.

Ran poetry update to update all locked dependencies to latest version.

The pyproject.toml file is also modernized to follow PEP 517. Additionally, given that PEP 517 is in use in our minimum python version, we can safely drop the setup.py.

Depends on #819 for the python bump.

@achow101
achow101 force-pushed the 2026-08-bump-deps branch 3 times, most recently from 48095b1 to 0a274a0 Compare August 5, 2026 06:02
@achow101
achow101 marked this pull request as ready for review August 5, 2026 06:06
@achow101
achow101 force-pushed the 2026-08-bump-deps branch from 0a274a0 to 7f51463 Compare August 5, 2026 17:18
Caret and tilde are poetry specific specifiers, use inequality which is
python standard.
setup.py was automatically generated. As our minimum python ships a
pip that fully supports pyproject.toml for specifying the project
config, there's no need to keep setup.py.
@achow101
achow101 force-pushed the 2026-08-bump-deps branch 3 times, most recently from f4c6700 to c244fca Compare August 5, 2026 21:45
@Sjors

Sjors commented Aug 10, 2026

Copy link
Copy Markdown
Member
/__w/HWI/HWI/test/work/speculos/src/vnc/vnc_server.c:18:10: fatal error: rfb/rfb.h: No such file or directory
             18 | #include <rfb/rfb.h>

My LLM thinks that installing libvncserver-dev will help with the failing Ledger jobs for Python >=3.13.

@Sjors

Sjors commented Aug 11, 2026

Copy link
Copy Markdown
Member

Ok, that worked for 3.13, but not for 3.14.

TypeError: unhashable type: 'dict'

Bumping jsonschema 4.18 will make that go away, but Speculos v0.26.10 pins it at <4.18. cc @bigspider

The following works:

diff --git a/.github/actions/install-sim/action.yml b/.github/actions/install-sim/action.yml
index f6630e6..4df5537 100644
--- a/.github/actions/install-sim/action.yml
+++ b/.github/actions/install-sim/action.yml
@@ -59,10 +59,14 @@ runs:
         apt-get update
         apt-get install -y libusb-1.0-0 qemu-user-static gcc-arm-linux-gnueabihf libsdl2-image-dev libvncserver-dev
         tar -xvf speculos.tar.gz
         poetry run pip install -e test/work/speculos
         pip install -e test/work/speculos
+        if [[ "$(python --version)" == Python\ 3.14.* ]]; then
+          poetry run pip install --upgrade jsonschema==4.18.0
+          pip install --upgrade jsonschema==4.18.0
+        fi

     - if: startsWith(inputs.device, 'ledger')
       uses: actions/download-artifact@v4
       with:
         name: ${{ inputs.device == 'ledger-legacy' && 'ledger_app_legacy' || 'ledger_app' }}

@Sjors

Sjors commented Aug 11, 2026

Copy link
Copy Markdown
Member

Well that was quick.

@achow101
achow101 merged commit d4687a2 into bitcoin-core:master Aug 12, 2026
572 of 573 checks passed
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.

2 participants