webrtc
webrtc copied to clipboard
Decide on minimum supported rust version
Currently we support Rust 1.57.0 as our minimal version. However, this is entirely arbitrary. We should have a policy.
Some inspiration:
Tokio will keep a rolling MSRV (minimum supported rust version) policy of at least 6 months. When increasing the MSRV, the new Rust version must have been released at least six months ago. The current MSRV is 1.49.0.
The time crate is guaranteed to compile with any release of rustc from the past six months. Optional feature flags that enable interoperability with third-party crates (e.g. rand) follow the policy of that crate if stricter.
See https://github.com/serde-rs/serde/pull/2257
The MSRV policy is to strive for supporting 6-month old Rust versions.
Please add suggestions and inspirations from other crates(ideally those that are likely to be in a consumers tree already)
CI broke again because async-global-executor moved to version 1.59.0. This is was created because the same thing happened with time.
Proposal
Given how common the six months approach seems to be I think we should use the same, it's likely that consumers have had to update already because the six month MSRV policy is so common.
Fix for async-global-executor https://github.com/webrtc-rs/webrtc/pull/278
cc @KillingSpark @niklaskorz @morajabi @sax @stuqdog @KallDrexx @xnorpx @rainliu @morajabi @billylindeman
I'd to go with my proposal above unless there's a strong argument against that
Makes sense to me. Almost all my work ends up on the latest rust compiler.
Implicit in my proposal is that changes to MSRV will not be considered breaking either, just making this explicit
I made a PR that updates the minimum to 1.60.0 and documents the suggested proposal
https://github.com/webrtc-rs/webrtc/pull/337
I've merged #337 so I'm closing this now.
Policy is to have an MSRV for compilers released in the last six months and bump the minimum version as non breaking.