-
Notifications
You must be signed in to change notification settings - Fork 84
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
Whats the MSRV for this crate? #85
Comments
Slightly off topic, but I have no idea what MSRV stands for. Not that it really matters as I'm an absolute nobody when it comes to this crate, but could you please define? |
@Dygear I believe he's refering to Minimum Supported Rust Version. What is the absolute minimum version of the rust compiler that this crate support so that changing that requires a major version bump. |
This isn't true. Whether MSRV bump is a breaking change or not is a long-standing debate within the Rust community, and there's been different guidance on that. In my experience, these mainstream opinions prevail:
Of course there are some variations of those, and some less common policies (very less common), but I'd say that's it! The quoted phrase about "requires major bump" is inaccurate and misleading. Out of curiosity, can somebody give me an example of a reasonably popular (let's set the bar at 300 downloads per day on crates.io) crate that has adopted this policy and been enforcing it? I don't think I ever saw one. |
Hmm, I do agree with @PatatasDelPapa here that breaking compatibility with a certain compiler that was previously supported is definitely a breaking change to your library and thus requires a major version bump. I think any crate that takes tracking their MSRV seriously (i.e. specifying it in the README and having a CI job enforcing that) has this approach. I've been using Rust professionally for more than 2 years now and we sometimes bump into crates violating this and we've banned them since. I couldn't go over an exhaustive list, but some dependencies we use are
|
And this is why I said there's no consensus 🤷 I think the trend among Rust maintainers is to be conservative and don't bump MSRV without a very good reason (bugfixes and very appealing features), so it happens quite seldom, especially in mature foundational crates such as Out of morbid curiosity, I looked over the crates you listed and here's what I've found:
None of the crates publicly define their MSRV policy, except rand. So yeah, I'm convinced "major bumps" is not a widely adopted policy, in practice if not in theory. Probably because the majority of programmers strive to stay updated with the latest rustc, and updating the compiler is just a nuance for the most. Private companies can have different opinions about that, but then again, they tend to go with their own registries/forks. |
About |
Anyway, I was just trying to ask the maintainer if he'd be willing to commit to an MSRV, which seems not to be the case. That's fine. |
Hi I'm late for the party, sorry. I don't see an issue with an MSRV, that's OK. |
See the linked issue (#131 (comment)), but I think the plan's probably going to be that the MSRV will be 1.70.0. Is that a problem for anyone here? |
Yes. I think 1.70.0 is far too recent to be MSRV, as colored is a "old" lib (first version was 2016) and we have many dependencies that may not upgrade so fast. I think something in the range 1.15-1.45 would be more reasonable, with using probably this crate to provide sane defaults value for things like What do you think ? |
You're right, 1.70.0 is quite recent @mackwic. I was looking at other solutions for fixing #131 if we did that route, and the one crate I found is |
I dunno, August 2022 is a year ago. It's not to recent but I think we need
to double-check on the libs depending on us before doing this change.
For reference owo-colors MSRV is 1.51.1:
https://github.com/jam1garner/owo-colors/blob/master/.github/workflows/ci.yml#L45
Le dim. 2 juil. 2023 à 17:43, Hunter Wittenborn ***@***.***>
a écrit :
… You're right, 1.70.0 is quite recent @mackwic <https://github.com/mackwic>.
I was looking at other solutions for fixing #131
<#131> if we did that route,
and the one crate I found is is-terminal
<https://crates.io/crates/is-terminal>. Their MSRV is 1.63 though, would
that be an acceptable version for you?
—
Reply to this email directly, view it on GitHub
<#85 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAEIIC3GEFMTBWFVX4PIUXDXOGJKBANCNFSM4QFFJ6JA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@mackwic: I looked at the 5 most popular dependents of If you're fine with the MSRV being |
Then it's settled, 1.35 it is ! :)
Le dim. 2 juil. 2023 à 18:30, Hunter Wittenborn ***@***.***>
a écrit :
… @mackwic <https://github.com/mackwic>: I looked at the 5 most popular
dependents of colored and the oldest MSRV I found was fern, which has
theirs set to 1.31 <https://github.com/daboross/fern/blob/main/Cargo.toml>.
I don't know how it's that old though because this crate uses
Option::copied
<https://doc.rust-lang.org/std/option/enum.Option.html#method.copied-1>
which only got added in 1.35.
If you're fine with the MSRV being 1.35 though, I've been able to get
that building locally just fine. What do you think?
—
Reply to this email directly, view it on GitHub
<#85 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAEIIC6OLWJXEMBOWEBCQEDXOGO3VANCNFSM4QFFJ6JA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thanks a lot for investigating that
Le dim. 2 juil. 2023 à 18:32, Thomas Wickham ***@***.***> a écrit :
… Then it's settled, 1.35 it is ! :)
Le dim. 2 juil. 2023 à 18:30, Hunter Wittenborn ***@***.***>
a écrit :
> @mackwic <https://github.com/mackwic>: I looked at the 5 most popular
> dependents of colored and the oldest MSRV I found was fern, which has
> theirs set to 1.31
> <https://github.com/daboross/fern/blob/main/Cargo.toml>. I don't know
> how it's that old though because this crate uses Option::copied
> <https://doc.rust-lang.org/std/option/enum.Option.html#method.copied-1>
> which only got added in 1.35.
>
> If you're fine with the MSRV being 1.35 though, I've been able to get
> that building locally just fine. What do you think?
>
> —
> Reply to this email directly, view it on GitHub
> <#85 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAEIIC6OLWJXEMBOWEBCQEDXOGO3VANCNFSM4QFFJ6JA>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
Sorry for the next comment, but I looked at I do think we should consider how to move away from I don't know if you'd want to treat MSRVs as a major version bump or not though, do you have any thoughts? If not I think it could be fine having a higher MSRV, but if not I don't really know how to treat keeping |
The fern issue (ref: daboross/fern#113) is discussing using this crate which has a MSRV or rust 1.49. Let's ask them what they think of it there |
Yeah that sounds good, I think using that crate might be what fixes #59 as well (I haven't looked enough into what this crate does to enable Windows support, if nothing currently I think that'd be the fix though). |
How about MSRV for More maintenance, but maybe manageable. |
See the linked PR for the planned MSRV approach. The MSRV is going to be |
I want to mention that I appreciate this thoughtful discussion taking MSRV seriously. |
It would be helpful if you could mention the MSRV for this crate and also enforce that in Travis. Thanks :)
The text was updated successfully, but these errors were encountered: