This is the weekly Edition Status Update; it contains the state of the content areas surveyed this week. This is the fourth post in this series. You can read the third post here. This week’s post should have been after the release of Preview 2. However, it will be somewhat delayed. Expect an announcement about the release soon.
Note: there has also been an important update to the Edition release schedule. We will have an extended beta period, meaning that the final release is now slated for 1.31 on December 6th.
Each content area below lists the blocking issues for the Preview 2 milestone described here, which was scheduled for 2018-08-02. We have slightly slipped on this deadline, but expect to announce it towards the end of next week. In addition, some areas highlight important news or places where contribution is needed. You can track the full issue burndown on this spreadsheet.
General note
- Please keep trying to migrate crates, the weirder the better!
- Cargo-fix is now part of Cargo proper — no separate
cargo install
step needed. - Preview 2 early next week.
WG-Embedded (@japaric)
- On track for 2018.
- The language team discussed
#[panic_implementation]
and were generally fine with the approach. - PR up for first section and outline of book.
- RFC open for teams within rust-embedded for crate maintenance (news: please read!)
- 3 issues scheduled for P2 will miss it; PRs 59, 124, 125 up this week.
- japaric assigning and moving issues to RC1.
- News
- The second edition of the embedonomicon is out! It’s being temporarily hosted at https://rust-embedded.github.io/embedonomicon/. If you have always wondered how one would go at writing a bare metal (
no_std
) application from scratch for an embedded device this book is for you! - RISCV support has landed in nightly. You can use the new
riscv32imac-unknown-none-elf
target to build programs for the HiFive1. (rustup target add ..
and thencargo build --target ..
)
- The second edition of the embedonomicon is out! It’s being temporarily hosted at https://rust-embedded.github.io/embedonomicon/. If you have always wondered how one would go at writing a bare metal (
- Help Wanted
- We are looking for macOS and Windows users to help us test the examples in the embedonomicon (you don’t need any extra hardware to run the examples!). Let us know if you run into trouble following the examples.
- If you are planning to read the embedonomicon you can help us add tests while you do so.
- Have you heard of cargo-binutils? It’s a set of tools that let you inspect binaries of any architecture! We are looking for ways to make it easier to use and you can help us by giving us feedback or by implementing path inference.
TRPL (@steveklabnik)
- Status is good. We have 0 blockers.
Edition Guide (@steveklabnik + @Centril)
- The remaining 4 blockers were knocked out this week.
- Preview 2 is on-track.
- Release Candidate: 5 blockers, the section on modules is blocked on language changes.
- We have assigned issues.
WG-CLI (@killercup)
- Clap preview release may not make it.
- One major refactor left.
- Possibly alpha release this / next week.
- We have a preview of man page generation based on clap app definitions – see this repo for a demo (based on unpublished versions of the crates).
-
assert_cli
is being rewritten:- Try out [assert_cmd](https://crates.io/crates/assert_cmd) if you want to execute your binaries and examples and assert what they do.
- Also try out [assert_fs](https://crates.io/crates/assert_fs) if you need temporary directories and assert the state of file contents in your tests.
- Human communication page should be filled in tomorrow.
- If you are interested in writing docs for how to handle signals in CLI apps please reach out to us.
-
CLI tutorial is making rapid progress.
- See these issues for sections that still need to be written and/or changed – feel free to add your own!
- You can help out with rolling reviews of the CLI book: https://github.com/rust-lang-nursery/cli-wg/pull/58.
- Some beginner issues: https://github.com/kbknapp/clap-rs/milestone/73.
Clippy (@oli-obk)
-
#[allow(clippy::foo)]
now works.
cargo generate
(@ag_dubs)
- 0.2.0 will be released soon.
- Started a list of templates that are available.
-
We would like all Working Groups to add their templates. You can find the Template List here.](https://github.com/ashleygwilliams/cargo-generate/blob/master/TEMPLATES.md)
- WG-Net and WG-embedded will likely be contributing templates.
- We want feedback from all domain WGs, since they are primary stakeholders.
- Help wanted / Good first issue:
- Development is going to go fast and we are well on track.
- Goal for now: “If you go to the CLI page, you should get funneled into some “Getting Started” guide that starts with cargo generate”. It is not a priority at the moment to have a template discovery mechanism.
WG-WASM (@fitzgen)
- 10 open issues due for 3 august (P2 + 1 day).
- Things are on track.
- fitzgen will schedule time in the next WG meeting to do some rough scheduling of things.
Lints (@alexcrichton)
- 5 issues for P2: https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3AA-edition-2018-lints+milestone%3A%22Rust+2018+Preview+2%22.
- Will punt on macro related stuff to the RC milestone.
- Alex refiled https://github.com/rust-lang/rust/issues/52679 to the Edition Guide in https://github.com/rust-lang-nursery/edition-guide/pull/70 and got it merged.
- Alex landed a fix for https://github.com/rust-lang/rust/issues/52754.
- Alex will triage issues for RC milestone.
- Important! Help test and provide feedback on `'_` lifetimes!
- News:
-
cargo fix
--``prepare-for 2018
is now known ascargo fix
--``edition
. -
cargo fix
--``edition-idioms
has now been added to handle the oldrust_2018_idioms
lint group. This should be done after migrating to the new edition. - The
rust_2018_idioms
lint group has been trimmed down to be less aggressive and have a higher signal-to-noise ratio. -
cargo fix
--``edition
will now help guide you through the process, printing warnings, and errors if the transition steps to the new edition are mixed up. It is recommended to check out the edition transition guide! -
cargo fix
now defaults to--all-targets
, fixing everything in your crate it can (including when you pass--edition
). -
cargo fix
will now only fix packages specified by-p
(or implicitly the cwd’s package), behaving the same as the rest of Cargo’s subcommand’s package selection.
-
Rustfix (@alexcrichton + @killercup)
- Rapid progress, but slow to release due to
rust-lang/rust
queue delays, especially around stable release week.
rustfmt (@nrc)
- Stabilization of tool attributes on the way.
- Style guide RFC is in Proposed FCP.
- In 1.0 Release Candidate status as of Edition Preview 2; rustfmt RC is available from cargo but not yet rustup. Please test this once it is available in rustup!
RLS (@nrc)
- PR up for final remaining issue.
- 1.0 Release Candidate coming soon. Stay tuned for an announcement! Please make sure to test it once it is available.
Editors (@nrc)
- No Preview 2 blockers!
Language Design (@aturon)
-
A PR is open to extract
impl_header_lifetime_elision
out ofin_band_lifetimes
. - We will postpone
in_band_lifetimes
for Rust 2018 and revisit later.
Networking (@aturon)
- Broad strokes after meeting on friday. Working towards consensus on https://github.com/rust-lang-nursery/wg-net/issues/24.
- Subdivided into 3 topic areas: async, embedded, and web
- Each of these has their own channel in Discord