July is ending, meaning there are only five more months left in the year!
I’ve been talking with the core and subteams about how we’d like the rest of the year to look. We’re in a decent position, but we’re going to need a lot of focus to fully bring the roadmap to fruition this year. We need to be essentially done by the end of November, leaving December for focusing on the retrospective and next year’s roadmap (and holidays etc).
Here’s what we’re planning–and I hope that this will become part of our annual roadmap cycle:
- The three month period from Sept 18 to December 17 is considered the “impl period” for the year.
- As a community, we come together during this period to focus on “implementation” work, as opposed to design/RFC work.
- The primary focus will be implementing accepted RFCs (or other established visions, e.g. the Libz Blitz) that are important for this year’s roadmap.
- “Implementation” covers all work that can result in a PR to a shipping artifact, including documentation, error messages, library API PRs, compiler work, etc.
- Ahead of the impl period, the subteams will prepare Request for Implementation (RFIs), outlining work that is planned, who plans to lead each effort, and opportunities to get involved. These will be posted on the internals forum and kept up to date wiki-style (similarly to the Libz Blitz tracker).
- This is a great opportunity to get mentored, to coordinate closely with subteam members on high impact work.
- During this time, the subteams will not plan to merge any RFCs, except if absolutely needed for implementation.
- We will also try to host related hack sessions before or after Rust Belt Rust and RustFest Zurich; more on that soon!
This plan effectively sets a deadline for design work that will contribute to this year’s roadmap, and gives us a chance to “switch gears” a bit and all push on executing the plan we’ve decided on. The core team is really excited about this chance to work together!
Here’s a rough anticipated schedule:
-
August
- Remaining planned RFCs posted:
- NLL, module system, lifetime elision improvements, coercions, string literals, …
- Cargo build system integration vision
- Your RFC here!
- Switch to new incremental compilation approach
- MIR borrowck lands (via flag)
- New rustdoc under very active development
- Rust Reach kicks off
- Generators land in nightly
- Together with error message infrastructure that’s already landed, gives us a solid
async
/await
experience on nightly
- Together with error message infrastructure that’s already landed, gives us a solid
- http 0.1 published
- Remaining planned RFCs posted:
-
September
- RLS beta starts riding the trains
- Libz Blitz official evaluations complete
- Decisions (including potential postponement) reached for all major roadmap RFCs
- 18th, the impl period kicks off
-
During impl period
- Accepted lang and Cargo RFCs implemented (major source of work)
- MIR borrowck fully working, plus other NLL support (assuming RFC lands)
- Tokio/Futures improvements, including completely new docs (Edit: removed reference to 0.2)
- Libraries taking part in the Blitz reach 1.0
- Ship 1.0 synchronous http server and client libraries, built on
http
andhyper
- Ship first edition of Rust Cookbook
- Ship first edition of Rust API Guidelines
- Revamp Cargo docs
- Revamp web sites (main site, crates.io)
- New rustdoc at parity with existing rustdoc, and starting to explore new design space
- Some pieces of the Chalk-inspired revamp of the trait system
- The new Rust book is finalized and ready for print
- Undoubtedly more! I haven’t yet fully canvassed the subteams for their plans – this is just a sketch
-
December
- Produce retrospective and blog post for the year
- RFC for next year’s roadmap
There are a couple of stretch goals for the impl period:
- Complete Chalk-inspired revamp of the trait system
- Should improve compiler performance, but also unlocks generic associated types (aka ATCs) and more.
- const generics
Most likely, neither of these will make it this year, but would be expected early next year.
As I said above, prior to the impl period actually starting, the subteams will produce a more detailed plan together with clear opportunities for mentoring and contribution.
Let me know what you think!