Skip to content

Release payjoin-1.1.0 #1900

Description

@DanGould

Create a new minor release

Summary

payjoin 1.1.0 hardens how both sides of a payjoin validate what the counterparty sends. Fee rates, fee arithmetic, PSBT amounts, endpoint URLs, and directory responses are now checked before they can overflow, panic, or redirect a request. It deprecates the v2 SenderBuilder::new, which panics on a BIP 78 only endpoint, and raises the minimum rust-bitcoin version. Upgrading from 1.0.0 needs no code changes, though callers of SenderBuilder::new will see a deprecation warning.

Commit

TBD, the merge commit of the bump PR.

Changelog

Selected Improvements:

Deprecations

Dependencies

Features

Bug Fixes

Checklist

Release numbering must follow Semantic Versioning. These steps assume the current master branch development version is MAJOR.MINOR.0. Release-managed crates are payjoin, payjoin-cli, and payjoin-mailroom; tags use the <crate>-<version> scheme.

On the day of the feature freeze

Change the master branch to the next MINOR+1 version:

  • Switch to the master branch.
  • Create a new PR branch called bump-CRATE-MAJOR-MINOR+1, eg. bump-CRATE-0-22.
  • Bump the bump-CRATE-MAJOR-MINOR+1 branch to the next development MINOR+1 version.
    • Change the Cargo.toml version value to MAJOR.MINOR+1.0 for the crate being released, and update every workspace member's version requirement on it to match.
    • Run contrib/update-lock-files.sh to apply upgrades to the Cargo lock files.
    • Update the crate's CHANGELOG.md file, adding a ## MAJOR.MINOR+1.0 section that summarizes the PRs merged since the last release tag.
    • The commit message should be "Bump CRATE version to MAJOR.MINOR+1.0".
  • Create PR for the bump-CRATE-MAJOR-MINOR+1 branch to master.
    • Title PR "Bump CRATE version to MAJOR.MINOR+1.0".
  • Merge the bump-CRATE-MAJOR-MINOR+1 branch to master.

If any issues need to be fixed before the MAJOR.MINOR+1.0 version is released:

  • Merge fix PRs to the master branch.
    • Publish bitcoin-hpke 0.20.0 and bitcoin-ohttp 0.7.0, then move payjoin's requirements to them.
  • Git cherry-pick fix commits to the bump-CRATE-MAJOR.MINOR+1 branch.
  • Verify fixes in bump-CRATE-MAJOR.MINOR+1 branch.

On the day of the release

  • Create a signed annotated tag on the HEAD commit in the master branch.
    • The tag name should be CRATE-MAJOR.MINOR+1.0, eg. payjoin-1.0.0.
    • The first line of the tag message should be "Release CRATE-MAJOR.MINOR+1.0".
    • In the body of the tag message put a copy of the Summary and Changelog for the release.
    • Sign with a key committed under contrib/release/keys/, using the explicit --sign flag.
  • Push the new tag to the payjoin/rust-payjoin repo.
  • Approve the release environment when it requests a reviewer.
  • Announce the release, using the Summary, on Discord, Twitter, Nostr, and stacker.news.
  • Celebrate 🎉

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions