naomijub/edn-rs

Minimal Supported Rust Version (MSRV) policy

Grinkers opened this issue · 4 comments

I did a quick test and

.is_some_and(|n| n.1.is_numeric()) =>

is_some_and is actually was only stabilized in 1.70.0. It's not going to be possible to keep best practices, all lints, especially pedantic and nursery while also supporting very old versions of rust.

I would suggest having no policy on rust version while keeping all lints and best practices. I can commit to trying to get this crate to 1.0 before rust edition 2024. At that point, we can make all the extra lints optional and support the first 2024 rust edition indefinitely.

Thoughts? The recent trend for rust has been people use the most recent stable, or something like stable minus two versions. Rarely is it years old. Rust has no stable ABI, so for all practical purposes nobody is using really old versions of rust.

I personally think we follow rust trend or just use latest always.

he recent trend for rust has been people use the most recent stable, or something like stable minus two versions. Rarely is it years old. Rust has no stable ABI, so for all practical purposes nobody is using really old versions of rust.

@evaporei ?

I'm ok with not following pedantic and nursery, I personally think some of these lints are just not useful. A few versions prior to the latest is good to me 👍

I actually find value in pedantic (and still nursey, but less so), more than the annoyance, for active development. For inactive things it's just super annoying because you go back to working code and have a page of warnings you don't care about.

As mentioned in Lints

#[allow(unused_comparisons, clippy::absurd_extreme_comparisons)]

this is an example of clippy with a good suggestion that something may not be as expected. All the ones around number conversions are all good "TODO"s to double check.

My suggestion/desire would be

pre-1.0
stable - 2 + all the lints keeping up to date with best practices. As of right now with 1.74.0 just released, this would only guarantee 1.72.0 and higher.

post-1.0
indefinitely maintain that rust version, remove lints, and only do bug fixes. If Hickey decides to change the spec greatly, the project might end up under active development again. We can always turn lints back on then.

Resolved with #118