diff --git a/.changelog/unreleased/breaking-changes/1660-msrv-1.57.md b/.changelog/unreleased/breaking-changes/1660-msrv-1.57.md new file mode 100644 index 0000000000..398ea568f3 --- /dev/null +++ b/.changelog/unreleased/breaking-changes/1660-msrv-1.57.md @@ -0,0 +1,2 @@ +- Update MSRV to Rust 1.57 + ([#1660](https://github.com/informalsystems/ibc-rs/issues/1660)) diff --git a/.github/ISSUE_TEMPLATE/rust-update.md b/.github/ISSUE_TEMPLATE/rust-update.md new file mode 100644 index 0000000000..2763d111ec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/rust-update.md @@ -0,0 +1,28 @@ +--- +name: Rust version update +about: A checklist to perform to update to a new version of Rust. +--- + +# Update to Rust release 1.x.y + +🦀 + +- [ ] Update the version in `rust-toolchain.toml`. +- [ ] Run `cargo clippy --all-features --fix`, review and commit the automatic + fixes, and fix all reported lints. Try to resolve the root causes for + the lints rather than silencing them with `#[allow(...)]`. + +## Update the MSRV (optional) + +Additional steps to perform in order to make the new minimal supported +Rust version: + +- [ ] Update the `rust-version` fields in all `Cargo.toml` files. +- [ ] Update the `msrv` field in `clippy.toml` and fix all lints reported by + `cargo clippy --all-features`. +- [ ] Update the MSRV shields in README files: + - `README.md` + - `relayer-rest/README.md` +- [ ] Update the MSRV in the guide: `guide/src/pre_requisites.md` +- [ ] Add a `.changelog` entry to the `breaking-changes` section, + announcing the new MSRV. diff --git a/README.md b/README.md index 1837ae2bbb..499aacab97 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![End to End testing][e2e-image]][e2e-link] [![Apache 2.0 Licensed][license-image]][license-link] ![Rust Stable][rustc-image] -![Rust 1.56+][rustc-version] +![Rust 1.57+][rustc-version] Rust implementation of the Inter-Blockchain Communication (IBC) protocol. @@ -41,7 +41,7 @@ Includes [TLA+ specifications](docs/spec). ## Requirements -The crates in this project require the latest stable version of Rust: `1.56.0`. +The crates in this project require the latest stable version of Rust: `1.57.0`. ## Hermes Guide @@ -113,6 +113,6 @@ Unless required by applicable law or agreed to in writing, software distributed [license-image]: https://img.shields.io/badge/license-Apache_2.0-blue.svg [license-link]: https://github.com/informalsystems/ibc-rs/blob/master/LICENSE [rustc-image]: https://img.shields.io/badge/rustc-stable-blue.svg -[rustc-version]: https://img.shields.io/badge/rustc-1.56+-blue.svg +[rustc-version]: https://img.shields.io/badge/rustc-1.57+-blue.svg [cosmos-shield]: https://img.shields.io/static/v1?label=&labelColor=1B1E36&color=1B1E36&message=cosmos%20ecosystem&style=for-the-badge&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNTAwIDI1MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI1MDAgMjUwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiM2RjczOTA7fQoJLnN0MXtmaWxsOiNCN0I5Qzg7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI1Mi42LDE1OS41Yy0xMzQuOSwwLTI0NC4zLDQ4OS40LTI0NC4zLDEwOTMuMXMxMDkuNCwxMDkzLjEsMjQ0LjMsMTA5My4xczI0NC4zLTQ4OS40LDI0NC4zLTEwOTMuMQoJUzEzODcuNSwxNTkuNSwxMjUyLjYsMTU5LjV6IE0xMjY5LjQsMjI4NGMtMTUuNCwyMC42LTMwLjksNS4xLTMwLjksNS4xYy02Mi4xLTcyLTkzLjItMjA1LjgtOTMuMi0yMDUuOAoJYy0xMDguNy0zNDkuOC04Mi44LTExMDAuOC04Mi44LTExMDAuOGM1MS4xLTU5Ni4yLDE0NC03MzcuMSwxNzUuNi03NjguNGM2LjctNi42LDE3LjEtNy40LDI0LjctMmM0NS45LDMyLjUsODQuNCwxNjguNSw4NC40LDE2OC41CgljMTEzLjYsNDIxLjgsMTAzLjMsODE3LjksMTAzLjMsODE3LjljMTAuMywzNDQuNy01Ni45LDczMC41LTU2LjksNzMwLjVDMTM0MS45LDIyMjIuMiwxMjY5LjQsMjI4NCwxMjY5LjQsMjI4NHoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIyMDAuNyw3MDguNmMtNjcuMi0xMTcuMS01NDYuMSwzMS42LTEwNzAsMzMycy04OTMuNSw2MzguOS04MjYuMyw3NTUuOXM1NDYuMS0zMS42LDEwNzAtMzMyCglTMjI2Ny44LDgyNS42LDIyMDAuNyw3MDguNkwyMjAwLjcsNzA4LjZ6IE0zNjYuNCwxNzgwLjRjLTI1LjctMy4yLTE5LjktMjQuNC0xOS45LTI0LjRjMzEuNi04OS43LDEzMi0xODMuMiwxMzItMTgzLjIKCWMyNDkuNC0yNjguNCw5MTMuOC02MTkuNyw5MTMuOC02MTkuN2M1NDIuNS0yNTIuNCw3MTEuMS0yNDEuOCw3NTMuOC0yMzBjOS4xLDIuNSwxNSwxMS4yLDE0LDIwLjZjLTUuMSw1Ni0xMDQuMiwxNTctMTA0LjIsMTU3CgljLTMwOS4xLDMwOC42LTY1Ny44LDQ5Ni44LTY1Ny44LDQ5Ni44Yy0yOTMuOCwxODAuNS02NjEuOSwzMTQuMS02NjEuOSwzMTQuMUM0NTYsMTgxMi42LDM2Ni40LDE3ODAuNCwzNjYuNCwxNzgwLjRMMzY2LjQsMTc4MC40CglMMzY2LjQsMTc4MC40eiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjE5OC40LDE4MDAuNGM2Ny43LTExNi44LTMwMC45LTQ1Ni44LTgyMy03NTkuNVMzNzQuNCw1ODcuOCwzMDYuOCw3MDQuN3MzMDAuOSw0NTYuOCw4MjMuMyw3NTkuNQoJUzIxMzAuNywxOTE3LjQsMjE5OC40LDE4MDAuNHogTTM1MS42LDc0OS44Yy0xMC0yMy43LDExLjEtMjkuNCwxMS4xLTI5LjRjOTMuNS0xNy42LDIyNC43LDIyLjYsMjI0LjcsMjIuNgoJYzM1Ny4yLDgxLjMsOTk0LDQ4MC4yLDk5NCw0ODAuMmM0OTAuMywzNDMuMSw1NjUuNSw0OTQuMiw1NzYuOCw1MzcuMWMyLjQsOS4xLTIuMiwxOC42LTEwLjcsMjIuNGMtNTEuMSwyMy40LTE4OC4xLTExLjUtMTg4LjEtMTEuNQoJYy00MjIuMS0xMTMuMi03NTkuNi0zMjAuNS03NTkuNi0zMjAuNWMtMzAzLjMtMTYzLjYtNjAzLjItNDE1LjMtNjAzLjItNDE1LjNjLTIyNy45LTE5MS45LTI0NS0yODUuNC0yNDUtMjg1LjRMMzUxLjYsNzQ5Ljh6Ii8+CjxjaXJjbGUgY2xhc3M9InN0MSIgY3g9IjEyNTAiIGN5PSIxMjUwIiByPSIxMjguNiIvPgo8ZWxsaXBzZSBjbGFzcz0ic3QxIiBjeD0iMTc3Ny4zIiBjeT0iNzU2LjIiIHJ4PSI3NC42IiByeT0iNzcuMiIvPgo8ZWxsaXBzZSBjbGFzcz0ic3QxIiBjeD0iNTUzIiBjeT0iMTAxOC41IiByeD0iNzQuNiIgcnk9Ijc3LjIiLz4KPGVsbGlwc2UgY2xhc3M9InN0MSIgY3g9IjEwOTguMiIgY3k9IjE5NjUiIHJ4PSI3NC42IiByeT0iNzcuMiIvPgo8L3N2Zz4K [cosmos-link]: https://cosmos.network diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 0000000000..23b32c17c3 --- /dev/null +++ b/clippy.toml @@ -0,0 +1 @@ +msrv = "1.57.0" diff --git a/guide/src/pre_requisites.md b/guide/src/pre_requisites.md index 8bfd1c22a4..4255f23355 100644 --- a/guide/src/pre_requisites.md +++ b/guide/src/pre_requisites.md @@ -12,7 +12,7 @@ The provided instructions will install all the Rust toolchain including `rustc`, ### Version requirements -Hermes is developed and tested using the latest version of Rust, `1.52` at +Hermes is developed and tested using the latest version of Rust, `1.57` at the moment. To check that your toolchain is up-to-date run: ```shell diff --git a/modules/Cargo.toml b/modules/Cargo.toml index f023715bf0..7192c06983 100644 --- a/modules/Cargo.toml +++ b/modules/Cargo.toml @@ -7,7 +7,7 @@ readme = "README.md" keywords = ["blockchain", "consensus", "cosmos", "ibc", "tendermint"] repository = "https://github.com/informalsystems/ibc-rs" authors = ["Informal Systems "] -rust-version = "1.56" +rust-version = "1.57" description = """ Implementation of the Inter-Blockchain Communication Protocol (IBC). This crate comprises the main data structures and on-chain logic. diff --git a/proto-compiler/Cargo.toml b/proto-compiler/Cargo.toml index e1b2b596b8..8bb08d371c 100644 --- a/proto-compiler/Cargo.toml +++ b/proto-compiler/Cargo.toml @@ -4,7 +4,7 @@ version = "0.2.0" authors = ["Informal Systems "] edition = "2021" publish = false -rust-version = "1.56" +rust-version = "1.57" [dependencies] git2 = "0.13" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 3b1e19c56b..1f3986be3e 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -9,7 +9,7 @@ readme = "README.md" categories = ["cryptography", "cryptography::cryptocurrencies", "database"] keywords = ["blockchain", "cosmos", "tendermint", "ibc", "proto"] exclude = ["definitions"] -rust-version = "1.56" +rust-version = "1.57" description = """ ibc-proto is a Rust implementation of the Cosmos SDK & IBC proto structs """ diff --git a/relayer-cli/Cargo.toml b/relayer-cli/Cargo.toml index e9a5c88e03..34736cf62b 100644 --- a/relayer-cli/Cargo.toml +++ b/relayer-cli/Cargo.toml @@ -8,7 +8,7 @@ keywords = ["blockchain", "consensus", "cosmos", "ibc", "tendermint"] homepage = "https://hermes.informal.systems/" repository = "https://github.com/informalsystems/ibc-rs" authors = ["Informal Systems "] -rust-version = "1.56" +rust-version = "1.57" description = """ Hermes is an IBC Relayer written in Rust """ diff --git a/relayer-rest/Cargo.toml b/relayer-rest/Cargo.toml index ace20d3be1..578468beb9 100644 --- a/relayer-rest/Cargo.toml +++ b/relayer-rest/Cargo.toml @@ -8,7 +8,7 @@ readme = "README.md" keywords = ["ibc", "rest", "api", "cosmos", "tendermint"] homepage = "https://hermes.informal.systems/" repository = "https://github.com/informalsystems/ibc-rs" -rust-version = "1.56" +rust-version = "1.57" description = """ Rust implementation of a RESTful API server for Hermes """ diff --git a/relayer-rest/README.md b/relayer-rest/README.md index 8b7d06dcb1..bc25e9949f 100644 --- a/relayer-rest/README.md +++ b/relayer-rest/README.md @@ -6,7 +6,7 @@ [![End to End testing][e2e-image]][e2e-link] [![Apache 2.0 Licensed][license-image]][license-link] ![Rust Stable][rustc-image] -![Rust 1.56+][rustc-version] +![Rust 1.57+][rustc-version] This is the repository for the IBC REST server for use in the Hermes IBC relayer. @@ -39,4 +39,4 @@ Unless required by applicable law or agreed to in writing, software distributed [license-image]: https://img.shields.io/badge/license-Apache2.0-blue.svg [license-link]: https://github.com/informalsystems/ibc-rs/blob/master/LICENSE [rustc-image]: https://img.shields.io/badge/rustc-stable-blue.svg -[rustc-version]: https://img.shields.io/badge/rustc-1.56+-blue.svg +[rustc-version]: https://img.shields.io/badge/rustc-1.57+-blue.svg diff --git a/relayer/Cargo.toml b/relayer/Cargo.toml index 1f425f75af..b35e784561 100644 --- a/relayer/Cargo.toml +++ b/relayer/Cargo.toml @@ -7,7 +7,7 @@ readme = "README.md" keywords = ["blockchain", "consensus", "cosmos", "ibc", "tendermint"] repository = "https://github.com/informalsystems/ibc-rs" authors = ["Informal Systems "] -rust-version = "1.56" +rust-version = "1.57" description = """ Implementation of an IBC Relayer in Rust, as a library """ diff --git a/telemetry/Cargo.toml b/telemetry/Cargo.toml index e5c972c3aa..cfe2111d55 100644 --- a/telemetry/Cargo.toml +++ b/telemetry/Cargo.toml @@ -7,7 +7,7 @@ readme = "README.md" keywords = ["cosmos", "ibc", "relayer", "telemetry"] repository = "https://github.com/informalsystems/ibc-rs" authors = ["Informal Systems "] -rust-version = "1.56" +rust-version = "1.57" description = """ Telemetry service for the Hermes IBC relayer """