Skip to content

Edition 2021 and beyond#2966

Closed
nikomatsakis wants to merge 16 commits intorust-lang:masterfrom
nikomatsakis:edition-2021-and-beyond
Closed

Edition 2021 and beyond#2966
nikomatsakis wants to merge 16 commits intorust-lang:masterfrom
nikomatsakis:edition-2021-and-beyond

Conversation

@nikomatsakis
Copy link
Copy Markdown
Contributor

@nikomatsakis nikomatsakis commented Jul 30, 2020

This RFC proposes revised rules and plans for editions:

  • Announce plans for a Rust 2021 Edition, and for a regular cadence of editions every 3 years thereafter.
    • We will roll out an edition regardless of whether there are breaking changes.
  • Unlike Rust 2018, we will avoid using editions as a "deadline" to tie together high-priority projects.
    • Instead, we embrace the train model, but editions are effectively a "somewhat bigger release", giving us an opportunity to give an overview of all the work that has landed over the previous three years.
  • We specify a cadence for Edition lints.
    • "Edition idiom" lints for Edition N will warn for editions before N, and become "deny by default" in Edition N.
    • Since it would be disruptive to introduce deny-by-default lints for Rust 2018 now, the Rust 2018 lints are repurposed into Rust 2021 Edition lints.
  • We specify a policy on reserving keywords and other prospective changes.
    • In short, reserving keywords is allowed only as part of an active project group.

Co-authored with @steveklabnik.

Rendered view

Pending edits

  • Clarify the lint policy (context).
  • Clarify that changing edition is not considered a "major semver" change except insofar as it implies that a newer version of rustc is needed. (context)

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-core Relevant to the core team, which will review and decide on the RFC.

Projects

None yet

Development

Successfully merging this pull request may close these issues.