Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release payjoin-0.18.0 and payjoin-cli-0.0.7-alpha #309

Closed
15 of 17 tasks
DanGould opened this issue Jun 27, 2024 · 0 comments
Closed
15 of 17 tasks

Release payjoin-0.18.0 and payjoin-cli-0.0.7-alpha #309

DanGould opened this issue Jun 27, 2024 · 0 comments

Comments

@DanGould
Copy link
Contributor

DanGould commented Jun 27, 2024

Create a new minor release

Summary

payjoin-0.18.0

An upgraded asynchronous payjoin experience. This update focused semantically describing a Payjoin V2 "Session" and includes various enhancements and bugfixes.

payjoin-cli-0.0.7-alpha

An upgraded asynchronous payjoin experience. This update includes a new resume subcommand to continue any prior session. It also stops using .json files to persist data opting for a sled database instead.

Commit

payjoin-0.18.0

c952b2a

payjoin-cli-0.0.7-alpha

b63b0ff

Changelog

payjoin-0.18.0

  • Handle OHTTP encapsulated response status (#284)
  • Upgrade receive::v2 Typestate machine to resume multiple payjoins simultaneously (#283)
    • Enroller became SessionInitializer
    • Enrolled became ActiveSession
      • fallback_target() became pj_url()
      • pj_url_builder() was introduced
    • ContextV2 became SessionContext
      • Include a bitcoin address in SessionContext
  • send::ResponseError variants fields got explicit names (#304)
  • Refactor output substitution with new fallable try_substitute_outputs (#277)

payjoin-cli-0.0.7-alpha

  • Resume multiple payjoins easily with the resume subcommand. A repeat send
    subcommand will also resume an existing session (#283)
  • Normalize dash-separated long args (Normalize dash-separated long args #295)
  • Use sled database. Old .json storage files will no longer be read and should be deleted.
  • read Network::from_core_arg (#304)
  • Don't needlessly substitute outputs for v2 receivers (#277)
  • Print instructions and info on interrupt (#303)

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:

  • 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.
    • Update the CHANGELOG.md file.
    • 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.
  • 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

Tag and publish new release:

  • Add a tag to the HEAD appropriate commit in the master branch.
    • The tag name should be CRATE-MAJOR.MINOR+1.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.
    • Make sure the tag is signed, for extra safety use the explicit --sign flag.
  • Wait for the CI to finish one last time.
  • Push the new tag to the payjoin/rust-payjoin repo.
  • Build the docs locally to ensure they are building correctly.
  • Publish the crate in question crates to crates.io.
  • Create the release on GitHub.
    • Go to "tags", click on the dots on the right and select "Create Release".
    • Set the title to Release CRATE-MAJOR.MINOR+1.0.
    • In the release notes body put the Summary and Changelog.
    • Use the "+ Auto-generate release notes" button to add details from included PRs.
    • Until we reach a 1.0.0 release check the "Pre-release" box.
  • Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs].
  • Announce the release, using the Summary, on Discord, Twitter, Nostr, and stacker.news.
  • Celebrate 🎉
@DanGould DanGould closed this as completed Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant