Skip to content

Commit

Permalink
Bump MSRV to 1.57 and instruct clippy to lint against this version (i…
Browse files Browse the repository at this point in the history
…nformalsystems#1660)

* Bump rust-version to 1.57 in Cargo.toml

* Add clippy.toml with the MSRV configuration

Currently at 1.57.0 due to some recent lint-driven changes requiring the
newest stable Rust.

* Updated all mentions of MSRV to 1.57

Also in the guide.

* Changelog entry for informalsystems#1660

* Add an issue template with Rust update checklist

As the process of updating to a new Rust version, especially when
bumping the MSRV, requires many steps and some of them tend to
get forgotten, make an issue template with a checklist of
all the steps.

* Advise on fixing lints in rust-update template
  • Loading branch information
mzabaluev authored Dec 9, 2021
1 parent 63900b1 commit 8d5384e
Show file tree
Hide file tree
Showing 10 changed files with 41 additions and 10 deletions.
2 changes: 2 additions & 0 deletions .changelog/unreleased/breaking-changes/1660-msrv-1.57.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Update MSRV to Rust 1.57
([#1660](https://github.com/informalsystems/ibc-rs/issues/1660))
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/rust-update.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
1 change: 1 addition & 0 deletions clippy.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
msrv = "1.57.0"
2 changes: 1 addition & 1 deletion guide/src/pre_requisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion relayer-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <hello@informal.systems>"]
rust-version = "1.56"
rust-version = "1.57"
description = """
Hermes is an IBC Relayer written in Rust
"""
Expand Down
2 changes: 1 addition & 1 deletion relayer-rest/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
"""
Expand Down
4 changes: 2 additions & 2 deletions relayer-rest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion relayer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ readme = "README.md"
keywords = ["blockchain", "consensus", "cosmos", "ibc", "tendermint"]
repository = "https://github.com/informalsystems/ibc-rs"
authors = ["Informal Systems <hello@informal.systems>"]
rust-version = "1.56"
rust-version = "1.57"
description = """
Implementation of an IBC Relayer in Rust, as a library
"""
Expand Down
2 changes: 1 addition & 1 deletion telemetry/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ readme = "README.md"
keywords = ["cosmos", "ibc", "relayer", "telemetry"]
repository = "https://github.com/informalsystems/ibc-rs"
authors = ["Informal Systems <hello@informal.systems>"]
rust-version = "1.56"
rust-version = "1.57"
description = """
Telemetry service for the Hermes IBC relayer
"""
Expand Down

0 comments on commit 8d5384e

Please sign in to comment.