Create a new minor release
Summary
New Commands
- cancel — cancel active or inactive sessions for senders and receivers
- history — browse past session state
Major Under-the-Hood Changes
- Migrated from sled to SQLite (rusqlite) for session persistence — more reliable, no corruption risk
- Replaced custom RPC client with bitcoind-async-client — cleaner, better tested, mainnet/testnet support out of the box
- Switched from log to tracing — structured, filterable diagnostics
Robustness
- State-machine-driven session loops with clear transient vs. fatal error handling
- Expiry checked mid-loop, not just on startup; sessions auto-cancel on expiry
- Exclusive database lock prevents concurrent send races
- Per-request relay selection with randomized relay per session
- Config file discovered in XDG standard locations
UX Improvements
- Session output prefixed with role and session ID
- resume --session-id to target a single session
- Fallback availability displayed on abort
- Consistent print formatting throughout
- Time-based UUID v7 for session IDs
Supported Bitcoin Core: 29.0+
Commit
Changelog
Checklist
Release numbering must follow Semantic Versioning. These steps assume the current master
branch development version is MAJOR.MINOR.0.
On the day of the feature freeze
Change the master branch to the next MINOR+1 version:
If any issues need to be fixed before the MAJOR.MINOR+1.0 version is released:
On the day of the release
Tag and publish new release:
Create a new minor release
Summary
New Commands
Major Under-the-Hood Changes
Robustness
UX Improvements
Supported Bitcoin Core: 29.0+
Commit
Changelog
Checklist
Release numbering must follow Semantic Versioning. These steps assume the current
masterbranch development version is MAJOR.MINOR.0.
On the day of the feature freeze
Change the
masterbranch to the next MINOR+1 version:masterbranch.bump-CRATE-MAJOR-MINOR+1, eg.bump-CRATE-0-22.bump-CRATE-MAJOR-MINOR+1branch to the next development MINOR+1 version.Cargo.tomlversion value toMAJOR.MINOR+1.0for all crates in the workspace.contrib/update-lock-files.shto apply upgrades to the Cargo lock files.CHANGELOG.mdfile.bump-CRATE-MAJOR-MINOR+1branch tomaster.bump-CRATE-MAJOR-MINOR+1branch tomaster.If any issues need to be fixed before the MAJOR.MINOR+1.0 version is released:
masterbranch.bump-CRATE-MAJOR.MINOR+1branch.bump-CRATE-MAJOR.MINOR+1branch.On the day of the release
Tag and publish new release:
cargo publish --dry-runfrom that crate's directory.HEADcommit in themasterbranch.CRATE-MAJOR.MINOR+1.0--signflag.payjoin/rust-payjoinrepo.Release CRATE-MAJOR.MINOR+1.0.1.0.0release check the "Pre-release" box.