-
Notifications
You must be signed in to change notification settings - Fork 61
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
Decide on Rust 1.18 vs 1.31 requirement #154
Comments
Please add a 👍 to this comment if you'd like SNAFU to continue supporting Rust 1.18+. |
Please add a 👍 to this comment if you'd be OK with SNAFU only supporting Rust 1.31+. |
For crates I maintain that a lot of people depend on, I try to be fairly conservative, and my rough ballpark heuristic is "lag about a year behind latest stable." I think 9 months is just fine personally. |
Faced with a similar situation earlier, I often solve it by asking the question "is there any language feature from those versions (1.18 to 1.30) that you depend on? if no, bump + major release |
@Dylan-DPC I've read your comment a few times over the last few hours, but I'm still confused. I'll try restating this specific problem with the hopes that I've communicated something poorly. SNAFU has a dependency on syn/quote/proc-macro2 (which I'll shorten to just "syn" for the rest of this comment). Those dependencies have recently released version 1.0, and chosen to only guarantee compatibility with Rust 1.31 and do not compile on Rust 1.18. The previous versions had compatibility back to Rust 1.15, but SNAFU itself required Rust 1.18. SNAFU does nothing and stays on the current version of synPro:
Con:
SNAFU upgrades to syn 1.0Pro:
Con:
Implementation detailsI'm in the camp that believes that bumping the minimum Rust version corresponds to a semver-incompatible version change. If we upgraded to syn 1.0 today, then our minimum Rust version is changed, and we would need to release SNAFU 0.5 (since we haven't yet hit 1.0). That version number bump is dependent on when/if we do such a change, of course.
No, there are no language features between Rust 1.18 and 1.30 that SNAFU requires.
I don't follow why the answer "no" would mean this. What would the answer "yes" mean? |
Thanks everyone! Since there are no dissenting opinions, I see no reason not to upgrade. |
The new minimum supported Rust version will be 1.31. This removes the rust_1_30 feature, which was used to opt into better support for higher-than-minimum versions of Rust; it's no longer needed because there we have no features that require beyond Rust 1.31. Code that was conditional on rust_1_30 is now required. Compatibility tests for 1.30 were replaced with 1.31. Background: shepmaster#154
The new minimum supported Rust version will be 1.31. This removes the rust_1_30 feature, which was used to opt into better support for higher-than-minimum versions of Rust; it's no longer needed because there we have no features that require beyond Rust 1.31. Code that was conditional on rust_1_30 is now required. Compatibility tests for 1.30 were replaced with 1.31. Background: shepmaster#154
The new minimum supported Rust version will be 1.31. This removes the rust_1_30 feature, which was used to opt into better support for higher-than-minimum versions of Rust; it's no longer needed because there we have no features that require beyond Rust 1.31. Code that was conditional on rust_1_30 is now required. Compatibility tests for 1.30 were replaced with 1.31. Background: shepmaster#154
syn/quote/proc-macro2 just updated to version 1.0 and now require Rust 1.31+. Upgrading would break our version requirements.
I chose the current 1.18 as basically "how early could we go without being terrible". My idea was to support as many Rust versions as possible in order to allow a broad range of projects to use SNAFU.
It may not be the case that anyone cares about these older versions, though. Rust 1.31 is nearly 9 months old, and is 5 stable releases behind. I have a gut feeling that most people track stable or a few stable versions behind. 1.31 also has the notable benefit of being the release of Rust 2018 and NLL, things that people hotly anticipated and wanted.
As a user of SNAFU, I'd appreciate it if you'd vote on one of the following comments to provide feedback on what Rust versions we should support.
The text was updated successfully, but these errors were encountered: