-
Notifications
You must be signed in to change notification settings - Fork 58
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
0.3.0 release #154
0.3.0 release #154
Conversation
lloydmeta
commented
Mar 23, 2019
- Bump versions
- Add to CHANGELOG.md
- Bump versions - Add to CHANGELOG.md
Since you're doing 0.3 I would suggest taking the opportunity to migrate to Rust 2018 and also raising the minimum Rust version to something that can take advantage of new improvements... :) |
Ahh, that sounds good, but it's a bit late for that since I just published :D Maybe for 0.3.1 if it isn't massively going to break things 🙂 ? |
Presumably you will need to raise the minimum Rust version which will break things? Depends on how you see things... some do not consider the rust version to be a semver matter... |
Actually, what’s involved on migrating to 2018? Maybe my Google foo isn’t strong enough but it doesn’t look like something where I set a minimum Rustc version in the manifest and try to compile and fix errors ? |
Officially there is no way to declare the minimum supported version of rustc. For many crates, "minimum supported rustc version" (or MSRV) simply refers to the oldest version that they target in CI tests (with the acknowledgement that it may incidentally compile on earlier versions, but those are allowed to break). Frunk does not do any testing on old compilers, so we probably accidentally bump the MSRV quite regularly. There was a very good discussion somewhere (I can't seem to find it right now) where I think BurntSushi originally had a strong opinion that bumping MSRV is a breaking change, then eventually came around to argue the opposite. To broadly summarize, MSRV only impacts the following:
|
Hm. Actually not sure what the best practices are for crates that have optional support for If this comment reflects the final implementation then I guess the best practice is: #![cfg_attr(not(feature = "std"), no_std)]
// no extern crate std as you would have in 2015 edition
use core::mem;
use core::fmt::Debug;
#[cfg(feature = "std")] use std::collections::HashMap; ...possibly? I might need to play around with this. |