diff --git a/.changelog/unreleased/breaking-changes/1030-remove-chrono.md b/.changelog/v0.23.2/breaking-changes/1030-remove-chrono.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1030-remove-chrono.md rename to .changelog/v0.23.2/breaking-changes/1030-remove-chrono.md diff --git a/.changelog/unreleased/improvements/1023-ed25519-deprecations.md b/.changelog/v0.23.2/improvements/1023-ed25519-deprecations.md similarity index 100% rename from .changelog/unreleased/improvements/1023-ed25519-deprecations.md rename to .changelog/v0.23.2/improvements/1023-ed25519-deprecations.md diff --git a/.changelog/unreleased/improvements/1030-new-time-api.md b/.changelog/v0.23.2/improvements/1030-new-time-api.md similarity index 100% rename from .changelog/unreleased/improvements/1030-new-time-api.md rename to .changelog/v0.23.2/improvements/1030-new-time-api.md diff --git a/.changelog/v0.23.2/summary.md b/.changelog/v0.23.2/summary.md new file mode 100644 index 000000000..5d842afc9 --- /dev/null +++ b/.changelog/v0.23.2/summary.md @@ -0,0 +1,10 @@ +*Dec 7, 2021* + +This release focuses on the removal of +[`chrono`](https://crates.io/crates/chrono) as our primary dependency for +dealing with time, and replaces it with the +[`time`](https://crates.io/crates/time) crate. + +This is necessarily a breaking change, but is released as v0.23.2 as per our +current [versioning +scheme](https://github.com/informalsystems/tendermint-rs#versioning). diff --git a/CHANGELOG.md b/CHANGELOG.md index b97044bea..d919fe2c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,49 @@ # CHANGELOG +## v0.23.2 + +*Dec 7, 2021* + +This release focuses on the removal of +[`chrono`](https://crates.io/crates/chrono) as our primary dependency for +dealing with time, and replaces it with the +[`time`](https://crates.io/crates/time) crate. + +This is necessarily a breaking change, but is released as v0.23.2 as per our +current [versioning +scheme](https://github.com/informalsystems/tendermint-rs#versioning). + +### BREAKING CHANGES + +- `[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`. + * 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)) + +### 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` + ([#1036](https://github.com/informalsystems/tendermint-rs/issues/1036), + revised by [#1048](https://github.com/informalsystems/tendermint-rs/pull/1048)): + * 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. + ## v0.23.1 *Nov 15, 2021* diff --git a/abci/Cargo.toml b/abci/Cargo.toml index ecc829598..c2314eda8 100644 --- a/abci/Cargo.toml +++ b/abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-abci" -version = "0.23.1" +version = "0.23.2" 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.1", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.2", 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 5b422ac5c..21a334ca4 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-config" -version = "0.23.1" # Also update `html_root_url` in lib.rs and +version = "0.23.2" # 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.1", default-features = false, path = "../tendermint" } +tendermint = { version = "0.23.2", 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 d1e6ff28b..56f10d98f 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.1" +version = "0.23.2" 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.1", default-features = false, path = "../tendermint" } -tendermint-light-client = { version = "0.23.1", default-features = false, path = "../light-client" } +tendermint = { version = "0.23.2", default-features = false, path = "../tendermint" } +tendermint-light-client = { version = "0.23.2", 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 39d606589..9756efb89 100644 --- a/light-client/Cargo.toml +++ b/light-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client" -version = "0.23.1" +version = "0.23.2" edition = "2018" license = "Apache-2.0" readme = "README.md" @@ -37,8 +37,8 @@ unstable = [] mbt = [] [dependencies] -tendermint = { version = "0.23.1", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.23.1", path = "../rpc", default-features = false } +tendermint = { version = "0.23.2", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.23.2", path = "../rpc", 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 a065ad96b..a341152e3 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.1", + html_root_url = "https://docs.rs/tendermint-light-client/0.23.2", 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 c849579c4..5de1b7521 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-p2p" -version = "0.23.1" +version = "0.23.2" 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.1", default-features = false } -tendermint-proto = { path = "../proto", version = "0.23.1", default-features = false } -tendermint-std-ext = { path = "../std-ext", version = "0.23.1", default-features = false } +tendermint = { path = "../tendermint", version = "0.23.2", default-features = false } +tendermint-proto = { path = "../proto", version = "0.23.2", default-features = false } +tendermint-std-ext = { path = "../std-ext", version = "0.23.2", 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 2eb4aa21e..445ed226e 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.1", + html_root_url = "https://docs.rs/tendermint-p2p/0.23.2", 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 7e901794c..3ba55c33a 100644 --- a/pbt-gen/Cargo.toml +++ b/pbt-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-pbt-gen" -version = "0.23.1" +version = "0.23.2" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index a92eaccb5..7f39b4aba 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-proto" -version = "0.23.1" +version = "0.23.2" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0" diff --git a/proto/src/lib.rs b/proto/src/lib.rs index 6c0b3526e..3edb03bbf 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.1")] +#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.23.2")] extern crate alloc; diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 36b56c87e..c4646d359 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc" -version = "0.23.1" +version = "0.23.2" 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.1", path = "../config", default-features = false } -tendermint = { version = "0.23.1", default-features = false, path = "../tendermint" } -tendermint-proto = { version = "0.23.1", default-features = false, path = "../proto" } +tendermint-config = { version = "0.23.2", path = "../config", default-features = false } +tendermint = { version = "0.23.2", default-features = false, path = "../tendermint" } +tendermint-proto = { version = "0.23.2", 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 b05eb9ffd..f70cf3ee6 100644 --- a/std-ext/Cargo.toml +++ b/std-ext/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-std-ext" -version = "0.23.1" +version = "0.23.2" edition = "2018" license = "Apache-2.0" homepage = "https://www.tendermint.com/" diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml index d3ea7050a..410acdd92 100644 --- a/tendermint/Cargo.toml +++ b/tendermint/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint" -version = "0.23.1" # Also update `html_root_url` in lib.rs and +version = "0.23.2" # 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/" @@ -50,7 +50,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.1", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.23.2", 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 d2bb0b984..8c3d58ba2 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.1", + html_root_url = "https://docs.rs/tendermint/0.23.2", 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 cb3d29e2d..f74807514 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.1" +version = "0.23.2" edition = "2018" license = "Apache-2.0" categories = ["development", "test", "tools"] diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml index c0d53ea43..c22afea66 100644 --- a/testgen/Cargo.toml +++ b/testgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-testgen" -version = "0.23.1" +version = "0.23.2" authors = ["Informal Systems "] edition = "2018" readme = "README.md" @@ -16,7 +16,7 @@ description = """ """ [dependencies] -tendermint = { version = "0.23.1", path = "../tendermint" } +tendermint = { version = "0.23.2", 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 b1aeb5d9e..d32a4b189 100644 --- a/tools/abci-test/Cargo.toml +++ b/tools/abci-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "abci-test" -version = "0.23.1" +version = "0.23.2" 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.1", path = "../../tendermint" } -tendermint-config = { version = "0.23.1", path = "../../config" } -tendermint-rpc = { version = "0.23.1", path = "../../rpc", features = [ "websocket-client" ] } +tendermint = { version = "0.23.2", path = "../../tendermint" } +tendermint-config = { version = "0.23.2", path = "../../config" } +tendermint-rpc = { version = "0.23.2", 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 0c8c14094..dcb00c5d6 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.1", path = "../../tendermint" } -tendermint-light-client = { version = "0.23.1", path = "../../light-client", features = ["unstable"] } -tendermint-rpc = { version = "0.23.1", path = "../../rpc", features = [ "http-client", "websocket-client" ] } +tendermint = { version = "0.23.2", path = "../../tendermint" } +tendermint-light-client = { version = "0.23.2", path = "../../light-client", features = ["unstable"] } +tendermint-rpc = { version = "0.23.2", 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 bfe5a4928..84341acbd 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.1" +version = "0.23.2" authors = ["Informal Systems "] edition = "2018" license = "Apache-2.0"