From fe49a7423a5b90ecf0813ccdb7b94b28a9f986da Mon Sep 17 00:00:00 2001 From: Benalleng Date: Wed, 30 Sep 2026 10:23:41 -0400 Subject: [PATCH 1/4] Prepare dart payjoin 0.3.0 for pub.dev This bump is not backwards compatible to is a minor bump instead of a patch release due to the `BuildReceiverError` and `BuildSenderError` renaming. --- payjoin-ffi/dart/CHANGELOG.md | 17 +++++++++++++++++ payjoin-ffi/dart/native/Cargo.toml | 2 +- payjoin-ffi/dart/pubspec.yaml | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/payjoin-ffi/dart/CHANGELOG.md b/payjoin-ffi/dart/CHANGELOG.md index 7169ee472..6c209115a 100644 --- a/payjoin-ffi/dart/CHANGELOG.md +++ b/payjoin-ffi/dart/CHANGELOG.md @@ -1,3 +1,20 @@ +## [0.3.0+payjoin-1.2.0] + +- Bindings for payjoin-1.2.0, which adds the non-blocking receive + interface and its related methods alongside the existing + callback-based ones +- Add FFI bindings for the non-blocking receive interface, including + session event replay, in favor of synchronous callbacks +- Paying a BIP 78-only (v1) receiver from a v2 `SenderBuilder` now + returns an `UnsupportedPjVersion` error instead of panicking across + the FFI boundary +- **Breaking:** builder errors are renamed to match the payjoin crate: + `SenderBuilderError` to `BuildSenderError` and + `ReceiverBuilderError` to `BuildReceiverError` +- Replace the `url` crate with payjoin's native Url type, validating + URLs as a precondition to URI validation +- Pin `yoke-derive` for pub.dev consumers to respect the MSRV + ## [0.2.2+payjoin-1.0.0] - Bindings for payjoin-1.0.0, the first stable payjoin release. No Dart diff --git a/payjoin-ffi/dart/native/Cargo.toml b/payjoin-ffi/dart/native/Cargo.toml index 4a18acbe9..ed7e6941f 100644 --- a/payjoin-ffi/dart/native/Cargo.toml +++ b/payjoin-ffi/dart/native/Cargo.toml @@ -18,7 +18,7 @@ name = "payjoin_ffi_wrapper" crate-type = ["staticlib", "cdylib"] [dependencies] -payjoin-ffi = { git = "https://github.com/payjoin/rust-payjoin.git", rev = "60d0adbf4ee8e60090209d55e9864893a4acc30e", features = [ +payjoin-ffi = { git = "https://github.com/payjoin/rust-payjoin.git", rev = "f95a4bb72f61399fbf62e1e89a957e8f40bdf6c9", features = [ "dart", ] } # Not used directly. yoke-derive 0.8.3 needs Rust 1.87 but declares no rust-version, diff --git a/payjoin-ffi/dart/pubspec.yaml b/payjoin-ffi/dart/pubspec.yaml index 1e748798f..e84b56a02 100644 --- a/payjoin-ffi/dart/pubspec.yaml +++ b/payjoin-ffi/dart/pubspec.yaml @@ -1,6 +1,6 @@ name: payjoin description: Dart bindings for payjoin -version: 0.2.2+payjoin-1.0.0 +version: 0.3.0+payjoin-1.2.0 homepage: https://github.com/payjoin/rust-payjoin repository: https://github.com/payjoin/rust-payjoin From d5d82593d58197ca209d17864c33e4830d528580 Mon Sep 17 00:00:00 2001 From: Benalleng Date: Wed, 30 Sep 2026 10:28:50 -0400 Subject: [PATCH 2/4] Prepare python payjoin 0.3.0 for PyPI This is a minor release and not a patch because of the breaking change caused by the `BuildReceiverError` and `BuildSenderError` renames. --- payjoin-ffi/python/CHANGELOG.md | 17 +++++++++++++++++ payjoin-ffi/python/RELEASING.md | 4 ++-- payjoin-ffi/python/pyproject.toml | 2 +- payjoin-ffi/python/uv.lock | 2 +- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/payjoin-ffi/python/CHANGELOG.md b/payjoin-ffi/python/CHANGELOG.md index a78b0d5c8..d14b0b563 100644 --- a/payjoin-ffi/python/CHANGELOG.md +++ b/payjoin-ffi/python/CHANGELOG.md @@ -1,3 +1,20 @@ +## [0.3.0] + +- Bindings for payjoin-1.2.0, which adds the non-blocking receive + interface and its related methods alongside the existing + callback-based ones +- Add FFI bindings for the non-blocking receive interface, including + session event replay, in favor of synchronous callbacks +- Paying a BIP 78-only (v1) receiver from a v2 `SenderBuilder` now + returns an `UnsupportedPjVersion` error instead of panicking across + the FFI boundary +- **Breaking:** builder errors are renamed to match the payjoin crate: + `SenderBuilderError` to `BuildSenderError` and + `ReceiverBuilderError` to `BuildReceiverError` +- Replace the `url` crate with payjoin's native Url type, validating + URLs as a precondition to URI validation +- Update anyio to 4.15.1 + ## [0.2.0] - Bindings for payjoin-1.0.0, the first stable payjoin release diff --git a/payjoin-ffi/python/RELEASING.md b/payjoin-ffi/python/RELEASING.md index 6c56ca1da..ef85bbc78 100644 --- a/payjoin-ffi/python/RELEASING.md +++ b/payjoin-ffi/python/RELEASING.md @@ -52,8 +52,8 @@ CPython satisfying `requires-python` can install them. `verify-tag` refuses to publish otherwise. ```shell - git tag -s payjoin-python-0.2.0+payjoin-1.0.0 -m payjoin-python-0.2.0+payjoin-1.0.0 - git push upstream payjoin-python-0.2.0+payjoin-1.0.0 + git tag -s payjoin-python-0.3.0+payjoin-1.2.0 -m payjoin-python-0.3.0+payjoin-1.2.0 + git push upstream payjoin-python-0.3.0+payjoin-1.2.0 ``` The tag reruns the full build/wheel/smoke graph at the tagged commit, diff --git a/payjoin-ffi/python/pyproject.toml b/payjoin-ffi/python/pyproject.toml index aad065392..33d8f00bc 100644 --- a/payjoin-ffi/python/pyproject.toml +++ b/payjoin-ffi/python/pyproject.toml @@ -8,7 +8,7 @@ description = "The Python language bindings for the Payjoin Dev Kit" readme = "README.md" requires-python = ">=3.10" license = "MIT" -version = "0.2.0" +version = "0.3.0" dependencies = ["httpx>=0.28.1,<1.0"] [tool.setuptools] diff --git a/payjoin-ffi/python/uv.lock b/payjoin-ffi/python/uv.lock index 83099208e..bbf696091 100644 --- a/payjoin-ffi/python/uv.lock +++ b/payjoin-ffi/python/uv.lock @@ -82,7 +82,7 @@ wheels = [ [[package]] name = "payjoin" -version = "0.2.0" +version = "0.3.0" source = { editable = "." } dependencies = [ { name = "httpx" }, From 7e6068a6af9c90e63acfc065466b044724cd9e63 Mon Sep 17 00:00:00 2001 From: Benalleng Date: Wed, 30 Sep 2026 10:41:29 -0400 Subject: [PATCH 3/4] Prepare javascript payjoin 0.3.0 for npm This is a minor release and not a patch because of the breaking change from the `BuildReceiverError` and `BuildSenderError` renames. --- payjoin-ffi/javascript/CHANGELOG.md | 16 ++++++++++++++++ payjoin-ffi/javascript/RELEASING.md | 4 ++-- payjoin-ffi/javascript/package-lock.json | 4 ++-- payjoin-ffi/javascript/package.json | 4 ++-- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 payjoin-ffi/javascript/CHANGELOG.md diff --git a/payjoin-ffi/javascript/CHANGELOG.md b/payjoin-ffi/javascript/CHANGELOG.md new file mode 100644 index 000000000..9631fee1c --- /dev/null +++ b/payjoin-ffi/javascript/CHANGELOG.md @@ -0,0 +1,16 @@ +## [0.3.0] + +- Bindings for payjoin-1.2.0, which adds the non-blocking receive + interface and its related methods alongside the existing + callback-based ones +- Add FFI bindings for the non-blocking receive interface, including + session event replay, in favor of synchronous callbacks +- Paying a BIP 78-only (v1) receiver from a v2 `SenderBuilder` now + returns an `UnsupportedPjVersion` error instead of panicking across + the FFI boundary +- **Breaking:** builder errors are renamed to match the payjoin crate: + `SenderBuilderError` to `BuildSenderError` and + `ReceiverBuilderError` to `BuildReceiverError` +- Replace the `url` crate with payjoin's native Url type, validating + URLs as a precondition to URI validation +- Build bindings with a release build resolved against the lockfile diff --git a/payjoin-ffi/javascript/RELEASING.md b/payjoin-ffi/javascript/RELEASING.md index 84cb87491..716155047 100644 --- a/payjoin-ffi/javascript/RELEASING.md +++ b/payjoin-ffi/javascript/RELEASING.md @@ -40,8 +40,8 @@ TypeScript), which is platform-independent. `verify-tag` refuses to publish otherwise. ```shell - git tag -s payjoin-javascript-0.2.0+payjoin-1.0.0 -m payjoin-javascript-0.2.0+payjoin-1.0.0 - git push upstream payjoin-javascript-0.2.0+payjoin-1.0.0 + git tag -s payjoin-javascript-0.3.0+payjoin-1.2.0 -m payjoin-javascript-0.3.0+payjoin-1.2.0 + git push upstream payjoin-javascript-0.3.0+payjoin-1.2.0 ``` The tag reruns the full build/pack/smoke graph at the tagged commit, diff --git a/payjoin-ffi/javascript/package-lock.json b/payjoin-ffi/javascript/package-lock.json index 7733b7940..77bf6f1c1 100644 --- a/payjoin-ffi/javascript/package-lock.json +++ b/payjoin-ffi/javascript/package-lock.json @@ -1,12 +1,12 @@ { "name": "payjoin", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "payjoin", - "version": "0.2.0", + "version": "0.3.0", "dependencies": { "@ubjs/core": "^0.31.0-3", "uniffi-bindgen-react-native": "github:spacebear21/uniffi-bindgen-react-native#d10f04d83299" diff --git a/payjoin-ffi/javascript/package.json b/payjoin-ffi/javascript/package.json index c14930214..6f76422b6 100644 --- a/payjoin-ffi/javascript/package.json +++ b/payjoin-ffi/javascript/package.json @@ -1,7 +1,7 @@ { "name": "payjoin", - "version": "0.2.0", - "releaseTag": "0.2.0+payjoin-1.0.0", + "version": "0.3.0", + "releaseTag": "0.3.0+payjoin-1.2.0", "description": "JavaScript/WASM bindings for rust-payjoin (EXPERIMENTAL)", "scripts": { "ubrn:nodejs": "ubrn build web --release --and-generate --config ubrn.nodejs.config.yaml", From 36a736a5b6723d2c04e05ca472ba0ac780e56511 Mon Sep 17 00:00:00 2001 From: Benalleng Date: Wed, 30 Sep 2026 10:44:54 -0400 Subject: [PATCH 4/4] Prepare C# payjoin 0.2.0 for NuGet This is a minor release instead of a patch release because there is a breaking change with the `BuildReceiverError` and `BuildSenderError` renames. --- payjoin-ffi/csharp/Payjoin.csproj | 2 +- payjoin-ffi/csharp/README.md | 2 +- payjoin-ffi/csharp/RELEASING.md | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/payjoin-ffi/csharp/Payjoin.csproj b/payjoin-ffi/csharp/Payjoin.csproj index 5257adb08..66af6a92f 100644 --- a/payjoin-ffi/csharp/Payjoin.csproj +++ b/payjoin-ffi/csharp/Payjoin.csproj @@ -7,7 +7,7 @@ true true Payjoin - 0.1.0+payjoin-1.0.0 + 0.2.0+payjoin-1.2.0 Payjoin Payjoin Dev Kit Contributors C# bindings for payjoin-ffi, generated from rust-payjoin via UniFFI. diff --git a/payjoin-ffi/csharp/README.md b/payjoin-ffi/csharp/README.md index b6dce951a..c2d0cda57 100644 --- a/payjoin-ffi/csharp/README.md +++ b/payjoin-ffi/csharp/README.md @@ -38,7 +38,7 @@ Sessions persist each step to an event log through a persister you implement ove ## Stability -The package is pre-1.0 while the C# API stabilizes; expect breaking changes between 0.x releases. The version's build metadata names the wrapped payjoin core release, so `0.1.0+payjoin-1.0.0` packages payjoin 1.0.0, the first stable payjoin release. +The package is pre-1.0 while the C# API stabilizes; expect breaking changes between 0.x releases. The version's build metadata names the wrapped payjoin core release, so `0.2.0+payjoin-1.2.0` packages payjoin 1.2.0, the first stable payjoin release. ## Documentation and help diff --git a/payjoin-ffi/csharp/RELEASING.md b/payjoin-ffi/csharp/RELEASING.md index a5995ccaa..4d1880254 100644 --- a/payjoin-ffi/csharp/RELEASING.md +++ b/payjoin-ffi/csharp/RELEASING.md @@ -10,8 +10,8 @@ package readme. - It is the package's own semantic version, independent of the `payjoin-ffi` crate version. The language bindings follow a `{version}+payjoin-{version}` convention: the [SemVer] build metadata - names the wrapped payjoin core release, so `0.1.0+payjoin-1.0.0` - packages payjoin 1.0.0. NuGet accepts build metadata per its + names the wrapped payjoin core release, so `0.2.0+payjoin-1.2.0` + packages payjoin 1.2.0. NuGet accepts build metadata per its [package versioning] guidance but ignores it for version comparison and strips it from the `.nupkg` filename, so the package identity is the bare version. @@ -125,8 +125,8 @@ is ever stored. The workflow is `verify-tag` refuses to publish otherwise. ```shell - git tag -s payjoin-csharp-0.1.0+payjoin-1.0.0 -m payjoin-csharp-0.1.0+payjoin-1.0.0 - git push upstream payjoin-csharp-0.1.0+payjoin-1.0.0 + git tag -s payjoin-csharp-0.2.0+payjoin-1.2.0 -m payjoin-csharp-0.2.0+payjoin-1.2.0 + git push upstream payjoin-csharp-0.2.0+payjoin-1.2.0 ``` The tag reruns the full build/pack/smoke graph at the tagged commit, then