diff --git a/.changelog/unreleased/breaking-changes/1027-light-client-verifier.md b/.changelog/v0.23.5/breaking-changes/1027-light-client-verifier.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1027-light-client-verifier.md rename to .changelog/v0.23.5/breaking-changes/1027-light-client-verifier.md diff --git a/.changelog/v0.23.5/summary.md b/.changelog/v0.23.5/summary.md new file mode 100644 index 000000000..3adfefe49 --- /dev/null +++ b/.changelog/v0.23.5/summary.md @@ -0,0 +1,4 @@ +*Jan 13, 2022* + +A single breaking change is provided by this release in order to move us closer +toward `no_std` support in both tendermint-rs and ibc-rs. diff --git a/CHANGELOG.md b/CHANGELOG.md index 327cdfdab..d0941dfd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # CHANGELOG +## v0.23.5 + +*Jan 13, 2022* + +A single breaking change is provided by this release in order to move us closer +toward `no_std` support in both tendermint-rs and ibc-rs. + +### BREAKING CHANGES + +- `[tendermint-light-client]` Split out the verification functionality from the + `tendermint-light-client` crate into its own `no_std`-compatible crate: + `tendermint-light-client-verifier`. This helps move us closer to `no_std` + compliance in both tendermint-rs and ibc-rs + ([#1027](https://github.com/informalsystems/tendermint-rs/issues/1027)) + ## v0.23.4 *Jan 11, 2022* diff --git a/abci/Cargo.toml b/abci/Cargo.toml index 2824fdd01..050fa394a 100644 --- a/abci/Cargo.toml +++ b/abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-abci" -version = "0.23.4" +version = "0.23.5" 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.9", default-features = false } -tendermint-proto = { version = "0.23.4", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.5", 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 113f8e49b..a6574dc0d 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-config" -version = "0.23.4" # Also update `html_root_url` in lib.rs and +version = "0.23.5" # 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.23.4", default-features = false, path = "../tendermint" } +tendermint = { version = "0.23.5", 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 4cb875156..fd167b4ee 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.23.4" +version = "0.23.5" 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.23.4", default-features = false, path = "../tendermint" } -tendermint-light-client-verifier = { version = "0.23.4", default-features = false, path = "../light-client-verifier" } +tendermint = { version = "0.23.5", default-features = false, path = "../tendermint" } +tendermint-light-client-verifier = { version = "0.23.5", 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 475e14611..236fb8cfc 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.23.4" +version = "0.23.5" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -26,8 +26,8 @@ rustdoc-args = ["--cfg", "docsrs"] default = ["flex-error/std", "flex-error/eyre_tracer"] [dependencies] -tendermint = { version = "0.23.4", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.23.4", path = "../rpc", default-features = false } +tendermint = { version = "0.23.5", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.23.5", path = "../rpc", 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-verifier/README.md b/light-client-verifier/README.md new file mode 100644 index 000000000..7abf72a52 --- /dev/null +++ b/light-client-verifier/README.md @@ -0,0 +1,28 @@ +[![Crate][crate-image]][crate-link] +[![Docs][docs-image]][docs-link] + +See the [repo root] for build status, license, rust version, etc. + +# Light Client Verifier + +The verification component of the [Light Client]. This is extracted in order to +be able to make use of verification predicates without any of the I/O and +dependencies on the Rust standard library (i.e. to facilitate `no_std` support). + +## Documentation + +See documentation on [crates.io][docs-link]. + +[//]: # (badges) + +[crate-image]: https://img.shields.io/crates/v/tendermint-light-client-verifier.svg +[crate-link]: https://crates.io/crates/tendermint-light-client-verifier +[docs-image]: https://docs.rs/tendermint-light-client-verifier/badge.svg +[docs-link]: https://docs.rs/tendermint-light-client-verifier/ + +[//]: # (general links) + +[repo root]: https://github.com/informalsystems/tendermint-rs +[quick start]: https://github.com/tendermint/tendermint/blob/master/docs/introduction/quick-start.md +[Tendermint]: https://github.com/tendermint/tendermint +[Light Client]: https://github.com/informalsystems/tendermint-rs/tree/master/light-client diff --git a/light-client/Cargo.toml b/light-client/Cargo.toml index f890e33d2..b13d6226b 100644 --- a/light-client/Cargo.toml +++ b/light-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client" -version = "0.23.4" +version = "0.23.5" edition = "2018" license = "Apache-2.0" readme = "README.md" @@ -34,9 +34,9 @@ unstable = [] mbt = [] [dependencies] -tendermint = { version = "0.23.4", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.23.4", path = "../rpc", default-features = false } -tendermint-light-client-verifier = { version = "0.23.4", path = "../light-client-verifier", default-features = false } +tendermint = { version = "0.23.5", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.23.5", path = "../rpc", default-features = false } +tendermint-light-client-verifier = { version = "0.23.5", path = "../light-client-verifier", default-features = false } contracts = { version = "0.4.0", 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 7c7699b2f..f4a3d3fe4 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.23.4", + html_root_url = "https://docs.rs/tendermint-light-client/0.23.5", 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 76f68547f..d2dce9beb 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-p2p" -version = "0.23.4" +version = "0.23.5" 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.23.4", default-features = false } -tendermint-proto = { path = "../proto", version = "0.23.4", default-features = false } -tendermint-std-ext = { path = "../std-ext", version = "0.23.4", default-features = false } +tendermint = { path = "../tendermint", version = "0.23.5", default-features = false } +tendermint-proto = { path = "../proto", version = "0.23.5", default-features = false } +tendermint-std-ext = { path = "../std-ext", version = "0.23.5", default-features = false } # optional dependencies prost-derive = { version = "0.9", optional = true } diff --git a/p2p/src/lib.rs b/p2p/src/lib.rs index c6103c168..7bf5f6642 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.23.4", + html_root_url = "https://docs.rs/tendermint-p2p/0.23.5", 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 0525eac1f..619259ecf 100644 --- a/pbt-gen/Cargo.toml +++ b/pbt-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-pbt-gen" -version = "0.23.4" +version = "0.23.5" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 6dca49499..ef4980683 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-proto" -version = "0.23.4" +version = "0.23.5" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/src/lib.rs b/proto/src/lib.rs index c2d6770f2..1e097680b 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.23.4")] +#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.23.5")] extern crate alloc; diff --git a/release.sh b/release.sh index ab374458d..43888c869 100755 --- a/release.sh +++ b/release.sh @@ -18,7 +18,7 @@ set -e # A space-separated list of all the crates we want to publish, in the order in # which they must be published. It's important to respect this order, since # each subsequent crate depends on one or more of the preceding ones. -DEFAULT_CRATES="tendermint-proto tendermint-std-ext tendermint tendermint-config tendermint-abci tendermint-rpc tendermint-p2p tendermint-light-client tendermint-light-client-js tendermint-testgen" +DEFAULT_CRATES="tendermint-proto tendermint-std-ext tendermint tendermint-config tendermint-abci tendermint-rpc tendermint-p2p tendermint-light-client-verifier tendermint-light-client tendermint-light-client-js tendermint-testgen" # Allows us to override the crates we want to publish. CRATES=${*:-${DEFAULT_CRATES}} diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index b9e3e0eb9..ac36d5685 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc" -version = "0.23.4" +version = "0.23.5" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" @@ -68,9 +68,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.23.4", path = "../config", default-features = false } -tendermint = { version = "0.23.4", default-features = false, path = "../tendermint" } -tendermint-proto = { version = "0.23.4", default-features = false, path = "../proto" } +tendermint-config = { version = "0.23.5", path = "../config", default-features = false } +tendermint = { version = "0.23.5", default-features = false, path = "../tendermint" } +tendermint-proto = { version = "0.23.5", 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 ac374abd9..7038e574c 100644 --- a/std-ext/Cargo.toml +++ b/std-ext/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-std-ext" -version = "0.23.4" +version = "0.23.5" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml index 5f97751a5..d422c6470 100644 --- a/tendermint/Cargo.toml +++ b/tendermint/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint" -version = "0.23.4" # Also update `html_root_url` in lib.rs and +version = "0.23.5" # 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.2", default-features = false } subtle = { version = "2", default-features = false } subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] } -tendermint-proto = { version = "0.23.4", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.5", 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 7e42448fb..42af9634d 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.23.4", + html_root_url = "https://docs.rs/tendermint/0.23.5", 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 c6adf386e..890ff5af6 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.23.4" +version = "0.23.5" edition = "2018" license = "Apache-2.0" categories = ["development", "test", "tools"] diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml index fc299181b..2b0fa86ab 100644 --- a/testgen/Cargo.toml +++ b/testgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-testgen" -version = "0.23.4" +version = "0.23.5" authors = ["Informal Systems "] edition = "2018" readme = "README.md" @@ -16,7 +16,7 @@ description = """ """ [dependencies] -tendermint = { version = "0.23.4", path = "../tendermint", features = ["clock"] } +tendermint = { version = "0.23.5", 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 127728f5c..b8c859117 100644 --- a/tools/abci-test/Cargo.toml +++ b/tools/abci-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "abci-test" -version = "0.23.4" +version = "0.23.5" 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.23.4", path = "../../tendermint" } -tendermint-config = { version = "0.23.4", path = "../../config" } -tendermint-rpc = { version = "0.23.4", path = "../../rpc", features = [ "websocket-client" ] } +tendermint = { version = "0.23.5", path = "../../tendermint" } +tendermint-config = { version = "0.23.5", path = "../../config" } +tendermint-rpc = { version = "0.23.5", path = "../../rpc", features = [ "websocket-client" ] } tracing = "0.1" tracing-subscriber = "0.2" tokio = { version = "1", features = ["full"] } diff --git a/tools/kvstore-test/Cargo.toml b/tools/kvstore-test/Cargo.toml index eaaa78183..002f98c50 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.23.4", path = "../../tendermint" } -tendermint-light-client = { version = "0.23.4", path = "../../light-client", features = ["unstable"] } -tendermint-rpc = { version = "0.23.4", path = "../../rpc", features = [ "http-client", "websocket-client" ] } +tendermint = { version = "0.23.5", path = "../../tendermint" } +tendermint-light-client = { version = "0.23.5", path = "../../light-client", features = ["unstable"] } +tendermint-rpc = { version = "0.23.5", 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 9caff3e46..5fcfe9864 100644 --- a/tools/rpc-probe/Cargo.toml +++ b/tools/rpc-probe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc-probe" -version = "0.23.4" +version = "0.23.5" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0"