We should document which kind of changes are breaking and cannot be made to stable APIs. E.g. changing a function from `fn(i32)` to `fn(impl Into<i32>)` can be breaking, but relaxing a `<T: Ord>` to `<T: PartialOrd>` might be fine (maybe?).
Activity
camelid commentedon Jan 28, 2021
And also, what level of breakage is acceptable. E.g., if a Crater run shows very few regressions, it's sometimes acceptable to make a breaking change.
KodrAus commentedon Jan 31, 2021
We've got a section with some initial content here: https://github.com/rust-lang/std-dev-guide/tree/master/src/code-considerations/breaking-changes
There's still lots we could expand there!
KodrAus commentedon Jan 31, 2021
I think it's usually inference that causes us the most pain in all kinds of changes that add trait impls and relax bounds.