Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document which kind of changes are breaking #3

Open
m-ou-se opened this issue Jan 25, 2021 · 3 comments
Open

Document which kind of changes are breaking #3

m-ou-se opened this issue Jan 25, 2021 · 3 comments

Comments

@m-ou-se
Copy link
Member

m-ou-se commented Jan 25, 2021

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?).

@camelid
Copy link
Member

camelid commented 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
Copy link
Contributor

KodrAus commented 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
Copy link
Contributor

KodrAus commented 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants