diff --git a/.changelog/unreleased/breaking-changes/1203-bytes-for-abci-proto.md b/.changelog/v0.26.0/breaking-changes/1203-bytes-for-abci-proto.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1203-bytes-for-abci-proto.md rename to .changelog/v0.26.0/breaking-changes/1203-bytes-for-abci-proto.md diff --git a/.changelog/unreleased/breaking-changes/862-abci-domain-types.md b/.changelog/v0.26.0/breaking-changes/862-abci-domain-types.md similarity index 100% rename from .changelog/unreleased/breaking-changes/862-abci-domain-types.md rename to .changelog/v0.26.0/breaking-changes/862-abci-domain-types.md diff --git a/.changelog/unreleased/bug-fixes/1208-trustthresholdfraction-check.md b/.changelog/v0.26.0/bug-fixes/1208-trustthresholdfraction-check.md similarity index 100% rename from .changelog/unreleased/bug-fixes/1208-trustthresholdfraction-check.md rename to .changelog/v0.26.0/bug-fixes/1208-trustthresholdfraction-check.md diff --git a/.changelog/unreleased/bug-fixes/832-block-by-hash-encoding.md b/.changelog/v0.26.0/bug-fixes/832-block-by-hash-encoding.md similarity index 100% rename from .changelog/unreleased/bug-fixes/832-block-by-hash-encoding.md rename to .changelog/v0.26.0/bug-fixes/832-block-by-hash-encoding.md diff --git a/.changelog/unreleased/enhancements/1203-deprecate-abci-client-set-option.md b/.changelog/v0.26.0/enhancements/1203-deprecate-abci-client-set-option.md similarity index 100% rename from .changelog/unreleased/enhancements/1203-deprecate-abci-client-set-option.md rename to .changelog/v0.26.0/enhancements/1203-deprecate-abci-client-set-option.md diff --git a/.changelog/unreleased/features/832-block-by-hash.md b/.changelog/v0.26.0/features/832-block-by-hash.md similarity index 100% rename from .changelog/unreleased/features/832-block-by-hash.md rename to .changelog/v0.26.0/features/832-block-by-hash.md diff --git a/.changelog/v0.26.0/summary.md b/.changelog/v0.26.0/summary.md new file mode 100644 index 000000000..644ea790e --- /dev/null +++ b/.changelog/v0.26.0/summary.md @@ -0,0 +1,12 @@ +*Oct 31, 2022* + +The highlight of this release is the addition of domain types specifically for +ABCI. Previously, Rust-based Tendermint application developers would have had to +exclusively rely on the generated Protobuf types. Many thanks to @hdevalence for +the heavy lifting on this, and to @mzabaluev for the porting work after the +Tendermint v0.35 retraction! + +While we will endeavour to keep this API as stable as possible, we know that we +will have to evolve it over the coming months to reduce duplication of +functionality and types across the ABCI module and RPC crate, so please expect +further breaking changes in subsequent breaking releases. diff --git a/CHANGELOG.md b/CHANGELOG.md index c8a8ac824..6df1ad09c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ # CHANGELOG +## v0.26.0 + +*Oct 31, 2022* + +The highlight of this release is the addition of domain types specifically for +ABCI. Previously, Rust-based Tendermint application developers would have had to +exclusively rely on the generated Protobuf types. Many thanks to @hdevalence for +the heavy lifting on this, and to @mzabaluev for the porting work after the +Tendermint v0.35 retraction! + +While we will endeavour to keep this API as stable as possible, we know that we +will have to evolve it over the coming months to reduce duplication of +functionality and types across the ABCI module and RPC crate, so please expect +further breaking changes in subsequent breaking releases. + +### BREAKING CHANGES + +- `[tendermint]` Added domain types for ABCI + ([#862](https://github.com/informalsystems/tendermint-rs/issues/862)) +- `[tendermint-proto]` Use `Bytes` for byte array fields of ABCI protobuf types. + ([#1203](https://github.com/informalsystems/tendermint-rs/pull/1203)) + +### BUG FIXES + +- `[tendermint-rpc]` The encoding of the `hash` field for requests to the `/block_by_hash` + endpoint has been changed to base64 (from hex) to accommodate discrepancies in + how the Tendermint RPC encodes this field for different RPC interfaces + ([#942](https://github.com/informalsystems/tendermint-rs/issues/942)) +- Allow a `TrustThresholdFraction` of 1 + ([#1208](https://github.com/informalsystems/tendermint-rs/issues/1208)) + +### ENHANCEMENTS + +- `[tendermint-abci]` Deprecate `Client::set_option`. + ([#1203](https://github.com/informalsystems/tendermint-rs/pull/1203)) + +### FEATURES + +- `[tendermint-rpc]` Add support for the `/block_by_hash` RPC endpoint. See for details ([#832](https://github.com/informalsystems/tendermint-rs/issues/832)). + ## v0.25.0 *Sep 23, 2022* @@ -99,12 +139,12 @@ Pre-releases will continue along this line until v0.34.20 is released. ### FEATURES -- `[tendermint-proto]` Regenerate protos from Tendermint - v0.34.20-rc0, including prioritized mempool fields in `ResponseCheckTx` - ([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148)) - `[tendermint-rpc]` Update `broadcast_tx_*` result to include prioritized new mempool fields available from v0.34.20-rc0 ([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148)) +- `[tendermint-proto]` Regenerate protos from Tendermint + v0.34.20-rc0, including prioritized mempool fields in `ResponseCheckTx` + ([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148)) ## v0.23.7 @@ -261,18 +301,18 @@ not yet support `no_std`. - Upgraded Prost to the official v0.9 release to finally resolve the security issue introduced by v0.7 ([#925](https://github.com/informalsystems/tendermint-rs/issues/925)) -- `[tendermint]` The `tendermint::node::info::ListenAddress::to_net_address` - method was replaced with a simple `as_str` method toward facilitating - `no_std` compatibility ([#983](https://github.com/informalsystems/tendermint- - rs/issues/983)) -- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address` - field type has been changed from `tendermint::net::Address` - to `String` toward facilitating `no_std` compatibility - ([#983](https://github.com/informalsystems/tendermint-rs/issues/983)) - `[tendermint, tendermint-config]` The `tendermint::config` module has now been broken out into its own crate (`tendermint- config`) to help towards facilitating `no_std` compatibility ([#983](https://github.com/informalsystems/tendermint-rs/issues/983)) +- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address` + field type has been changed from `tendermint::net::Address` + to `String` toward facilitating `no_std` compatibility + ([#983](https://github.com/informalsystems/tendermint-rs/issues/983)) +- `[tendermint]` The `tendermint::node::info::ListenAddress::to_net_address` + method was replaced with a simple `as_str` method toward facilitating + `no_std` compatibility ([#983](https://github.com/informalsystems/tendermint- + rs/issues/983)) ### FEATURES diff --git a/abci/Cargo.toml b/abci/Cargo.toml index a7ed8f7f6..25822bd94 100644 --- a/abci/Cargo.toml +++ b/abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-abci" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" @@ -33,7 +33,7 @@ binary = [ [dependencies] bytes = { version = "1.0", default-features = false } prost = { version = "0.11", default-features = false } -tendermint-proto = { version = "0.25.0", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.26.0", default-features = false, path = "../proto" } tracing = { version = "0.1", default-features = false } flex-error = { version = "0.4.4", default-features = false } structopt = { version = "0.3", optional = true, default-features = false } diff --git a/config/Cargo.toml b/config/Cargo.toml index 7c22e49c8..6aa502efc 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-config" -version = "0.25.0" # Also update `html_root_url` in lib.rs and +version = "0.26.0" # Also update `html_root_url` in lib.rs and # depending crates (rpc, light-node, ..) when bumping this license = "Apache-2.0" homepage = "https://www.tendermint.com/" @@ -25,7 +25,7 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -tendermint = { version = "0.25.0", default-features = false, path = "../tendermint" } +tendermint = { version = "0.26.0", default-features = false, path = "../tendermint" } flex-error = { version = "0.4.4", default-features = false } serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/light-client-js/Cargo.toml b/light-client-js/Cargo.toml index 65b3bf4be..17b2005bd 100644 --- a/light-client-js/Cargo.toml +++ b/light-client-js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-js" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" @@ -24,8 +24,8 @@ serde = { version = "1.0", default-features = false, features = [ "derive" ] } serde_json = { version = "1.0", default-features = false } # TODO(thane): Remove once https://github.com/rustwasm/wasm-bindgen/issues/2508 is resolved syn = { version = "=1.0.65", default-features = false } -tendermint = { version = "0.25.0", default-features = false, path = "../tendermint" } -tendermint-light-client-verifier = { version = "0.25.0", default-features = false, path = "../light-client-verifier" } +tendermint = { version = "0.26.0", default-features = false, path = "../tendermint" } +tendermint-light-client-verifier = { version = "0.26.0", default-features = false, path = "../light-client-verifier" } wasm-bindgen = { version = "0.2.63", default-features = false, features = [ "serde-serialize" ] } # The `console_error_panic_hook` crate provides better debugging of panics by diff --git a/light-client-verifier/Cargo.toml b/light-client-verifier/Cargo.toml index c5d33da2b..c041d401f 100644 --- a/light-client-verifier/Cargo.toml +++ b/light-client-verifier/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-verifier" -version = "0.25.0" +version = "0.26.0" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -26,7 +26,7 @@ rustdoc-args = ["--cfg", "docsrs"] default = ["flex-error/std", "flex-error/eyre_tracer"] [dependencies] -tendermint = { version = "0.25.0", path = "../tendermint", default-features = false } +tendermint = { version = "0.26.0", path = "../tendermint", default-features = false } derive_more = { version = "0.99.5", default-features = false, features = ["display"] } serde = { version = "1.0.106", default-features = false } diff --git a/light-client/Cargo.toml b/light-client/Cargo.toml index dd4c5c244..514f4b6c0 100644 --- a/light-client/Cargo.toml +++ b/light-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client" -version = "0.25.0" +version = "0.26.0" edition = "2018" license = "Apache-2.0" readme = "README.md" @@ -34,9 +34,9 @@ unstable = [] mbt = [] [dependencies] -tendermint = { version = "0.25.0", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.25.0", path = "../rpc", default-features = false } -tendermint-light-client-verifier = { version = "0.25.0", path = "../light-client-verifier", default-features = false } +tendermint = { version = "0.26.0", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.26.0", path = "../rpc", default-features = false } +tendermint-light-client-verifier = { version = "0.26.0", path = "../light-client-verifier", default-features = false } contracts = { version = "0.6.2", default-features = false } crossbeam-channel = { version = "0.4.2", default-features = false } diff --git a/light-client/src/lib.rs b/light-client/src/lib.rs index 5c428c40c..6d5f4c96b 100644 --- a/light-client/src/lib.rs +++ b/light-client/src/lib.rs @@ -9,7 +9,7 @@ nonstandard_style )] #![doc( - html_root_url = "https://docs.rs/tendermint-light-client/0.25.0", + html_root_url = "https://docs.rs/tendermint-light-client/0.26.0", html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png" )] #![cfg_attr(docsrs, feature(doc_cfg))] diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml index ee9cf581d..941b6513c 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-p2p" -version = "0.25.0" +version = "0.26.0" edition = "2018" license = "Apache-2.0" repository = "https://github.com/informalsystems/tendermint-rs" @@ -44,9 +44,9 @@ aead = { version = "0.4.1", default-features = false } flex-error = { version = "0.4.4", default-features = false } # path dependencies -tendermint = { path = "../tendermint", version = "0.25.0", default-features = false } -tendermint-proto = { path = "../proto", version = "0.25.0", default-features = false } -tendermint-std-ext = { path = "../std-ext", version = "0.25.0", default-features = false } +tendermint = { path = "../tendermint", version = "0.26.0", default-features = false } +tendermint-proto = { path = "../proto", version = "0.26.0", default-features = false } +tendermint-std-ext = { path = "../std-ext", version = "0.26.0", default-features = false } # optional dependencies prost-derive = { version = "0.11", optional = true } diff --git a/p2p/src/lib.rs b/p2p/src/lib.rs index 4be36fd63..acb70769c 100644 --- a/p2p/src/lib.rs +++ b/p2p/src/lib.rs @@ -20,7 +20,7 @@ unused_qualifications )] #![doc( - html_root_url = "https://docs.rs/tendermint-p2p/0.25.0", + html_root_url = "https://docs.rs/tendermint-p2p/0.26.0", html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png" )] diff --git a/pbt-gen/Cargo.toml b/pbt-gen/Cargo.toml index cd5d3710b..52a759d83 100644 --- a/pbt-gen/Cargo.toml +++ b/pbt-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-pbt-gen" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 99092b7f3..49e58aba0 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-proto" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/src/lib.rs b/proto/src/lib.rs index d87c8d695..c9b963cf3 100644 --- a/proto/src/lib.rs +++ b/proto/src/lib.rs @@ -4,7 +4,7 @@ #![deny(warnings, trivial_casts, trivial_numeric_casts, unused_import_braces)] #![allow(clippy::large_enum_variant)] #![forbid(unsafe_code)] -#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.25.0")] +#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.26.0")] extern crate alloc; diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 0f115c11e..ed47472cf 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc" -version = "0.25.0" +version = "0.26.0" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" @@ -69,9 +69,9 @@ pin-project = { version = "1.0.1", default-features = false } serde = { version = "1", default-features = false, features = [ "derive" ] } serde_bytes = { version = "0.11", default-features = false } serde_json = { version = "1", default-features = false, features = ["std"] } -tendermint-config = { version = "0.25.0", path = "../config", default-features = false } -tendermint = { version = "0.25.0", default-features = false, path = "../tendermint" } -tendermint-proto = { version = "0.25.0", default-features = false, path = "../proto" } +tendermint-config = { version = "0.26.0", path = "../config", default-features = false } +tendermint = { version = "0.26.0", default-features = false, path = "../tendermint" } +tendermint-proto = { version = "0.26.0", default-features = false, path = "../proto" } thiserror = { version = "1", default-features = false } time = { version = "0.3", default-features = false, features = ["macros", "parsing"] } uuid = { version = "0.8", default-features = false } diff --git a/std-ext/Cargo.toml b/std-ext/Cargo.toml index 4936ed970..dda2f201a 100644 --- a/std-ext/Cargo.toml +++ b/std-ext/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-std-ext" -version = "0.25.0" +version = "0.26.0" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml index 642a1a4a2..2c568a384 100644 --- a/tendermint/Cargo.toml +++ b/tendermint/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint" -version = "0.25.0" # Also update `html_root_url` in lib.rs and +version = "0.26.0" # Also update `html_root_url` in lib.rs and # depending crates (rpc, light-node, ..) when bumping this license = "Apache-2.0" homepage = "https://www.tendermint.com/" @@ -47,7 +47,7 @@ sha2 = { version = "0.9", default-features = false } signature = { version = "1", default-features = false } subtle = { version = "2", default-features = false } subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] } -tendermint-proto = { version = "0.25.0", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.26.0", default-features = false, path = "../proto" } time = { version = "0.3", default-features = false, features = ["macros", "parsing"] } zeroize = { version = "1.1", default-features = false, features = ["zeroize_derive", "alloc"] } flex-error = { version = "0.4.4", default-features = false } diff --git a/tendermint/src/lib.rs b/tendermint/src/lib.rs index f57f0ac56..a055afac9 100644 --- a/tendermint/src/lib.rs +++ b/tendermint/src/lib.rs @@ -15,7 +15,7 @@ )] #![forbid(unsafe_code)] #![doc( - html_root_url = "https://docs.rs/tendermint/0.25.0", + html_root_url = "https://docs.rs/tendermint/0.26.0", html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png" )] diff --git a/test/Cargo.toml b/test/Cargo.toml index 8bfdc7e61..aef835af5 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tendermint-test" description = "Tendermint workspace tests and common utilities for testing." -version = "0.25.0" +version = "0.26.0" edition = "2018" license = "Apache-2.0" categories = ["development", "test", "tools"] diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml index 05453985f..ea37123c2 100644 --- a/testgen/Cargo.toml +++ b/testgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-testgen" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" readme = "README.md" @@ -16,7 +16,7 @@ description = """ """ [dependencies] -tendermint = { version = "0.25.0", path = "../tendermint", features = ["clock"] } +tendermint = { version = "0.26.0", path = "../tendermint", features = ["clock"] } serde = { version = "1", default-features = false, features = ["derive"] } serde_json = { version = "1", default-features = false, features = ["std"] } ed25519-dalek = { version = "1", default-features = false } diff --git a/tools/abci-test/Cargo.toml b/tools/abci-test/Cargo.toml index 678814867..f422b3bec 100644 --- a/tools/abci-test/Cargo.toml +++ b/tools/abci-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "abci-test" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" description = """ @@ -14,9 +14,9 @@ description = """ flex-error = { version = "0.4.4", default-features = false, features = ["std", "eyre_tracer"] } futures = "0.3" structopt = "0.3" -tendermint = { version = "0.25.0", path = "../../tendermint" } -tendermint-config = { version = "0.25.0", path = "../../config" } -tendermint-rpc = { version = "0.25.0", path = "../../rpc", features = [ "websocket-client" ] } +tendermint = { version = "0.26.0", path = "../../tendermint" } +tendermint-config = { version = "0.26.0", path = "../../config" } +tendermint-rpc = { version = "0.26.0", path = "../../rpc", features = [ "websocket-client" ] } tracing = "0.1" tracing-subscriber = "0.2" tokio = { version = "1.20", features = ["full"] } diff --git a/tools/kvstore-test/Cargo.toml b/tools/kvstore-test/Cargo.toml index b3635d03b..4129dfcb9 100644 --- a/tools/kvstore-test/Cargo.toml +++ b/tools/kvstore-test/Cargo.toml @@ -10,9 +10,9 @@ edition = "2018" [dev-dependencies] futures = "0.3" -tendermint = { version = "0.25.0", path = "../../tendermint" } -tendermint-light-client = { version = "0.25.0", path = "../../light-client", features = ["unstable"] } -tendermint-rpc = { version = "0.25.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] } +tendermint = { version = "0.26.0", path = "../../tendermint" } +tendermint-light-client = { version = "0.26.0", path = "../../light-client", features = ["unstable"] } +tendermint-rpc = { version = "0.26.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] } tokio = { version = "1.0", features = [ "rt-multi-thread", "macros" ] } tracing = "0.1" tracing-subscriber = "0.2" diff --git a/tools/rpc-probe/Cargo.toml b/tools/rpc-probe/Cargo.toml index 34825e6b4..7d6528e17 100644 --- a/tools/rpc-probe/Cargo.toml +++ b/tools/rpc-probe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc-probe" -version = "0.25.0" +version = "0.26.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0"