memorysafety / river

This repository is the home of the River reverse proxy application, based on the pingora library from Cloudflare.
https://www.memorysafety.org/initiative/reverse-proxy/
Apache License 2.0
1.72k stars 101 forks source link

Begin tracking MSRV (Minimum Supported Rust Version) #41

Open jamesmunns opened 3 months ago

jamesmunns commented 3 months ago

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.

git001 commented 3 months ago

Sorry but what's MSRV?

jamesmunns commented 3 months ago

@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!

allan2 commented 3 months ago

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

jamesmunns commented 3 months ago

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

jamesmunns commented 3 months ago

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).

djc commented 3 months ago

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?

jamesmunns commented 3 months ago

@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.

eaufavor commented 3 months ago

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.