naomijub / edn-rs

[DEPRECATED]: Crate to parse and emit EDN
https://crates.io/crates/edn-rs
MIT License
81 stars 14 forks source link

Minimal Supported Rust Version (MSRV) policy #117

Closed Grinkers closed 10 months ago

Grinkers commented 10 months ago

I did a quick test and https://github.com/naomijub/edn-rs/blob/fe6b043152be64784799ceafefddb4ce55da2a74/src/deserialize/parse.rs#L56 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.

naomijub commented 10 months ago

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 ?

evaporei commented 10 months ago

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 :+1:

Grinkers commented 10 months ago

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 https://github.com/naomijub/edn-rs/blob/fe6b043152be64784799ceafefddb4ce55da2a74/src/edn/mod.rs#L131 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.

Grinkers commented 10 months ago

Resolved with https://github.com/naomijub/edn-rs/pull/118