Skip to content

Commit b6bebf2

Browse files
committed
Document how the MSRV may be upgraded
1 parent f3324dc commit b6bebf2

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ version and an `-alpha` version side by side in a HAL.
5252

5353
- [How-to: add a new trait](docs/how-to-add-a-new-trait.md)
5454
- [Version policy](docs/version-policy.md)
55+
- [MSRV](docs/msrv.md)
5556

5657
## Implementations and drivers
5758

@@ -73,6 +74,8 @@ on crates.io.
7374
This crate is guaranteed to compile on stable Rust 1.46 and up. It *might*
7475
compile with older versions but that may change in any new patch release.
7576

77+
See [here](docs/msrv.md) for details on how the MSRV may be upgraded.
78+
7679
## License
7780

7881
Licensed under either of

docs/msrv.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Minimum Supported Rust Version (MSRV)
2+
3+
This crate is guaranteed to compile on all stable Rust versions going back to
4+
the version stated as MSRV in the README. It *might* compile with even older versions but
5+
that may change in any new patch release.
6+
7+
## How the MSRV will be upgraded
8+
9+
For `embedded-hal`, we do not consider upgrading the MSRV a strictly breaking change as defined by
10+
[SemVer](https://semver.org).
11+
12+
We follow these rules when upgrading it:
13+
14+
- We will not update the MSRV on any patch release: \_.\_.*Z*.
15+
- We may upgrade the MSRV on any *major* or *minor* release: *X*.*Y*.\_.
16+
- MSRV upgrades will be clearly stated in the changelog.
17+
18+
This applies both to `0._._` releases as well as `>=1._._` releases.
19+
20+
For example:
21+
22+
For a given `x.y.z` release, we may upgrade the MSRV on `x` and `y` releases but not on `z` releases.
23+
24+
If your MSRV upgrade policy differs from this, you are advised to specify the
25+
`embedded-hal` dependency in your `Cargo.toml` accordingly.
26+
27+
See the [Rust Embedded Working Group MSRV RFC](https://github.com/rust-embedded/wg/blob/master/rfcs/0523-msrv-2020.md)
28+
for more background information and reasoning.

0 commit comments

Comments
 (0)