Whilst there are no plans for a Rust 2.0, there is an interesting list of desirable breaking changes:
miniblog.
Related Posts
I really like the MELPA model of packaging directly from git. It solves the problem of forgetting to release something -- just merge a PR and you're done.
It also makes version number bumps much less important.
You could go even further in a statically typed language and also figure out when breaking changes occur.
Superb discussion of Go semantics for `for` loop variables, the challenges of breaking changes, and the tradeoffs of static analysis:
Rust 1.40 adds a feature that stops consumers matching on structs or enums exhaustively, so extending them is not a breaking change!
There's a cute todo!() macro too.