Bump MSRV
therealfrauholle opened this issue · 3 comments
I want to discuss bumping the current MSRV of 1.43. In my latest attempt to add support for the defmt framework (see #386) I could not use defmt
, since it requires at least rust 1.56.
Besides helping me solve my problem, I also saw that bumping the MSRV could solve some more problems, e.g. #216 or #82; and probably more.
Even thought it may break builds for others, most major crates do not treat bumping the MSRV as a breaking change. I checked a discussion crossbeam-rs/crossbeam#503 for reference, there are some very interesting and valuable comments regarding bumping the MSRV there.
@iliekturtles can probably judge better how dependents use uom
(and what MSRV they need); but I checked some of the dependents through crates.io and cargo msrv
, these are the three most downloaded crates that use uom
:
battery
depends onuom:0.30.0
; does not build below1.46
; last commit 2 years ago; mainly used in the actively maintainedbottom
crate which does not build below1.61
heim-common
depends onuom:0.30.0
; does not build below1.56
; last commit 1.5 years ago.starship-battery
depends onuom:0.30.0
; does not build below1.40
; part of the actively maintainedstarship
crate which specifies a MSRV of at least1.60
.
These are the three most downloaded crates that use the most recent version:
sgp4-rs
depends onuom:0.33.0
; does not build below1.56
libmedium
depends onuom:0.33.0
; does not build below1.56
rtforth
depends onuom:0.33.0
; does not build below1.56
; last changes 23 days ago.
So by looking at this I think it is reasonable to assume bumping the version to 1.56
will not be a deal for most people. Speaking more generally, I suggest to make a MSRV policy similar as discussed in crossbeam-rs/crossbeam#503, that gives users a guarantee that uom
will never have a MSRV newer than 6 months, but uom
contributors have the chance to bump the version somewhat regularly to make use of the newest stable features. What is your opinion @iliekturtles?
Possible duplicate of #239 I just saw.
Copied from #216 before I caught up with this issue:
I'm interested in bumping the MSRV but I'm a bit hesitant to go all the way to 1.60 when the work-arounds to resolve #216 issue aren't too painful and allow for an older MSRV. I don't have a specific policy about when to update the MSRV and what version to jump to so I'm interested in hearing thoughts about going all the way to 1.60.
After (mostly) reading the Crossbeam thread and now that I've seen the defmt
PR I'm more inclined to jump to 1.60. It is ~6 months old if the defmt
feature gets accepted alongside serde
why deal with feature name work-arounds for both.
Whatever MSRV we jump to I would like to release the current master as v0.34.0 now. Finally get @crystal-growth's remaining quantity/unit PRs merged into a branch to be released as v0.34.1 and allow for changes that need the new MSRV to start being merged into master.
https://github.com/iliekturtles/uom/actions/runs/5365520967/jobs/9734386156?pr=421#step:4:53
log
has a MSRV of 1.60.0. I'm looking at this now to fix all the bitrot with the github action failures.