- 
                Notifications
    You must be signed in to change notification settings 
- Fork 421
Bump MSRV to 1.75.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
Bump MSRV to 1.75.0 #4002
Conversation
| 👋 Thanks for assigning @TheBlueMatt as a reviewer! | 
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 ? | 
8eb3354    to
    17b08bc      
    Compare
  
    | Codecov Report❌ Patch coverage is  
 Additional details and impacted files@@            Coverage Diff             @@
##             main    #4002      +/-   ##
==========================================
- Coverage   88.80%   88.78%   -0.02%     
==========================================
  Files         180      180              
  Lines      137004   136986      -18     
  Branches   137004   136986      -18     
==========================================
- Hits       121660   121627      -33     
- Misses      12522    12545      +23     
+ Partials     2822     2814       -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. | 
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  | 
04836c6    to
    bf9764c      
    Compare
  
    | 
 While I'd personally still be in favor of 1.85, I now switched this PR to bump to 1.75.0. | 
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.
error: package `backtrace v0.3.75` cannot be built because it requires rustc 1.82.0 or newer, while the currently active rustc version is 1.75.0
Either upgrade to rustc 1.82.0 or newer, or use
cargo update [email protected] --precise ver
where `ver` is the latest version of `backtrace` supporting rustc 1.75.0
Also should we wait for 0.3 for this? I don't see a strong reason to do it now vs in three weeks.
| 👋 The first review has been submitted! Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer. | 
| 
 Ah, missed re-adding the deleted pin for this. 
 I guess? Also don't see a strong argument to wait? Or do you mean so that the 0.2 release would still have the old MSRV? Then again, 1.75.0 is ancient by now. | 
| 
 This. | 
| Putting in draft until then. | 
dfd2f69    to
    e213da2      
    Compare
  
    | Rebased on current main and addressed remaining linter warnings. | 
e213da2    to
    1751807      
    Compare
  
    We generally align our MSRV with Debian's stable channel. Debian 13 'Trixie' was just released, shipping rustc 1.85. However, as 1.85.0 is only about ~7months old at this point, we opt to bump to the more conservative 1.75.0, which approaches two years of age.
.. now that we can, addressing a TODO.
1751807    to
    165a6b3      
    Compare
  
    | Now actually whack-a-mole'd all remaining lints. | 
| 🔔 1st Reminder Hey @TheBlueMatt! This PR has been waiting for your review. | 
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.
Thanks. We should also move lightning-transaction-sync back into the workspace now that they have the same MSRV. There's probably some Box::pin we can drop now too.
We generally align our MSRV with Debian's stable channel. Debian 13 'Trixie' was just released, shipping rustc 1.85. However, as 1.85.0 is only about ~7months old at this point, we opt to bump to the more conservative 1.75.0, which approaches two years of age.