You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Insulate the bitcoin_uri crate from payjoin's public API so that a breaking release of bitcoin_uri no longer forces a breaking release of payjoin. Uri and PjUri become owned newtypes read through accessor methods, parsing returns payjoin's own UriParseError, and UriExt is replaced by inherent methods. This release also seals the persisted SessionOutcome ahead of the 1.0 database-compatibility freeze and exposes proposal transaction ID stability on receiver states.
Commit
master HEAD after #1756 and the bump merge #1758. Prepared components: bump commit c52cec0 (branch bump-payjoin-1-0-rc-6) fully-verified combined state (master + #1756 + bump) was 69e5dad4.
Changelog
API Changes
Insulate bitcoin_uri from the public API: Uri and PjUri become owned newtypes with accessor methods (address(), amount(), set_amount(), label(), message(), extras()), parsing returns the payjoin-owned UriParseError, and the UriExt trait is removed in favor of inherent check_pj_supported, assume_checked, and require_network methods (Insulate bitcoin uri #1756)
Seal the persisted SessionOutcome as #[non_exhaustive] and drop its unused witness payload ahead of the 1.0 database-compatibility freeze (Pre-1.0 Doorkeeper for SessionOutcome in #1747)
Release numbering must follow Semantic Versioning. This is a pre-1.0 prerelease increment (1.0.0-rc.5 → 1.0.0-rc.6), so CRATE = payjoin and the target version is 1.0.0-rc.6 throughout (not a MINOR+1 bump).
On the day of the feature freeze
Change the master branch to the next 1.0.0-rc.6 version:
Switch to the master branch.
Create a new PR branch called bump-payjoin-1-0-rc-6.
Bump the bump-payjoin-1-0-rc-6 branch to 1.0.0-rc.6.
Change the Cargo.toml version value to 1.0.0-rc.6 for payjoin and the payjoin = { version = … } dep requirement in payjoin-cli / payjoin-ffi / payjoin-mailroom /
payjoin-test-utils.
Cargo lock files updated (Cargo-minimal.lock, Cargo-recent.lock — payjoin version line only; no dependency drift, matching the rc.5 precedent). Both pass cargo check
--locked --all-features. (Ran the surgical edit rather than contrib/updacargo +nightly rustup syntax unavailable in the nix devShell.)
Update the CHANGELOG.md file.
Commit message: "Bump payjoin to version 1.0.0-rc.6".
Create PR for bump-payjoin-1-0-rc-6 → master, titled "Bump payjoin to version 1.0.0-rc.6". Must merge after Insulate bitcoin uri #1756 (changelog references it). (Agent can't push — see
handoff commands below.)
Merge the bump-payjoin-1-0-rc-6 branch to master.
Fixes needed before release — the prerequisite feature PR:
Merge Insulate bitcoin uri #1756 ("Insulate bitcoin_uri from the public API") to master. Reviewed and verified ready (fmt, full lint.sh, 242 lib + 7 uri_api tests, -D warnings docs, insulation confirmed by public doc build, per-commit build hygiene; all t the GitHub approval — needs your approve + merge.
On the day of the release
- [ ] Check that the crate is publishable with cargo publish --dry-run ffeatures --locked, packages payjoin v1.0.0-rc.6).
Add a signed tag to HEAD on master: - Tag name payjoin-1.0.0-rc.6; first line "Release payjoin-1.0.0-rc.6"
Body = Summary + Changelog above (saved: scratchpad/tag-payjoin-1.0.0-rc.6.txt; git tag --sign payjoin-1.0.0-rc.6 -F tag-payjoin-1.0.0-rc.6.txt). - [ ] Wait for the CI to finish one last time.
Build the docs locally — RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features --document-private-items -p payjoin passes. (Re-run on final master HEAD before tagging.)
Push the new tag to payjoin/rust-payjoin.
Publish payjoin to crates.io (cargo publish from payjoin/).
Create the release on GitHub (title Release payjoin-1.0.0-rc.6, Summary + Changelog, auto-generate notes, check "Pre-release").
Confirm it shows on [crates.io] and docs build on [docs.rs].
Announce the Summary on Discord, Twitter, Nostr, and stacker.news.
Summary
Insulate the bitcoin_uri crate from payjoin's public API so that a breaking release of bitcoin_uri no longer forces a breaking release of payjoin. Uri and PjUri become owned newtypes read through accessor methods, parsing returns payjoin's own UriParseError, and UriExt is replaced by inherent methods. This release also seals the persisted SessionOutcome ahead of the 1.0 database-compatibility freeze and exposes proposal transaction ID stability on receiver states.
Commit
master HEAD after #1756 and the bump merge #1758. Prepared components: bump commit c52cec0 (branch bump-payjoin-1-0-rc-6) fully-verified combined state (master + #1756 + bump) was 69e5dad4.
Changelog
API Changes
Bug Fixes
Checklist
Release numbering must follow Semantic Versioning. This is a pre-1.0 prerelease increment (1.0.0-rc.5 → 1.0.0-rc.6), so CRATE = payjoin and the target version is 1.0.0-rc.6 throughout (not a MINOR+1 bump).
On the day of the feature freeze
Change the master branch to the next 1.0.0-rc.6 version:
payjoin-test-utils.
--locked --all-features. (Ran the surgical edit rather than contrib/updacargo +nightly rustup syntax unavailable in the nix devShell.)
handoff commands below.)
Fixes needed before release — the prerequisite feature PR:
On the day of the release
- [ ] Check that the crate is publishable with cargo publish --dry-run ffeatures --locked, packages payjoin v1.0.0-rc.6).