RFC: Minimum supported Windows version (runtime)
There are three minimum version of Windows that we support:
- Running GStreamer
- Officially Windows 7 and newer
- Running the official binaries
- Officially Windows 7 and newer
- Running Cerbero itself
- Windows 10 64-bit and newer
Starting with Rust 1.78, the minimum version of Windows for all three has been increased to Windows 10. This conflicts with our minimum versions, and we aren't updating the Rust toolchain because of that.
Sometime in the future, Rust will support Windows 7 and newer again with new toolchains:
Two new targets have been added with Windows 7 as their baseline: x86_64-win7-windows-msvc and i686-win7-windows-msvc. They are starting as Tier 3 targets, meaning that the Rust codebase has support for them but we don't build or test them automatically. Once these targets reach Tier 2 status, they will be available to use via rustup.
Other data:
- Windows 7, 8, 8.1 are already out of support.
- Windows 10 is in-support till October 14, 2025
- After that, you need an enterprise subscription
- These are not necessarily useful barometers with Windows, because people still use older versions a lot, and other FOSS projects support those older versions.
- Rust 1.78's new Windows 10 requirement only applies to the MSVC toolchain (and LLVM)
- We don't have compelling reasons to use Rust 1.78+ yet, but at some point we might/will
My proposal is:
- Don't update to a newer Rust toolchain in Cerbero for now
- Wait and see if Rust starts supporting Windows 7 again with the new
x86_64-win7-windows-msvc
andi686-win7-windows-msvc
toolchains - If there's a compelling new Rust feature that is added after 1.78, we can re-evaluate
- It is definitely an option to keep an Minimum Supported Rust Version (MSRV) of 1.77 for the monorepo build and only move to newer Rust in Cerbero
- This would increase the Windows version for (2) from above, but not (1) which is more important
Thoughts?