-
Notifications
You must be signed in to change notification settings - Fork 70
Update MSRV to Rust 1.65 #534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for shepmaster-snafu ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
alerque
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sure you probably know this, but 1.65 is the latest rust including in Ubuntu Bionic (18.04) which is a pretty major LTS milestone for many projects to target as far as backwards compatibility goes. I have some projects which still keep the MSRV this low for just that reason (and a few more that have moved on to target Focal as minimum specs).
I didn't, actually, so thank you! However, I was coincidently planning on stopping the MSRV update train here at 1.65. Targeting a ~3 year old Rust compiler has been somewhat of the sweet spot, I think. That said, I'm not sure if or how I'll let this knowledge influence my decisions going forward. Presumably any Ubuntu-provided Rust packages would continue using SNAFU 0.8.x as the packages wouldn't get updated to use a new version anyway. That leaves "people compiling Rust code themselves on Ubuntu but using the Ubuntu-provided Rust compiler". That group is able to install a newer Rust compiler (I assume this without checking) if they are developing their own projects. If they are just compiling some other project that uses SNAFU, then that project would be responsible for keeping an old-enough SNAFU version. Thankfully, Rust 1.84 will make this a lot easier going forward; we just have to wait for that to be in all the LTS streams. 😪 |
This reasoning covers the vast majority of cases, but there is a 3rd case. You're right about how things work for the first 2 major cases — the third case is 3rd party PPAs that specifically target older systems that for whatever policy reasons are not getting updated until the end of LTS cycles but need some fresh software. There are quite a few cases out there in production using mostly ancient system packages and then putting a handful of vetted mission specific builds in a PPA. Of course it is possible to also build these with a newer toolchain, but that introduces quite a few quirks and potentially more things to get special approval for. It's often easier to stick with the as many system components as possible. There is actually an updates channel published by Canonical that bumps the Bionic Rust package as far as ... 1.71 maybe? ... which helps a lot. Using Of course as you said this doesn't have to hold this project back as apps that have to target older systems can also just hold back the libraries they use. I was just pointing out that as of 1.65 you were about to jump a big line in the sand. Maybe it's worth jumping, but at least know that past this point you'll start creating a lot more downstream friction. Circa 2025. |
In addition, since we gained |
If any users of SNAFU are reading this and fall into this category of "targeting Ubuntu LTS that is no longer in the standard support period", feel free to reach out about your needs (and don't be too surprised to have to get out your checkbook! 😉) |
No description provided.