Skip to content

Bump MSRV #387

@therealfrauholle

Description

@therealfrauholle

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 on uom:0.30.0; does not build below 1.46; last commit 2 years ago; mainly used in the actively maintained bottom crate which does not build below 1.61
  • heim-common depends on uom:0.30.0; does not build below 1.56; last commit 1.5 years ago.
  • starship-battery depends on uom:0.30.0; does not build below 1.40; part of the actively maintained starship crate which specifies a MSRV of at least 1.60.

These are the three most downloaded crates that use the most recent version:

  • sgp4-rs depends on uom:0.33.0; does not build below 1.56
  • libmedium depends on uom:0.33.0; does not build below 1.56
  • rtforth depends on uom:0.33.0; does not build below 1.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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions