31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# Minimum Supported Rust Version (MSRV)
|
|
|
|
This crate is guaranteed to compile on all stable Rust versions going back to
|
|
the version stated as MSRV in the README. It *might* compile with even older versions but
|
|
that may change in any new patch release.
|
|
|
|
## How the MSRV will be upgraded
|
|
|
|
For `critical-section`, we do not consider upgrading the MSRV a strictly breaking change as defined by
|
|
[SemVer](https://semver.org).
|
|
|
|
We follow these rules when upgrading it:
|
|
|
|
- We will not update the MSRV on any patch release: \_.\_.*Z*.
|
|
- We may upgrade the MSRV on any *major* or *minor* release: *X*.*Y*.\_.
|
|
- We may upgrade the MSRV in any preliminary version release (e.g. an `-alpha` release) as
|
|
these serve as preparation for the final release.
|
|
- MSRV upgrades will be clearly stated in the changelog.
|
|
|
|
This applies both to `0._._` releases as well as `>=1._._` releases.
|
|
|
|
For example:
|
|
|
|
For a given `x.y.z` release, we may upgrade the MSRV on `x` and `y` releases but not on `z` releases.
|
|
|
|
If your MSRV upgrade policy differs from this, you are advised to specify the
|
|
`critical-section` dependency in your `Cargo.toml` accordingly.
|
|
|
|
See the [Rust Embedded Working Group MSRV RFC](https://github.com/rust-embedded/wg/blob/master/rfcs/0523-msrv-2020.md)
|
|
for more background information and reasoning.
|