Bump dart payjoin 0.2.1 for pub.dev - #1800
Merged
Merged
Conversation
The Dart package carried no publishing instructions, though the payjoin-ffi README claims each language directory has them. Record the steps a maintainer follows: pin the wrapper revision, set the version and changelog, test, and inspect the archive before publishing. Adopt `<package version>+payjoin-<crate version>` for the package version, matching the convention bark_bitcoin uses on pub.dev. The package's own semantic version stays what consumers write constraints against, while the build metadata names the wrapped payjoin release on the pub.dev listing. Note that generate_bindings.sh emits _test-utils bindings, which published releases carry into consumer builds that lack the feature. Resolving that needs a production mode on the script, so record it as a known limitation rather than fold it into this change.
Bump the dart bindings to 0.2.1+payjoin-1.0.0-rc.8 to publish updated bindings for payjoin 1.0.0-rc.8, pin the payjoin-ffi wrapper dependency to e4f5a0b, the payjoin-1.0.0-rc.8 tag commit, and record the release in the changelog. The FFI surface is unchanged since rc.7, so a patch bump covers it. What reaches consumers is rc.8's tightened sender validation: an input must declare a sighash type that commits to all inputs and outputs, so only ECDSA SIGHASH_ALL, taproot SIGHASHDEFAULT/SIGHASH_ALL, and an unset type are accepted.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the Dart bindings to
0.2.1+payjoin-1.0.0-rc.8and pins thepayjoin-ffiwrapper dependency toe4f5a0b3, thepayjoin-1.0.0-rc.8tag commit.The FFI surface is unchanged since rc.7 —
git diff payjoin-1.0.0-rc.7..payjoin-1.0.0-rc.8 -- payjoin-ffi/srcis empty, only thepayjoindependency line inpayjoin-ffi/Cargo.tomlmoved — so a patch bump covers it. What reaches consumers is rc.8's tightened sender validation: an input must declare a sighash type that commits to all inputs and outputs, so only ECDSASIGHASH_ALL, taprootSIGHASHDEFAULT/SIGHASH_ALL, and an unset type are accepted.Versioning convention
Adopts the pub.dev build-metadata convention that
bark_bitcoinuses:<package version>+payjoin-<crate version>. The semantic version before the+stays what consumers write constraints against, while the metadata after it names the wrappedpayjoinrelease directly on the pub.dev listing instead of requiring a changelog lookup.dart pub publish --dry-runaccepts the string.Release documentation
The Dart package carried no publishing instructions, though
payjoin-ffi/README.mdclaims each language directory has them, soCONTRIBUTING.mdgains aReleasingsection covering the versioning convention and the publish steps.It documents two archive-content traps, both stemming from
.pubignorereplacing.gitignoreat publish time rather than adding to it:lib/payjoin.dartis gitignored but must be present and current, since it is the binding surface consumers import.native/Cargo.lockis gitignored but absent from.pubignore, so a local build leaves one behind that would ship a lockfile resolved against the.cargo/config.tomlpath overlay. 0.2.0 happened not to ship one; a dry run from a built tree does include it.Known limitation, not addressed here
scripts/generate_bindings.shalways builds with_test-utils, so the bindings it emits declare test-only APIs such asTestServicesandBitcoindEnvwhile consumers build the native library without that feature, leaving those declarations backed by symbols absent at runtime. Unpacking the published 0.2.0 archive confirms it already ships them;@Nativeresolves lazily, so this is latent rather than breaking. Recorded as a known limitation inCONTRIBUTING.md. Giving the script a production mode, aspayjoin-ffi/csharpdoes withPAYJOIN_FFI_FEATURES, is left for a follow-up, along with addingnative/Cargo.lockto.pubignore.Disclosure: co-authored by Claude Code