diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4cb9910..4d4419d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: strategy: matrix: os: [ ubuntu-24.04, macos-14, windows-2022 ] - rust-version: [ "stable", "nightly" ] + rust-version: [ "1.85.0", "stable", "nightly" ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 diff --git a/Cargo.toml b/Cargo.toml index 5b4c41e..94eda9e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,6 +22,7 @@ homepage = "https://github.com/fast/exn" license = "Apache-2.0" readme = "README.md" repository = "https://github.com/fast/exn" +rust-version = "1.85.0" [workspace.dependencies] # Workspace dependencies @@ -34,8 +35,8 @@ insta = { version = "1.45.1" } which = { version = "8.0.0" } [workspace.lints.rust] -unexpected_cfgs = { level = "deny", check-cfg = ['cfg(windows_test)'] } unknown_lints = "deny" +unused_must_use = "deny" [workspace.lints.clippy] dbg_macro = "deny" diff --git a/README.md b/README.md index af7a39d..97b74e6 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Crates.io][crates-badge]][crates-url] [![Documentation][docs-badge]][docs-url] +[![MSRV 1.85][msrv-badge]](https://www.whatrustisit.com) [![Apache 2.0 licensed][license-badge]][license-url] [![Build Status][actions-badge]][actions-url] @@ -9,6 +10,7 @@ [crates-url]: https://crates.io/crates/exn [docs-badge]: https://docs.rs/exn/badge.svg [docs-url]: https://docs.rs/exn +[msrv-badge]: https://img.shields.io/badge/MSRV-1.85-green?logo=rust [license-badge]: https://img.shields.io/crates/l/exn [license-url]: LICENSE [actions-badge]: https://github.com/fast/exn/workflows/CI/badge.svg @@ -30,6 +32,12 @@ This crate is `no_std` compatible, while the `alloc` crate is still required for It is worth noting that `no_std` support is a nice-to-have feature, and can be dropped if it blocks other important features in the future. Before 1.0, once `exn` APIs settle down, the decision on whether to keep `no_std` as a promise will be finalized. +## Minimum Rust version policy + +This crate is built against the latest stable release, and its minimum supported rustc version is 1.85.0. + +The policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if version 1.0 requires Rust 1.60.0, then version 1.0.z for all values of z will also require Rust 1.60.0 or newer. However, version 1.y for y > 0 may require a newer minimum version of Rust. + ## License This project is licensed under [Apache License, Version 2.0](LICENSE). diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5b7c2ec..e280edc 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -13,5 +13,5 @@ # limitations under the License. [toolchain] -channel = "stable" +channel = "1.85.0" components = ["cargo", "rustfmt", "clippy", "rust-analyzer"]