river icon indicating copy to clipboard operation
river copied to clipboard

Begin tracking MSRV (Minimum Supported Rust Version)

Open jamesmunns opened this issue 1 year ago • 8 comments

We will want to track some kind of MSRV when we get closer to a "1.0" release.

We likely don't want to be more conservative than pingora's policy, which is currently "stable - 6 months". As pingora is a fundamental dependency and we would prefer not to carry patches, we may just want to track this policy 1:1.

We also will want to test this in CI to prevent accidental regressions.

If users have opinions whether we should be more or less conservative than pingora's, please feel free to comment here. If there is no opinion, we will likely begin matching pingora's policy closer to the 1.0 release.

jamesmunns avatar Jun 05 '24 15:06 jamesmunns

Sorry but what's MSRV?

git001 avatar Jun 05 '24 17:06 git001

@git001 It stands for "Minimum Supported Rust Version", which is useful for users that don't necessarily track the latest Rust stable release, for example due to company policy or for linux distributions that package older versions of the compiler.

Context: https://rust-lang.github.io/rfcs/2495-min-rust-version.html

I've updated the title to define the abbreviation, thanks for asking!

jamesmunns avatar Jun 05 '24 17:06 jamesmunns

Will River have release branches, like current/LTS or nginx mainline/stable? That may influence the MSRV policy.

allan2 avatar Jun 07 '24 15:06 allan2

@allan2 that's yet to be decided, but likely a good question to ask closer to the 1.0 release.

jamesmunns avatar Jun 07 '24 16:06 jamesmunns

Noting that #44 discusses Debian support, which would require a much longer MSRV, in June 2024, bookworm stable is still on Rust 1.63 (nearly two years back).

jamesmunns avatar Jun 11 '24 08:06 jamesmunns

Would be good to figure out what the main reasons are for Pingora's newer requirement -- I think a lot of the fundamental libraries are sticking to 1.63 for now so it might not be too hard to stay there and it might make deployment easier for River?

djc avatar Jun 13 '24 12:06 djc

@djc I think this would be a reasonable experiment, though I definitely think it would be necessary to have this discussion upstream (in pingora) first, as it is unlikely to be desirable for river to maintain a patchset (or fork) of pingora to maintain a more conservative MSRV.

jamesmunns avatar Jun 13 '24 12:06 jamesmunns

Note that Debian Bookworm toolchain freeze was on 2023-01-12. At that time Rust 1.63 was less than 6 months old. If things go similarly next time, the version of Rust in the next Debian shouldn't be too old for the Pingora/River at that time work with.

eaufavor avatar Jun 27 '24 21:06 eaufavor