From d3ecdaf0e7b1053d79110024e7357698ec95bd1a Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Sat, 27 Sep 2025 01:20:05 +0000 Subject: [PATCH 1/5] support python 3.13 --- .github/workflows/unittests.yml | 9 +++++++-- README.md | 2 +- docs/INSTALL.md | 2 +- pyproject.toml | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index e75e39051..77224ef85 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -9,8 +9,13 @@ jobs: strategy: matrix: os: [macos-13, ubuntu-latest] - python-version: ["3.9", "3.12"] - bitcoind-version: ["28.3", "29.2"] + python-version: + - "3.9" + - "3.12" + - "3.13" + bitcoind-version: + - "28.3" + - "29.2" steps: - uses: actions/checkout@v3 diff --git a/README.md b/README.md index b50a8de2c..b3caa4b0b 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Download the latest [release](https://github.com/Joinmarket-Org/joinmarket-clien Make sure to validate the signature on the tar/zip file provided with the [release](https://github.com/Joinmarket-Org/joinmarket-clientserver/releases) (or check the signature in git if you install that way using `git log --show-signature`). -JoinMarket requires Python >=3.8, <3.13 installed. +JoinMarket requires Python >=3.8, <3.14 installed. (**macOS users**: Make sure that you have Homebrew and Apple's Command Line Tools installed.) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index ebcb294b6..b8bc17d00 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -4,7 +4,7 @@ * [Installation on Windows](#installation-on-windows) * [Alternative/custom installation](#alternativecustom-installation) -JoinMarket requires Python >=3.8, <3.13. +JoinMarket requires Python >=3.8, <3.14. ### Notes on upgrading, binaries and compatibility diff --git a/pyproject.toml b/pyproject.toml index 398d2f951..2d31de3bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "joinmarket" version = "0.9.12dev" description = "Joinmarket client library for Bitcoin coinjoins" readme = "README.md" -requires-python = ">=3.9,<3.13" +requires-python = ">=3.9,<3.14" license = {file = "LICENSE"} dependencies = [ "chromalog==1.0.5", From eabc8d920f9773796f40f9e8a49772e454f09f27 Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Sat, 27 Sep 2025 01:40:35 +0000 Subject: [PATCH 2/5] fix: bump twisted for python3.13 compat - 24.10.0 fixes python3.13 - 24.11.0 fixes regressions introduced in 24.10.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2d31de3bd..07b49fa65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ dependencies = [ "chromalog==1.0.5", "cryptography==42.0.4", "service-identity==21.1.0", - "twisted==24.7.0", + "twisted==24.11.0", "txtorcon==23.11.0", ] From ebc14f7aa59fc82eaea07dc622e626a33f738854 Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Sat, 27 Sep 2025 02:16:15 +0000 Subject: [PATCH 3/5] ci(unittests): run on both ubuntu-22.04, -24.04 --- .github/workflows/unittests.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index 77224ef85..c0dea4b9e 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -8,7 +8,10 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-13, ubuntu-latest] + os: + - macos-13 + - ubuntu-22.04 + - ubuntu-24.04 python-version: - "3.9" - "3.12" From 2290d3e611f02f0805c8fe733af84bfacc7d335e Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Sun, 26 Oct 2025 22:13:58 +0000 Subject: [PATCH 4/5] ci(unittests): fail-fast=false --- .github/workflows/unittests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml index c0dea4b9e..2fbe49dcf 100644 --- a/.github/workflows/unittests.yml +++ b/.github/workflows/unittests.yml @@ -7,6 +7,7 @@ jobs: name: python ${{ matrix.python-version }}, bitcoind ${{ matrix.bitcoind-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: - macos-13 From 8adfb57b2f3a1f93353ff4e7b1b282b16b7220ca Mon Sep 17 00:00:00 2001 From: 3np <3np@example.com> Date: Sun, 26 Oct 2025 22:35:43 +0000 Subject: [PATCH 5/5] test: log params to failed_refresh_response_handler --- test/jmclient/test_wallet_rpc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/jmclient/test_wallet_rpc.py b/test/jmclient/test_wallet_rpc.py index dee3b3cca..ce277ef22 100644 --- a/test/jmclient/test_wallet_rpc.py +++ b/test/jmclient/test_wallet_rpc.py @@ -846,6 +846,7 @@ def successful_refresh_response_handler(self, response): def failed_refresh_response_handler( self, response, *, message=None, error_description=None ): + jlog.debug(f"failed_refresh_response_handler '{message}' ({error_description})") assert response.code == 400 body = yield readBody(response) json_body = json.loads(body.decode("utf-8"))