Per SemVer, major releases are the only time when we get to remove stuff. If 1.0.0 final contains any #[deprecated]
item, we’ll be stuck with them until 2.0 (which hopefully will be in a very long time!)
Proposal: Make sure that all #[deprecated]
items in 1.0.0 are also marked #[unstable]
. This will effectively make them unavailable in beta and release builds, meaning we can remove them in some future 1.x release without breaking backward-compatibility. In terms of release process, this means back-porting a patch to beta. Then a new beta pre-release might be good.
Alternative: remove deprecated items entirely.
CC @brson