silent-payments 0.1.1

High-level BIP 352 Silent Payments library for Rust wallets
Documentation
# Releasing

## Prerequisites

- `cargo fmt --all`
- `cargo clippy --workspace --all-features -- -D warnings`
- `cargo test --workspace --all-features`
- valid crates.io authentication via `cargo login`

## First crates.io publish

This workspace publishes in dependency order.

The top-level `silent-payments` crate and the `silent-payments-cli` crate cannot be
packaged locally until their internal dependencies already exist on crates.io.
That is expected on the first publish.

Some internal crates also reference sibling crates in `dev-dependencies`, so
the first publish is simplest with `--no-verify`.

Publish in this exact order:

```sh
cargo publish -p silent-payments-bdk-sp --no-verify
cargo publish -p silent-payments-core --no-verify
cargo publish -p silent-payments-send --no-verify
cargo publish -p silent-payments-receive --no-verify
cargo publish -p silent-payments-dleq --no-verify
cargo publish -p silent-payments-descriptor --no-verify
cargo publish -p silent-payments-psbt --no-verify
cargo publish -p silent-payments-scan --no-verify
```

Wait for the crates.io index to catch up, then publish:

```sh
cargo publish -p silent-payments
cargo publish -p silent-payments-cli
```

If index propagation is still lagging, retry the final two commands after a few
minutes.

## Recommended dry runs after first publish

Once the internal crates exist on crates.io, these should work for future
releases:

```sh
cargo publish --dry-run -p silent-payments-bdk-sp
cargo publish --dry-run -p silent-payments-core
cargo publish --dry-run -p silent-payments-send
cargo publish --dry-run -p silent-payments-receive
cargo publish --dry-run -p silent-payments-dleq
cargo publish --dry-run -p silent-payments-descriptor
cargo publish --dry-run -p silent-payments-psbt
cargo publish --dry-run -p silent-payments-scan
cargo publish --dry-run -p silent-payments
cargo publish --dry-run -p silent-payments-cli
```

## Suggested release flow

```sh
git status
cargo fmt --all
cargo clippy --workspace --all-features -- -D warnings
cargo test --workspace --all-features
git tag -a v0.1.1 -m "Release v0.1.1"
```