diff --git a/.changelog/unreleased/features/832-block-search.md b/.changelog/unreleased/features/832-block-search.md deleted file mode 100644 index db05e839f..000000000 --- a/.changelog/unreleased/features/832-block-search.md +++ /dev/null @@ -1,3 +0,0 @@ -- `[tendermint-rpc]` Add support for the `/block_search` RPC endpoint. See - for details -([#832](https://github.com/informalsystems/tendermint-rs/issues/832)) \ No newline at end of file diff --git a/.changelog/unreleased/breaking-changes/925-upgrade-prost.md b/.changelog/v0.23.0/breaking-changes/925-upgrade-prost.md similarity index 100% rename from .changelog/unreleased/breaking-changes/925-upgrade-prost.md rename to .changelog/v0.23.0/breaking-changes/925-upgrade-prost.md diff --git a/.changelog/unreleased/breaking-changes/983-tendermint-config.md b/.changelog/v0.23.0/breaking-changes/983-tendermint-config.md similarity index 100% rename from .changelog/unreleased/breaking-changes/983-tendermint-config.md rename to .changelog/v0.23.0/breaking-changes/983-tendermint-config.md diff --git a/.changelog/unreleased/breaking-changes/983-tendermint-node-info.md b/.changelog/v0.23.0/breaking-changes/983-tendermint-node-info.md similarity index 100% rename from .changelog/unreleased/breaking-changes/983-tendermint-node-info.md rename to .changelog/v0.23.0/breaking-changes/983-tendermint-node-info.md diff --git a/.changelog/unreleased/breaking-changes/983-tendermint-node-listen-addr.md b/.changelog/v0.23.0/breaking-changes/983-tendermint-node-listen-addr.md similarity index 100% rename from .changelog/unreleased/breaking-changes/983-tendermint-node-listen-addr.md rename to .changelog/v0.23.0/breaking-changes/983-tendermint-node-listen-addr.md diff --git a/.changelog/v0.23.0/features/832-block-search.md b/.changelog/v0.23.0/features/832-block-search.md new file mode 100644 index 000000000..49f5171cb --- /dev/null +++ b/.changelog/v0.23.0/features/832-block-search.md @@ -0,0 +1,3 @@ +- `[tendermint-rpc]` Add support for the `/block_search` RPC endpoint. See + for details + ([#832](https://github.com/informalsystems/tendermint-rs/issues/832)) diff --git a/.changelog/v0.23.0/summary.md b/.changelog/v0.23.0/summary.md new file mode 100644 index 000000000..47b8fe27a --- /dev/null +++ b/.changelog/v0.23.0/summary.md @@ -0,0 +1,10 @@ +*Oct 27, 2021* + +The main changes in this release involve upgrading to [Prost +v0.9](https://github.com/tokio-rs/prost/releases/tag/v0.9.0) and some +foundational changes to prepare for `no_std` support for some of our crates. + +One of the main `no_std`-related changes in this release was to break out +configuration-related data structures from the `tendermint` crate into their own +crate (`tendermint-config`) as these structures depend on other crates which do +not yet support `no_std`. diff --git a/CHANGELOG.md b/CHANGELOG.md index 4003e0bd9..35a38bee6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # CHANGELOG +## v0.23.0 + +*Oct 27, 2021* + +The main changes in this release involve upgrading to [Prost +v0.9](https://github.com/tokio-rs/prost/releases/tag/v0.9.0) and some +foundational changes to prepare for `no_std` support for some of our crates. + +One of the main `no_std`-related changes in this release was to break out +configuration-related data structures from the `tendermint` crate into their own +crate (`tendermint-config`) as these structures depend on other crates which do +not yet support `no_std`. + +### BREAKING CHANGES + +- 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, 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 + +- `[tendermint-rpc]` Add support for the `/block_search` RPC endpoint. See + for details + ([#832](https://github.com/informalsystems/tendermint-rs/issues/832)) + ## v0.22.0 *Sep 23, 2021* diff --git a/abci/Cargo.toml b/abci/Cargo.toml index 5c6653ab2..aaf224b45 100644 --- a/abci/Cargo.toml +++ b/abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-abci" -version = "0.23.0-internal" +version = "0.23.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" @@ -25,12 +25,15 @@ default = ["flex-error/std", "flex-error/eyre_tracer"] client = [] echo-app = [] kvstore-app = [] -binary = [ "structopt", "tracing-subscriber" ] +binary = [ + "structopt", + "tracing-subscriber/fmt", +] [dependencies] bytes = { version = "1.0", default-features = false } prost = { version = "0.9", default-features = false } -tendermint-proto = { version = "0.23.0-internal", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.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 50f5644fe..3c7a4cf37 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-config" -version = "0.23.0-internal" # Also update `html_root_url` in lib.rs and +version = "0.23.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/" @@ -28,7 +28,7 @@ rustdoc-args = ["--cfg", "docsrs"] crate-type = ["cdylib", "rlib"] [dependencies] -tendermint = { version = "0.23.0-internal", default-features = false, path = "../tendermint" } +tendermint = { version = "0.23.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 dfacc804e..01ce2f570 100644 --- a/light-client-js/Cargo.toml +++ b/light-client-js/Cargo.toml @@ -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.0-internal", default-features = false, path = "../tendermint" } -tendermint-light-client = { version = "0.23.0-internal", default-features = false, path = "../light-client" } +tendermint = { version = "0.23.0", default-features = false, path = "../tendermint" } +tendermint-light-client = { version = "0.23.0", default-features = false, path = "../light-client" } 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/Cargo.toml b/light-client/Cargo.toml index 333c67a91..12021a25c 100644 --- a/light-client/Cargo.toml +++ b/light-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client" -version = "0.23.0-internal" +version = "0.23.0" edition = "2018" license = "Apache-2.0" readme = "README.md" @@ -37,8 +37,8 @@ unstable = [] mbt = [] [dependencies] -tendermint = { version = "0.23.0-internal", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.23.0-internal", path = "../rpc", default-features = false } +tendermint = { version = "0.23.0", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.23.0", path = "../rpc", default-features = false } contracts = { version = "0.4.0", default-features = false } chrono = { version = "0.4", default-features = false, features = ["clock"] } diff --git a/light-client/src/lib.rs b/light-client/src/lib.rs index 7fd2ceb8a..340d67ff7 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.0-internal", + html_root_url = "https://docs.rs/tendermint-light-client/0.23.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 4a8eea345..8f91fda9f 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-p2p" -version = "0.23.0-internal" +version = "0.23.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.23.0-internal", default-features = false } -tendermint-proto = { path = "../proto", version = "0.23.0-internal", default-features = false } -tendermint-std-ext = { path = "../std-ext", version = "0.23.0-internal", default-features = false } +tendermint = { path = "../tendermint", version = "0.23.0", default-features = false } +tendermint-proto = { path = "../proto", version = "0.23.0", default-features = false } +tendermint-std-ext = { path = "../std-ext", version = "0.23.0", 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 5a65411a4..79b5fe49d 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.0-internal", + html_root_url = "https://docs.rs/tendermint-p2p/0.23.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 de7c9c974..7481be786 100644 --- a/pbt-gen/Cargo.toml +++ b/pbt-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-pbt-gen" -version = "0.23.0-internal" +version = "0.23.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 57fc437df..6fdede136 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-proto" -version = "0.23.0-internal" +version = "0.23.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/src/lib.rs b/proto/src/lib.rs index cbf5b3752..018ea6216 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.0-internal")] +#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.23.0")] extern crate alloc; diff --git a/release.sh b/release.sh index 8bf0ccc72..ab374458d 100755 --- a/release.sh +++ b/release.sh @@ -1,15 +1,8 @@ #!/bin/bash # release.sh will hopefully allow us to publish all of the necessary crates in -# this repo in the right order, along with a few checks and balances to try to -# avoid mistakes. It is assumed that only one person will be releasing all -# crates at the same time. -# -# For each crate, it will: -# 1. Run `cargo publish --dry-run` for that crate -# 2. List all files in the package with `cargo package --list` -# 3. Prompt the user as to whether to publish or not -# 4. Publish the package with `cargo publish` (no dry run) +# this repo in the right order. It is assumed that only one person will be +# releasing all crates at the same time. # # It has a default set of crates it will publish, which can be overridden by # way of command line arguments: @@ -19,17 +12,6 @@ # # # Just release the proto and tendermint crates, but nothing else # ./release.sh proto tendermint -# -# Once it publishes a crate, it will create a file at -# /tmp/tendermint-rs-release/${TODAY}/${CRATE}, where ${TODAY} is today's date -# and ${CRATE} is the name of the crate that was successfully published. -# -# Prior to publishing a crate, it checks whether this file is present before -# attempting to publish it. If it's present, it will ask if you really want to -# publish it again. Of course, this is pretty dumb, and doesn't cater for -# instances where multiple people could publish the crates on the same day, and -# instances where someone reboots their machine or wipes their /tmp folder -# between runs. set -e @@ -59,15 +41,6 @@ publish() { echo "" } -publish_dry_run() { - echo "Attempting dry run of publishing crate $1..." - cargo publish --dry-run --manifest-path "$(get_manifest_path "${1}")" -} - -list_package_files() { - cargo package --list --manifest-path "$(get_manifest_path "${1}")" -} - wait_until_available() { echo "Waiting for crate ${1} to become available via crates.io..." for retry in {1..5}; do @@ -85,6 +58,8 @@ wait_until_available() { fi fi done + echo "Waiting an additional 10 seconds for crate to propagate through CDN..." + sleep 10 } echo "Attempting to publish crate(s): ${CRATES}" @@ -94,22 +69,10 @@ for crate in ${CRATES}; do ONLINE_DATE="$(check_version_online "${crate}" "${VERSION}")" echo "${crate} version number: ${VERSION}" if [ -n "${ONLINE_DATE}" ]; then - echo "${crate} ${VERSION} has already been published at ${ONLINE_DATE}." - read -rp "Do you want to publish again? (type YES to publish, anything else to skip) " answer - case $answer in - YES ) ;; - * ) echo "Skipping"; continue;; - esac + echo "${crate} ${VERSION} has already been published at ${ONLINE_DATE}, skipping" + continue fi - publish_dry_run "${crate}" - list_package_files "${crate}" - echo "" - read -rp "Are you sure you want to publish crate \"${crate}\"? (type YES to publish, anything else to exit) " answer - case $answer in - YES ) publish "${crate}";; - * ) echo "Terminating"; exit;; - esac - + publish "${crate}" wait_until_available "${crate}" "${VERSION}" done diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 9c713f12e..d97e62813 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc" -version = "0.23.0-internal" +version = "0.23.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.23.0-internal", path = "../config", default-features = false } -tendermint = { version = "0.23.0-internal", default-features = false, path = "../tendermint" } -tendermint-proto = { version = "0.23.0-internal", default-features = false, path = "../proto" } +tendermint-config = { version = "0.23.0", path = "../config", default-features = false } +tendermint = { version = "0.23.0", default-features = false, path = "../tendermint" } +tendermint-proto = { version = "0.23.0", default-features = false, path = "../proto" } thiserror = { version = "1", default-features = false } uuid = { version = "0.8", default-features = false } subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] } diff --git a/std-ext/Cargo.toml b/std-ext/Cargo.toml index f44b160b4..71b51a54a 100644 --- a/std-ext/Cargo.toml +++ b/std-ext/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-std-ext" -version = "0.23.0-internal" +version = "0.23.0" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml index ff3b2f4db..d29e95fdf 100644 --- a/tendermint/Cargo.toml +++ b/tendermint/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint" -version = "0.23.0-internal" # Also update `html_root_url` in lib.rs and +version = "0.23.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/" @@ -51,7 +51,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.0-internal", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.0", default-features = false, path = "../proto" } zeroize = { version = "1.1", default-features = false, features = ["zeroize_derive", "alloc"] } flex-error = { version = "0.4.4", default-features = false } k256 = { version = "0.9", optional = true, default-features = false, features = ["ecdsa", "sha256"] } diff --git a/tendermint/src/lib.rs b/tendermint/src/lib.rs index 6a100620d..345a3a6eb 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.0-internal", + html_root_url = "https://docs.rs/tendermint/0.23.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 5a56ace7f..1c63c3a5a 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.0-internal" +version = "0.23.0" edition = "2018" license = "Apache-2.0" categories = ["development", "test", "tools"] diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml index b41da1622..1bf1a99a4 100644 --- a/testgen/Cargo.toml +++ b/testgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-testgen" -version = "0.23.0-internal" +version = "0.23.0" authors = ["Informal Systems "] edition = "2018" readme = "README.md" @@ -16,7 +16,7 @@ description = """ """ [dependencies] -tendermint = { version = "0.23.0-internal", path = "../tendermint" } +tendermint = { version = "0.23.0", path = "../tendermint" } 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 e2c9dfb1d..51bcc8675 100644 --- a/tools/abci-test/Cargo.toml +++ b/tools/abci-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "abci-test" -version = "0.23.0-internal" +version = "0.23.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.23.0-internal", path = "../../tendermint" } -tendermint-config = { version = "0.23.0-internal", path = "../../config" } -tendermint-rpc = { version = "0.23.0-internal", path = "../../rpc", features = [ "websocket-client" ] } +tendermint = { version = "0.23.0", path = "../../tendermint" } +tendermint-config = { version = "0.23.0", path = "../../config" } +tendermint-rpc = { version = "0.23.0", 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 ba8f1976c..22880ae62 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.0-internal", path = "../../tendermint" } -tendermint-light-client = { version = "0.23.0-internal", path = "../../light-client", features = ["unstable"] } -tendermint-rpc = { version = "0.23.0-internal", path = "../../rpc", features = [ "http-client", "websocket-client" ] } +tendermint = { version = "0.23.0", path = "../../tendermint" } +tendermint-light-client = { version = "0.23.0", path = "../../light-client", features = ["unstable"] } +tendermint-rpc = { version = "0.23.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 c4f5ef501..7735f7f84 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.0-internal" +version = "0.23.0" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0"