Good morning everyone! Leading up to the Rust 2018 edition release we’d like to showcase a new upcoming feature once a week to ensure it’s well tested and well vetted for the 2018 release, ensuring that everything goes smoothly at release time! Starting off this week I’d like to sound a call to arms for the module system changes in the 2018 edition!
The module system changes in 2018 can largely be summarized with:
- Imports of items from your own crate must start with
crate::
now - Paths anywhere in the crate may start with
crate::
or an external crate name (likestd::
) - Ideally, you shouldn’t even need
extern crate
any more!
The easiest way to try out this feature is to have cargo fix
update all your code for you. You can do this by following the transition guide online, or following these steps:
- Add
#![feature(rust_2018_preview)]
to your crate - Run
cargo +nightly fix --prepare-for 2018 --all-targets --all-features
- Keep running until all warnings are gone!
Afterwards be sure to run cargo doc
, try it out with the RLS, run rustfmt
to see what happens, otherwise try to stress this feature! We want to ensure that the experience of the new module system changes is as polished as possible for the 2018 release, and we can make it that way with your help!
In addition to testing our your own code and reporting bugs, we’d love to see some community-driven tutorials/documentation/podcasts about the feature! If you’re busy this week don’t worry as well, we’ll be making a call to action for a new feature next week!
If you encounter any bugs please report them on the main Rust issue tracker. Otherwise please feel free to leave feedback here as well!