Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.30.0 #1282

Merged
merged 6 commits into from
Mar 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .changelog/unreleased/improvements/1280-max-drift-error.md

This file was deleted.

3 changes: 3 additions & 0 deletions .changelog/v0.30.0/improvements/1280-max-drift-error.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- [`tendermint-light-client`] Show `max_clock_drift` in error raised when header
is from the future
([\#1280](https://github.com/informalsystems/tendermint-rs/issues/1280))
4 changes: 4 additions & 0 deletions .changelog/v0.30.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
This release introduces support for multiple versions of CometBFT protocols.
Consumers of tendermint-rs crates, with the exception of `tendermint-abci`,
should be able to interoperate with CometBFT nodes based on 0.34.x and
0.37.x releases, or a combination of these.
74 changes: 66 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,63 @@
# CHANGELOG

## v0.30.0

This release introduces support for multiple versions of CometBFT protocols.
Consumers of tendermint-rs crates, with the exception of `tendermint-abci`,
should be able to interoperate with CometBFT nodes based on 0.34.x and
0.37.x releases, or a combination of these.

### BREAKING CHANGES

- [`tendermint`] Version-specific definitions for ABCI `Request` and `Response`
enums under `v0_34::abci` and `v0_37::abci`, containing only the method variants
present in each of the respective protocol versions.
`Request` and `Response` defined under `v0_37` are re-exported under
the non-versioned `abci` module name, but the `SetOption` variant is not present
in these latest versions of the enums.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint-abci`] Change the frame length encoding in the ABCI wire protocol
to unsigned varint, to correspond to the changes in Tendermint Core 0.37.
No compatibility with 0.34 is provided at the moment.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint-rpc`] Changed the signature of `WebSocketClient::new_with_config`
to accept a `WebSocketConfig` struct value rather than an `Option`.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint-proto`] The `serializers::evidence` module has been made private.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint-rpc`] Bump `async-tungstenite` dependency version to 0.20,
re-exporting `WebSocketConfig` from `tungstenite` 0.18
([\#1276](https://github.com/informalsystems/tendermint-rs/pull/1276)).

### IMPROVEMENTS

- [`tendermint-proto`] Generate prost bindings for Tendermint 0.34 and 0.37 side by side.
The version-specific structs are placed under the `tendermint::v0_34` and
`tendermint::v0_37` module namespaces, respectively. The names under
`tendermint::v0_37` are also re-exported under `tendermint`.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint`] New and updated ABCI domain types for Tendermint Core v0.37
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193)).
- [`tendermint`] Protobuf conversions provided for both `v0_34` and `v0_37`
versions of the generated [`tendermint-proto`] structs, where applicable.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193)).
- [`tendermint-rpc`] Introduce `client::CompatMode`, enumerating protocol
compatibility modes specifying the RPC data encoding used by the client.
An `HttpClient` can be created with a selected mode specified in the new
`builder` API, or have the mode changed afterwards (usually after
version discovery) by the added `set_compat_mode` method.
For `WebSocketClient`, the mode can only be specified at creation via the new
`builder` API.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193))
- [`tendermint-abci`] Port ABCI application support to 0.37 Tendermint Core API.
No legacy support for 0.34 is provided at the moment.
([#1193](https://github.com/informalsystems/tendermint-rs/pull/1193)).
- [`tendermint`] Derive `Hash` on `tendermint::Time`
([#1278](https://github.com/informalsystems/tendermint-rs/issues/1278))
- [`tendermint-light-client`] Show `max_clock_drift` in error raised when header
is from the future
([\#1280](https://github.com/informalsystems/tendermint-rs/issues/1280))

## v0.29.1

Improve debug output for Ed25519 keys.
Expand Down Expand Up @@ -470,18 +528,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

Expand Down
4 changes: 2 additions & 2 deletions abci/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-abci"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand Down Expand Up @@ -33,7 +33,7 @@ binary = [
[dependencies]
bytes = { version = "1.0", default-features = false }
prost = { version = "0.11", default-features = false }
tendermint-proto = { version = "0.29.1", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.30.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 }
Expand Down
4 changes: 2 additions & 2 deletions config/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-config"
version = "0.29.1" # Also update depending crates (rpc, light-node, ..) when bumping this.
version = "0.30.0" # Also update depending crates (rpc, light-node, ..) when bumping this.
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint"
Expand All @@ -24,7 +24,7 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
tendermint = { version = "0.29.1", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
tendermint = { version = "0.30.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
flex-error = { version = "0.4.4", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
Expand Down
6 changes: 3 additions & 3 deletions light-client-js/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-js"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand All @@ -22,8 +22,8 @@ default = ["console_error_panic_hook"]
[dependencies]
serde = { version = "1.0", default-features = false, features = [ "derive" ] }
serde_json = { version = "1.0", default-features = false }
tendermint = { version = "0.29.1", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.29.1", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
tendermint = { version = "0.30.0", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.30.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
wasm-bindgen = { version = "0.2.63", default-features = false, features = [ "serde-serialize" ] }
serde-wasm-bindgen = { version = "0.4.5", default-features = false }

Expand Down
4 changes: 2 additions & 2 deletions light-client-verifier/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-verifier"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -27,7 +27,7 @@ default = ["rust-crypto", "flex-error/std", "flex-error/eyre_tracer"]
rust-crypto = ["tendermint/rust-crypto"]

[dependencies]
tendermint = { version = "0.29.1", path = "../tendermint", default-features = false }
tendermint = { version = "0.30.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 }
Expand Down
8 changes: 4 additions & 4 deletions light-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand Down Expand Up @@ -35,9 +35,9 @@ unstable = ["rust-crypto"]
mbt = ["rust-crypto"]

[dependencies]
tendermint = { version = "0.29.1", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.29.1", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.29.1", path = "../light-client-verifier", default-features = false }
tendermint = { version = "0.30.0", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.30.0", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.30.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 }
Expand Down
8 changes: 4 additions & 4 deletions p2p/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-p2p"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/informalsystems/tendermint-rs"
Expand Down Expand Up @@ -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.29.1", default-features = false }
tendermint-proto = { path = "../proto", version = "0.29.1", default-features = false }
tendermint-std-ext = { path = "../std-ext", version = "0.29.1", default-features = false }
tendermint = { path = "../tendermint", version = "0.30.0", default-features = false }
tendermint-proto = { path = "../proto", version = "0.30.0", default-features = false }
tendermint-std-ext = { path = "../std-ext", version = "0.30.0", default-features = false }

# optional dependencies
prost-derive = { version = "0.11", optional = true }
2 changes: 1 addition & 1 deletion pbt-gen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-pbt-gen"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion proto/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-proto"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand Down
6 changes: 3 additions & 3 deletions rpc/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
Expand Down Expand Up @@ -71,8 +71,8 @@ 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.29.1", path = "../config", default-features = false }
tendermint = { version = "0.29.1", default-features = false, path = "../tendermint" }
tendermint-config = { version = "0.30.0", path = "../config", default-features = false }
tendermint = { version = "0.30.0", default-features = false, path = "../tendermint" }
thiserror = { version = "1", default-features = false }
time = { version = "0.3", default-features = false, features = ["macros", "parsing"] }
uuid = { version = "0.8", default-features = false }
Expand Down
2 changes: 1 addition & 1 deletion std-ext/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-std-ext"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
Expand Down
4 changes: 2 additions & 2 deletions tendermint/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint"
version = "0.29.1" # Also update depending crates (rpc, light-node, etc..) when bumping this .
version = "0.30.0" # Also update depending crates (rpc, light-node, etc..) when bumping this .
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint"
Expand Down Expand Up @@ -44,7 +44,7 @@ serde_repr = { version = "0.1", 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.29.1", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.30.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 }
Expand Down
2 changes: 1 addition & 1 deletion test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "tendermint-test"
description = "Tendermint workspace tests and common utilities for testing."
version = "0.29.1"
version = "0.30.0"
edition = "2021"
license = "Apache-2.0"
categories = ["development", "test", "tools"]
Expand Down
4 changes: 2 additions & 2 deletions testgen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-testgen"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
readme = "README.md"
Expand All @@ -16,7 +16,7 @@ description = """
"""

[dependencies]
tendermint = { version = "0.29.1", path = "../tendermint", features = ["clock"] }
tendermint = { version = "0.30.0", path = "../tendermint", features = ["clock"] }
serde = { version = "1", default-features = false, features = ["derive"] }
serde_json = { version = "1", default-features = false, features = ["std"] }
ed25519-consensus = { version = "2", default-features = false }
Expand Down
8 changes: 4 additions & 4 deletions tools/abci-test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "abci-test"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
description = """
Expand All @@ -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.29.1", path = "../../tendermint" }
tendermint-config = { version = "0.29.1", path = "../../config" }
tendermint-rpc = { version = "0.29.1", path = "../../rpc", features = [ "websocket-client" ] }
tendermint = { version = "0.30.0", path = "../../tendermint" }
tendermint-config = { version = "0.30.0", path = "../../config" }
tendermint-rpc = { version = "0.30.0", path = "../../rpc", features = [ "websocket-client" ] }
tracing = "0.1"
tracing-subscriber = "0.2"
tokio = { version = "1.20", features = ["full"] }
6 changes: 3 additions & 3 deletions tools/kvstore-test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ edition = "2021"
[dev-dependencies]
futures = "0.3"
sha2 = "0.10"
tendermint = { version = "0.29.1", path = "../../tendermint" }
tendermint-light-client = { version = "0.29.1", path = "../../light-client", features = ["unstable"] }
tendermint-rpc = { version = "0.29.1", path = "../../rpc", features = [ "http-client", "websocket-client" ] }
tendermint = { version = "0.30.0", path = "../../tendermint" }
tendermint-light-client = { version = "0.30.0", path = "../../light-client", features = ["unstable"] }
tendermint-rpc = { version = "0.30.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] }
tokio = { version = "1.0", features = [ "rt-multi-thread", "macros" ] }
tracing = "0.1"
tracing-subscriber = "0.2"
Expand Down
2 changes: 1 addition & 1 deletion tools/rpc-probe/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc-probe"
version = "0.29.1"
version = "0.30.0"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand Down