-
Notifications
You must be signed in to change notification settings - Fork 418
Bump MSRV to 1.85.0 #4002
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?
Bump MSRV to 1.85.0 #4002
Conversation
👋 I see @TheBlueMatt was un-assigned. |
0b33c48
to
40dbf5b
Compare
I also addressed most MSRV-related TODOs in the code, only thing left is
@TheBlueMatt any opinion on whether to do it here, in a separate PR, or as part of #3973 ? |
40dbf5b
to
44024fc
Compare
We generally align our MSRV with Debian's stable channel. Debian 13 'Trixie' was just released, shipping rustc 1.85. We therefore bump our MSRV on the `main` branch here.
8eb3354
to
17b08bc
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4002 +/- ##
=======================================
Coverage 88.93% 88.94%
=======================================
Files 174 174
Lines 124593 124579 -14
Branches 124593 124579 -14
=======================================
- Hits 110813 110811 -2
+ Misses 11283 11279 -4
+ Partials 2497 2489 -8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
I don't think this is entirely true :). We generally align our MSRV with rust-bitcoin and the rest of the ecosystem. IIRC rust-bitcoin usually does something like min(2-year-old-rustc, debian stable, rustc that introduces materially useful features). The last time we bumped MSRV (#2681) the rustc we bumped to was a year and a few months old, and the release containing it wasn't until Dec, so rustc 1.63 was almost a year and a half old. 1.85 is currently only around 7 months old, and while it contains the rust 2024 edition, its not clear to me what we get that's worth bumping to what, presumably, rust-bitcoin won't do. There's also async closures but async blocks seem to have done us just fine nearly everywhere. |
Do we? #2681 happened 8-9 months before
What we get is a lot of little things, most importantly general reduction of friction (a period where we don't constantly have to fight with pinned-back dependencies, where all crates have the same MSRV, where We also get some language features (GATs, let-else bindings, both stabilized with 1.65, for example), which some devs were looking forward to be able to use finally. IMO it makes a whole lot of sense to upgrade now that we can, if just because it makes our lives easier in many little places, but also because it allows us to expose a more coherent Rust-native API. |
bb2c8aa
to
c51313f
Compare
.. addressing the TODOs there now that we can.
.. addressing a TODO
.. now that we can, addressing a TODO.
.. now that we can.
812cfd6
to
04836c6
Compare
We don't wait for rust-bitcoin, but we definitely coordinate around specific version of rustc.
This doesn't sound 1.85-specific?
Sadly even with rustc nightly we wouldn't want to change that. Our async KVStore requires ordering, which is not possible with native rust async methods as they do not run any code at all until polled. I guess in theory we could require "ordering after the first poll" and poll once whenever we persist, but that seems even more brittle than the current version which at least exposes the concept to the implementer.
We should also want 1.68 for the |
Per https://pkgs.org/download/rustc (and packages.ubuntu.com) the latest Ubuntu LTS is on rustc 1.75, which given its also the |
We generally align our MSRV with Debian's stable channel. Debian 13 'Trixie' was just released, shipping rustc 1.85. As the 0.2 is still a bit off, we should be fine bumping our MSRV on the
main
branch already, which is what we do here.