Skip to content

Commit 9e60815

Browse files
committed
Give up MSRV
1 parent 20fd784 commit 9e60815

File tree

1 file changed

+9
-57
lines changed

1 file changed

+9
-57
lines changed

docs/MSRV.md

+9-57
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,11 @@
11
# Minimum Supported Rust Version (MSRV)
22

3-
This repository has two independent MSRVs, one for the standard library that is
4-
compiled into contracts (cosmwasm-std MSRV) and one for the virtual machine
5-
executing contracts (cosmwasm-vm MSRV). The other packages belong to one of the
6-
two:
7-
8-
| Crate | MSRV |
9-
| ---------------- | ----------------- |
10-
| cosmwasm-crypto | cosmwasm-std MSRV |
11-
| cosmwasm-derive | cosmwasm-std MSRV |
12-
| cosmwasm-schema | cosmwasm-std MSRV |
13-
| cosmwasm-std | cosmwasm-std MSRV |
14-
| cosmwasm-storage | cosmwasm-std MSRV |
15-
| cosmwasm-vm | cosmwasm-vm MSRV |
16-
17-
The reason for this is that cosmwasm-std has a wider audience than cosmwasm-vm
18-
and we try to change the MSRV less frequently, allowing contract developers to
19-
pick their favourite compiler version without getting disrupted. Another reason
20-
is that cosmwasm-vm depends on [Wasmer], which bump their MSRV frequently.
21-
Please note that as soon as you start using integration tests for contract
22-
development, you will depends on the cosmwasm-vm MSRV.
23-
24-
[wasmer]: https://github.com/wasmerio/wasmer
25-
26-
## Latest changes
27-
28-
| Version | cosmwasm-std MSRV | cosmwasm-vm MSRV | Notes |
29-
| ----------- | ----------------- | ---------------- | --------------------------------------------------------------------------------------- |
30-
| 1.0.0-beta5 | 1.54.0 | 1.54.0 | Align with 0.16 series |
31-
| 1.0.0-beta2 | 1.53.0 | 1.53.0 | Not strictly needed but prepares for [Wasmer > 2] and let's us keep up with modern Rust |
32-
| 0.16.4 | 1.54.0 | 1.54.0 | |
33-
| 0.14.0 | 1.51.0 | 1.51.0 | Added support for const generics |
34-
| 0.13.2 | 1.47.0 | 1.48.0 | Through [Wasmer 1.0.1] |
35-
| 0.13.0 | 1.47.0 | 1.47.0 | |
36-
| 0.11.0 | 1.45.2 | 1.45.2 | |
37-
38-
[wasmer 1.0.1]:
39-
https://github.com/wasmerio/wasmer/blob/master/CHANGELOG.md#101---2021-01-12
40-
[wasmer > 2]:
41-
https://github.com/wasmerio/wasmer/commit/005d1295297acaaa7fdf713e76a36d08264d8c49
42-
43-
## Policy
44-
45-
**cosmwasm-std MSRV**
46-
47-
- It must always be at least one minor version behind latest stable. E.g. with
48-
stable Rust 1.33.3 it must not exceed 1.32.0.
49-
- It can be bumped without a semver major release of the crates. However, a
50-
minor version bump is required.
51-
- Before the 1.0.0 release, it can change at any time.
52-
53-
**cosmwasm-vm MSRV**
54-
55-
- It can be bumped without a semver major release of the crate. However, a minor
56-
version bump is required.
57-
- Before the 1.0.0 release, it can change at any time.
58-
- It is always higher or equal to cosmwasm-std MSRV because the VM depends on
59-
cosmwasm-std and related packages.
3+
We try to keep the range of supported Rust compiler versions as wide as possible
4+
to avoid unnecessary inconvenience for contract developers. However, we give up
5+
all strong MSRV guarantees as the Rust ecosystem currently makes it impossible
6+
to do so. See e.g.
7+
8+
- https://github.com/rust-lang/api-guidelines/issues/252
9+
- https://github.com/CosmWasm/cosmwasm/issues/1244
10+
- https://github.com/wasmerio/wasmer/issues/2819
11+
- https://github.com/CosmWasm/cosmwasm/issues/1204

0 commit comments

Comments
 (0)