Skip to content

Commit

Permalink
Release v0.24.0-pre.1 (#1078)
Browse files Browse the repository at this point in the history
* Changelog release

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Build changelog

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Bump versions to v0.24.0-pre.1

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add tendermint-light-client-verifier crate to release script

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Rebuild changelog

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Update date in changelog and rebuild

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add readme for tendermint-light-client-verifier

Signed-off-by: Thane Thomson <connect@thanethomson.com>
  • Loading branch information
thanethomson authored Jan 14, 2022
1 parent 23a8950 commit 38668f1
Show file tree
Hide file tree
Showing 42 changed files with 181 additions and 44 deletions.
12 changes: 12 additions & 0 deletions .changelog/v0.24.0-pre.1/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*Jan 13, 2022*

This pre-release targets Tendermint Core v0.35 and introduces a number of
breaking changes from the v0.23 series of tendermint-rs. We provide a
pre-release here so people can start experimenting with and preparing for
Tendermint v0.35 compatibility, but a number of refinements need to be made
before we can produce a v0.24.0 release.

One of the major changes involves the introduction of [domain types for
ABCI](https://github.com/informalsystems/tendermint-rs/pull/1022) in preparation
for the release of ABCI++ in Tendermint v0.36. It also includes a number of
fixes and backports from the v0.23.x series of tendermint-rs.
97 changes: 97 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,102 @@
# CHANGELOG

## v0.24.0-pre.1

*Jan 13, 2022*

This pre-release targets Tendermint Core v0.35 and introduces a number of
breaking changes from the v0.23 series of tendermint-rs. We provide a
pre-release here so people can start experimenting with and preparing for
Tendermint v0.35 compatibility, but a number of refinements need to be made
before we can produce a v0.24.0 release.

One of the major changes involves the introduction of [domain types for
ABCI](https://github.com/informalsystems/tendermint-rs/pull/1022) in preparation
for the release of ABCI++ in Tendermint v0.36. It also includes a number of
fixes and backports from the v0.23.x series of tendermint-rs.

### BREAKING CHANGES

- Updated integration testing to test against Tendermint v0.35.0
([#862](https://github.com/informalsystems/tendermint-rs/issues/862))
- `[tendermint-rpc]` The `/tx` endpoint now encodes
the `hash` parameter as hexadecimal instead of base64
([#862](https://github.com/informalsystems/tendermint-rs/issues/862))
- `[tendermint]` Added domain types for ABCI
([#862](https://github.com/informalsystems/tendermint-rs/issues/862))
- `[tendermint-abci]` Changed low-level wire encoding protocol to
accommodate <https://github.com/tendermint/tendermint/issues/5783>
([#862](https://github.com/informalsystems/tendermint-rs/issues/862))
- `[tendermint-rpc]` The `event::Event::events` field is now represented as
`Option<Vec<crate::abci::Event>>` as opposed to `Option<HashMap<String,
Vec<String>>>` to accommodate breaking change in Tendermint v0.35.0
subscription interface ([#862](https://github.com/informalsystems/tendermint-
rs/issues/862))
- `[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))
- `[tendermint]` Reform `tendermint::Time`
([#1030](https://github.com/informalsystems/tendermint-rs/issues/1030)):
* The struct content is made private.
* The range of acceptable values is restricted to years 1-9999
(as reckoned in UTC).
* Removed conversions from/to `chrono::DateTime<chrono::Utc>`.
* Changes in error variants: removed `TimestampOverflow`, replaced with
`TimestampNanosOutOfRange`; removed `ChronoParse`, replaced with `TimeParse`.
- `[tendermint-rpc]` Use `OffsetDateTime` and `Date` types provided by the `time` crate
in query operands instead of their `chrono` counterparts.
([#1030](https://github.com/informalsystems/tendermint-rs/issues/1030))
- `[tendermint-rpc]` Remove the `ErrorDetail::Server` variant
([#1039](https://github.com/informalsystems/tendermint-rs/issues/1039))
- `[tendermint]` Box a large field value in `evidence::Evidence`
([#1041](https://github.com/informalsystems/tendermint-rs/pull/1041))
- `[tendermint-light-client]` Box large field values in `fork_detector::Fork`
([#1041](https://github.com/informalsystems/tendermint-rs/pull/1041))
- `[tendermint-rpc]` Box a large field value in `event::EventData`
([#1041](https://github.com/informalsystems/tendermint-rs/pull/1041))
- `[tendermint-p2p]` All public APIs using `ed25519-
dalek` types now use types from `ed25519-consensus`
([#1046](https://github.com/informalsystems/tendermint-rs/pull/1046))

### BUG FIXES

- `[tools/proto-compiler]` Fixed our proto-compiler, which was producing
protos that did not compile due to an incorrect Prost field annotation
([#1014](https://github.com/informalsystems/tendermint-rs/issues/1014))
- `[tendermint]` The `tendermint::node::Id` `Display` implementation now prints the hexadecimal string in lowercase ([#971](https://github.com/informalsystems/tendermint-rs/issues/971))

### DEPENDENCIES

- `[tendermint, tendermint-p2p]` Replaced the `ed25519-dalek` dependency with
`ed25519-consensus`
([#1046](https://github.com/informalsystems/tendermint-rs/pull/1046))
- `[tendermint-rpc]`: Switch `hyper-proxy` to use `rustls`, eliminating
the only use of `native-tls` in tendermint-rs dependencies
([#1068](https://github.com/informalsystems/tendermint-rs/pull/1068))

### IMPROVEMENTS

- `[tendermint]` Deprecated `signature::ED25519_SIGNATURE_SIZE`
in favor of `Ed25519Signature::BYTE_SIZE`
([#1023](https://github.com/informalsystems/tendermint-rs/issues/1023))
- Remove dependencies on the `chrono` crate.
([#1030](https://github.com/informalsystems/tendermint-rs/issues/1030))
- `[tendermint]` Improve `tendermint::Time`
([#1030](https://github.com/informalsystems/tendermint-rs/issues/1030)):
* Restrict the validity range of `Time` to dates with years in the range
1-9999, to match the specification of protobuf message `Timestamp`.
Add an `ErrorDetail` variant `DateOutOfRange` to report when this
restriction is not met.
* Added a conversion to, and a fallible conversion from,
`OffsetDateTime` of the `time` crate.
* Added `Time` methods `checked_add` and `checked_sub`.
- `[tendermint]` `Hash` is implemented for `tendermint::Time`
([#1054](https://github.com/informalsystems/tendermint-rs/pull/1054))
- `[tendermint]` Implement `Clone` for `PrivateKey`
([#1077](https://github.com/informalsystems/tendermint-rs/issues/1077))

## v0.23.0

*Oct 27, 2021*
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.23.0"
version = "0.24.0-pre.1"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2018"
license = "Apache-2.0"
Expand Down Expand Up @@ -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.0", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.24.0-pre.1", 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.23.0" # Also update `html_root_url` in lib.rs and
version = "0.24.0-pre.1" # 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/"
Expand All @@ -25,7 +25,7 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
tendermint = { version = "0.23.0", default-features = false, path = "../tendermint" }
tendermint = { version = "0.24.0-pre.1", default-features = false, 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.23.0"
version = "0.24.0-pre.1"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2018"
license = "Apache-2.0"
Expand All @@ -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", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.23.0", default-features = false, path = "../light-client-verifier" }
tendermint = { version = "0.24.0-pre.1", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.24.0-pre.1", 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
Expand Down
6 changes: 3 additions & 3 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.23.0"
version = "0.24.0-pre.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -26,8 +26,8 @@ rustdoc-args = ["--cfg", "docsrs"]
default = ["flex-error/std", "flex-error/eyre_tracer"]

[dependencies]
tendermint = { version = "0.23.0", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.23.0", path = "../rpc", default-features = false }
tendermint = { version = "0.24.0-pre.1", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.24.0-pre.1", path = "../rpc", default-features = false }

derive_more = { version = "0.99.5", default-features = false, features = ["display"] }
serde = { version = "1.0.106", default-features = false }
Expand Down
28 changes: 28 additions & 0 deletions light-client-verifier/README.md
Original file line number Diff line number Diff line change
@@ -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
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.23.0"
version = "0.24.0-pre.1"
edition = "2018"
license = "Apache-2.0"
readme = "README.md"
Expand Down Expand Up @@ -34,9 +34,9 @@ unstable = []
mbt = []

[dependencies]
tendermint = { version = "0.23.0", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.23.0", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.23.0", path = "../light-client-verifier", default-features = false }
tendermint = { version = "0.24.0-pre.1", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.24.0-pre.1", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.24.0-pre.1", path = "../light-client-verifier", default-features = false }

contracts = { version = "0.4.0", default-features = false }
crossbeam-channel = { version = "0.4.2", default-features = false }
Expand Down
2 changes: 1 addition & 1 deletion light-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
nonstandard_style
)]
#![doc(
html_root_url = "https://docs.rs/tendermint-light-client/0.23.0",
html_root_url = "https://docs.rs/tendermint-light-client/0.24.0-pre.1",
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
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.23.0"
version = "0.24.0-pre.1"
edition = "2018"
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.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 }
tendermint = { path = "../tendermint", version = "0.24.0-pre.1", default-features = false }
tendermint-proto = { path = "../proto", version = "0.24.0-pre.1", default-features = false }
tendermint-std-ext = { path = "../std-ext", version = "0.24.0-pre.1", default-features = false }

# optional dependencies
prost-derive = { version = "0.9", optional = true }
2 changes: 1 addition & 1 deletion p2p/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
unused_qualifications
)]
#![doc(
html_root_url = "https://docs.rs/tendermint-p2p/0.23.0",
html_root_url = "https://docs.rs/tendermint-p2p/0.24.0-pre.1",
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]

Expand Down
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.23.0"
version = "0.24.0-pre.1"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2018"
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.23.0"
version = "0.24.0-pre.1"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2018"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion proto/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")]
#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.24.0-pre.1")]

extern crate alloc;

Expand Down
2 changes: 1 addition & 1 deletion release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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}}
Expand Down
8 changes: 4 additions & 4 deletions rpc/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc"
version = "0.23.0"
version = "0.24.0-pre.1"
edition = "2018"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
Expand Down Expand Up @@ -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.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" }
tendermint-config = { version = "0.24.0-pre.1", path = "../config", default-features = false }
tendermint = { version = "0.24.0-pre.1", default-features = false, path = "../tendermint" }
tendermint-proto = { version = "0.24.0-pre.1", default-features = false, path = "../proto" }
thiserror = { version = "1", default-features = false }
time = { version = "0.3.5", 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.23.0"
version = "0.24.0-pre.1"
edition = "2018"
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.23.0" # Also update `html_root_url` in lib.rs and
version = "0.24.0-pre.1" # 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/"
Expand Down Expand Up @@ -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.0", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.24.0-pre.1", default-features = false, path = "../proto" }
time = { version = "0.3.5", 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 tendermint/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
)]
#![forbid(unsafe_code)]
#![doc(
html_root_url = "https://docs.rs/tendermint/0.23.0",
html_root_url = "https://docs.rs/tendermint/0.24.0-pre.1",
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]

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.23.0"
version = "0.24.0-pre.1"
edition = "2018"
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.23.0"
version = "0.24.0-pre.1"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2018"
readme = "README.md"
Expand All @@ -16,7 +16,7 @@ description = """
"""

[dependencies]
tendermint = { version = "0.23.0", path = "../tendermint", features = ["clock"] }
tendermint = { version = "0.24.0-pre.1", path = "../tendermint", features = ["clock"] }
serde = { version = "1", default-features = false, features = ["derive"] }
serde_json = { version = "1", default-features = false, features = ["std"] }
ed25519-consensus = { version = "1.2", default-features = false }
Expand Down
Loading

0 comments on commit 38668f1

Please sign in to comment.