diff --git a/.changelog/unreleased/breaking-changes/1422-tonic-011.md b/.changelog/v0.37.0/breaking-changes/1422-tonic-011.md
similarity index 100%
rename from .changelog/unreleased/breaking-changes/1422-tonic-011.md
rename to .changelog/v0.37.0/breaking-changes/1422-tonic-011.md
diff --git a/.changelog/unreleased/breaking-changes/1423-verify-commit-restore.md b/.changelog/v0.37.0/breaking-changes/1423-verify-commit-restore.md
similarity index 100%
rename from .changelog/unreleased/breaking-changes/1423-verify-commit-restore.md
rename to .changelog/v0.37.0/breaking-changes/1423-verify-commit-restore.md
diff --git a/.changelog/unreleased/bug-fixes/1415-fix-optional-event-type.md b/.changelog/v0.37.0/bug-fixes/1415-fix-optional-event-type.md
similarity index 100%
rename from .changelog/unreleased/bug-fixes/1415-fix-optional-event-type.md
rename to .changelog/v0.37.0/bug-fixes/1415-fix-optional-event-type.md
diff --git a/.changelog/unreleased/features/1421-reqwest-client.md b/.changelog/v0.37.0/features/1421-reqwest-client.md
similarity index 100%
rename from .changelog/unreleased/features/1421-reqwest-client.md
rename to .changelog/v0.37.0/features/1421-reqwest-client.md
diff --git a/.changelog/unreleased/improvements/1425-add-http-client-user-agent.md b/.changelog/v0.37.0/improvements/1425-add-http-client-user-agent.md
similarity index 100%
rename from .changelog/unreleased/improvements/1425-add-http-client-user-agent.md
rename to .changelog/v0.37.0/improvements/1425-add-http-client-user-agent.md
diff --git a/.changelog/unreleased/improvements/1428-finalizeblock-deserialization.md b/.changelog/v0.37.0/improvements/1428-finalizeblock-deserialization.md
similarity index 100%
rename from .changelog/unreleased/improvements/1428-finalizeblock-deserialization.md
rename to .changelog/v0.37.0/improvements/1428-finalizeblock-deserialization.md
diff --git a/.changelog/v0.37.0/summary.md b/.changelog/v0.37.0/summary.md
new file mode 100644
index 000000000..5b9130fdf
--- /dev/null
+++ b/.changelog/v0.37.0/summary.md
@@ -0,0 +1,7 @@
+*May 30th, 2024*
+
+This release restores the commit verification interfaces of `PredicateVerifier` from tendermint-rs `0.35.0` and lower, but retains the performance improvements made in version `0.36.0`.
+
+This version also brings a few new features to the HTTP RPC client, notably a way to specify the User-Agent to send along HTTP requests, as well as a way to override the underlying `reqwest` client.
+
+Additionally, this release fixes a couple of issues with the `serde`-based deserialization of the `FinalizeBlock` and `Event` types.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8fa2bb8ea..57bdaa4c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,38 @@
# CHANGELOG
+## v0.37.0
+
+*May 30th, 2024*
+
+This release restores the commit verification interfaces of `PredicateVerifier` from tendermint-rs `0.35.0` and lower, but retains the performance improvements made in version `0.36.0`.
+
+This version also brings a few new features to the HTTP RPC client, notably a way to specify the User-Agent to send along HTTP requests, as well as a way to override the underlying `reqwest` client.
+
+Additionally, this release fixes a couple of issues with the `serde`-based deserialization of the `FinalizeBlock` and `Event` types.
+
+### BREAKING CHANGES
+
+- `[tendermint-proto]` Upgrade `tonic` to v0.11 ([\#1422](https://github.com/informalsystems/tendermint-rs/pull/1422))
+- `[tendermint-light-client-verifier]` Restores the commit verification interfaces of `PredicateVerifier
` from `<= 0.35.0` ([\#1423](https://github.com/informalsystems/tendermint-rs/pull/1423))
+ * `verify_commit(&self. untrusted: &UntrustedBlockState<'_>)` is restored, as in <= 0.35.0.
+ * `verify_commit(&self, untrusted: &UntrustedBlockState<'_>, trusted: &TrustedBlockState<'_>,)` introduced in 0.36.0 is renamed to `verify_commit_against_trusted`.
+ The performance improvements made in the `0.36.0` release are still intact.
+
+### FEATURES
+
+* `[tendermint-rpc]` Add a way to specify custom User-Agent for `HttpClient` ([#1425](https://github.com/informalsystems/tendermint-rs/issues/1425))
+- `[tendermint-rpc]` Add a `client()` method on `transport::http::Builder` to override the underlying `reqwest` client ([\#1421](https://github.com/informalsystems/tendermint-rs/pull/1421))
+- `[tendermint-rpc]` Add a `from_raw_parts()` method on `transport::http::HttpClient` to allow supplying the underlying `reqwest` client ([\#1421](https://github.com/informalsystems/tendermint-rs/pull/1421))
+
+### BUG FIXES
+
+- `[tendermint]` Fix `FinalizeBlock::validator_updates` deserialization as `nullable` ([\#1428](https://github.com/informalsystems/tendermint-rs/pull/1428))
+- `[tendermint-abci]` Add serde `default` annotation for `Event::type` to match `omitempty` in the Go implementation ([\#1416](https://github.com/informalsystems/tendermint-rs/pull/1416))
+
## v0.36.0
+*April 25th, 2024*
+
This release brings substantial performance improvements to the voting power computation within the light client, improves the handling of misformed blocks (eg. with empty `last_commit` on non-first block) when decoding them from Protobuf or RPC responses, and adds missing `serde` derives on some Protobuf definitions.
This release also technically contains a breaking change in `tendermint-proto`, but this should not impact normal use of the library, as the `ToPrimitive` impl that was removed on `BlockIdFlag` trait did not provide any additional functionality.
diff --git a/abci/Cargo.toml b/abci/Cargo.toml
index 551f265eb..a675e46e8 100644
--- a/abci/Cargo.toml
+++ b/abci/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-abci"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
license = "Apache-2.0"
@@ -33,7 +33,7 @@ binary = [
[dependencies]
bytes = { version = "1.0", default-features = false }
prost = { version = "0.12", default-features = false }
-tendermint-proto = { version = "0.36.0", default-features = false, path = "../proto" }
+tendermint-proto = { version = "0.37.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 0f8e61029..b7dca41b2 100644
--- a/config/Cargo.toml
+++ b/config/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-config"
-version = "0.36.0" # Also update depending crates (rpc, light-node, ..) when bumping this.
+version = "0.37.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"
@@ -24,7 +24,7 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
-tendermint = { version = "0.36.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
+tendermint = { version = "0.37.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"
diff --git a/light-client-cli/Cargo.toml b/light-client-cli/Cargo.toml
index b030a13f2..0e17c4156 100644
--- a/light-client-cli/Cargo.toml
+++ b/light-client-cli/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-cli"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
@@ -23,10 +23,10 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
-tendermint = { version = "0.36.0", path = "../tendermint" }
-tendermint-rpc = { version = "0.36.0", path = "../rpc", features = ["http-client"] }
-tendermint-light-client = { version = "0.36.0", path = "../light-client" }
-tendermint-light-client-detector = { version = "0.36.0", path = "../light-client-detector" }
+tendermint = { version = "0.37.0", path = "../tendermint" }
+tendermint-rpc = { version = "0.37.0", path = "../rpc", features = ["http-client"] }
+tendermint-light-client = { version = "0.37.0", path = "../light-client" }
+tendermint-light-client-detector = { version = "0.37.0", path = "../light-client-detector" }
clap = { version = "4.1.8", features = ["derive"] }
color-eyre = "0.6.2"
diff --git a/light-client-detector/Cargo.toml b/light-client-detector/Cargo.toml
index a49852032..5dd097aec 100644
--- a/light-client-detector/Cargo.toml
+++ b/light-client-detector/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-detector"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
@@ -23,10 +23,10 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
-tendermint = { version = "0.36.0", path = "../tendermint" }
-tendermint-rpc = { version = "0.36.0", path = "../rpc", features = ["http-client"] }
-tendermint-proto = { version = "0.36.0", path = "../proto" }
-tendermint-light-client = { version = "0.36.0", path = "../light-client" }
+tendermint = { version = "0.37.0", path = "../tendermint" }
+tendermint-rpc = { version = "0.37.0", path = "../rpc", features = ["http-client"] }
+tendermint-proto = { version = "0.37.0", path = "../proto" }
+tendermint-light-client = { version = "0.37.0", path = "../light-client" }
crossbeam-channel = { version = "0.5.11", default-features = false }
derive_more = { version = "0.99.5", default-features = false, features = ["display"] }
diff --git a/light-client-js/Cargo.toml b/light-client-js/Cargo.toml
index 873fc7760..5af4f7c64 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.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
license = "Apache-2.0"
@@ -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.36.0", default-features = false, path = "../tendermint" }
-tendermint-light-client-verifier = { version = "0.36.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
+tendermint = { version = "0.37.0", default-features = false, path = "../tendermint" }
+tendermint-light-client-verifier = { version = "0.37.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 }
diff --git a/light-client-verifier/Cargo.toml b/light-client-verifier/Cargo.toml
index 4bf08fb0c..f97ab96e6 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.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
@@ -27,7 +27,7 @@ default = ["rust-crypto", "flex-error/std"]
rust-crypto = ["tendermint/rust-crypto"]
[dependencies]
-tendermint = { version = "0.36.0", path = "../tendermint", default-features = false }
+tendermint = { version = "0.37.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 ce282595c..dc58b84d8 100644
--- a/light-client/Cargo.toml
+++ b/light-client/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
@@ -35,9 +35,9 @@ unstable = ["rust-crypto"]
mbt = ["rust-crypto"]
[dependencies]
-tendermint = { version = "0.36.0", path = "../tendermint", default-features = false }
-tendermint-rpc = { version = "0.36.0", path = "../rpc", default-features = false }
-tendermint-light-client-verifier = { version = "0.36.0", path = "../light-client-verifier", default-features = false }
+tendermint = { version = "0.37.0", path = "../tendermint", default-features = false }
+tendermint-rpc = { version = "0.37.0", path = "../rpc", default-features = false }
+tendermint-light-client-verifier = { version = "0.37.0", path = "../light-client-verifier", default-features = false }
contracts = { version = "0.6.2", default-features = false }
crossbeam-channel = { version = "0.5.11", default-features = false, features = ["std"] }
diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml
index 8ece08be3..5db655bd5 100644
--- a/p2p/Cargo.toml
+++ b/p2p/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-p2p"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/informalsystems/tendermint-rs"
@@ -44,9 +44,9 @@ aead = { version = "0.5", default-features = false }
flex-error = { version = "0.4.4", default-features = false }
# path dependencies
-tendermint = { path = "../tendermint", version = "0.36.0", default-features = false }
-tendermint-proto = { path = "../proto", version = "0.36.0", default-features = false }
-tendermint-std-ext = { path = "../std-ext", version = "0.36.0", default-features = false }
+tendermint = { path = "../tendermint", version = "0.37.0", default-features = false }
+tendermint-proto = { path = "../proto", version = "0.37.0", default-features = false }
+tendermint-std-ext = { path = "../std-ext", version = "0.37.0", default-features = false }
# optional dependencies
prost-derive = { version = "0.12", optional = true }
diff --git a/pbt-gen/Cargo.toml b/pbt-gen/Cargo.toml
index b21ed7547..f809cbe5c 100644
--- a/pbt-gen/Cargo.toml
+++ b/pbt-gen/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-pbt-gen"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
license = "Apache-2.0"
diff --git a/proto/Cargo.toml b/proto/Cargo.toml
index b47febeec..806788924 100644
--- a/proto/Cargo.toml
+++ b/proto/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-proto"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
license = "Apache-2.0"
diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml
index d545c5ed7..d583787fe 100644
--- a/rpc/Cargo.toml
+++ b/rpc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
@@ -55,9 +55,9 @@ websocket-client = [
]
[dependencies]
-tendermint = { version = "0.36.0", default-features = false, path = "../tendermint" }
-tendermint-config = { version = "0.36.0", path = "../config", default-features = false }
-tendermint-proto = { version = "0.36.0", path = "../proto", default-features = false }
+tendermint = { version = "0.37.0", default-features = false, path = "../tendermint" }
+tendermint-config = { version = "0.37.0", path = "../config", default-features = false }
+tendermint-proto = { version = "0.37.0", path = "../proto", default-features = false }
async-trait = { version = "0.1", default-features = false }
bytes = { version = "1.0", default-features = false }
@@ -88,7 +88,7 @@ tracing = { version = "0.1", optional = true, default-features = false }
tracing-subscriber = { version = "0.3", optional = true, default-features = false, features = ["fmt"] }
[dev-dependencies]
-tendermint = { version = "0.36.0", default-features = false, path = "../tendermint", features = ["secp256k1"] }
+tendermint = { version = "0.37.0", default-features = false, path = "../tendermint", features = ["secp256k1"] }
http = { version = "1", default-features = false, features = ["std"] }
lazy_static = { version = "1.4.0", default-features = false }
tokio-test = { version = "0.4", default-features = false }
diff --git a/std-ext/Cargo.toml b/std-ext/Cargo.toml
index f3b1b6cf3..4a210d5f4 100644
--- a/std-ext/Cargo.toml
+++ b/std-ext/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-std-ext"
-version = "0.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml
index d79dca3b9..28edee9f4 100644
--- a/tendermint/Cargo.toml
+++ b/tendermint/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint"
-version = "0.36.0" # Also update depending crates (rpc, light-node, etc..) when bumping this .
+version = "0.37.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"
@@ -44,7 +44,7 @@ serde_repr = { version = "0.1", default-features = false }
signature = { version = "2", default-features = false, features = ["alloc"] }
subtle = { version = "2", default-features = false }
subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] }
-tendermint-proto = { version = "0.36.0", default-features = false, path = "../proto" }
+tendermint-proto = { version = "0.37.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/test/Cargo.toml b/test/Cargo.toml
index 58ce9c5fa..de71dd772 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.36.0"
+version = "0.37.0"
edition = "2021"
license = "Apache-2.0"
categories = ["development", "test", "tools"]
diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml
index b25da98e1..5ca20e23e 100644
--- a/testgen/Cargo.toml
+++ b/testgen/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-testgen"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
readme = "README.md"
@@ -16,7 +16,7 @@ description = """
"""
[dependencies]
-tendermint = { version = "0.36.0", path = "../tendermint", features = ["clock"] }
+tendermint = { version = "0.37.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 }
diff --git a/tools/abci-test/Cargo.toml b/tools/abci-test/Cargo.toml
index b8255d1ea..3c3a6a79b 100644
--- a/tools/abci-test/Cargo.toml
+++ b/tools/abci-test/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "abci-test"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
description = """
@@ -14,9 +14,9 @@ description = """
flex-error = { version = "0.4.4", default-features = false, features = ["std"] }
futures = "0.3"
structopt = "0.3"
-tendermint = { version = "0.36.0", path = "../../tendermint" }
-tendermint-config = { version = "0.36.0", path = "../../config" }
-tendermint-rpc = { version = "0.36.0", path = "../../rpc", features = [ "websocket-client" ] }
+tendermint = { version = "0.37.0", path = "../../tendermint" }
+tendermint-config = { version = "0.37.0", path = "../../config" }
+tendermint-rpc = { version = "0.37.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 b38d0e8e8..45cef858f 100644
--- a/tools/kvstore-test/Cargo.toml
+++ b/tools/kvstore-test/Cargo.toml
@@ -11,9 +11,9 @@ edition = "2021"
[dev-dependencies]
futures = "0.3"
sha2 = "0.10"
-tendermint = { version = "0.36.0", path = "../../tendermint" }
-tendermint-light-client = { version = "0.36.0", path = "../../light-client", features = ["unstable"] }
-tendermint-rpc = { version = "0.36.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] }
+tendermint = { version = "0.37.0", path = "../../tendermint" }
+tendermint-light-client = { version = "0.37.0", path = "../../light-client", features = ["unstable"] }
+tendermint-rpc = { version = "0.37.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] }
tokio = { version = "1.0", features = [ "rt-multi-thread", "macros" ] }
tracing = "0.1"
tracing-subscriber = "0.3"
diff --git a/tools/rpc-probe/Cargo.toml b/tools/rpc-probe/Cargo.toml
index fa80e9737..4dfede85b 100644
--- a/tools/rpc-probe/Cargo.toml
+++ b/tools/rpc-probe/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc-probe"
-version = "0.36.0"
+version = "0.37.0"
authors = ["Informal Systems "]
edition = "2021"
license = "Apache-2.0"