-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
lint: convert incoherent_fundamental_impls into hard error #49799
lint: convert incoherent_fundamental_impls into hard error #49799
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nikomatsakis (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
This looks great, thanks! |
@bors try cc @rust-lang/infra -- gonna want a check-only crater run of this |
…s, r=<try> lint: convert incoherent_fundamental_impls into hard error implement #46205 r? @nikomatsakis
💥 Test timed out |
@bors try- r- retry clean The try build is successful. |
Crater has been started in check-only mode, though we're testing a beta improved version of Crater so this could turn out to take up to 5-6 days with restarts. |
Crater results are at: http://cargobomb-reports.s3.amazonaws.com/pr-49799/index.html. 'Blacklisted' crates (spurious failures etc) can be found here. If you see any spurious failures not on the list, please make a PR against that file. (interested observers: Crater is a tool for testing the impact of changes on the crates.io ecosystem. You can find out more at the repo if you're curious) |
I'm collecting the primary failures. Meanwhile Known issues
New
Spurious failure/success
|
@hdhoang awesome, great follow-up! I was away last week, so let me take a look. |
@hdhoang The 'known issues' were reported in the original issue or something like that? As for nalgebra and pin-api, cc @sebcrozet and @withoutboats, seems like these crates are relying on a bug ( |
OK, so, I would like to close this forwards compatibility lint, converting it into a hard error. However, I'm not psyched about breaking 131 crates. @hdhoang or @rust-lang/release, is there an easy way to understand which root crates are responsible for each failure? I'd like to see if there are a few places where we can push hard on getting a fix published in order to mitigate the impact. |
@nikomatsakis yes, there are 131 regressions. The "easiest" thing to do is to go and check all of them manually, but I see why you don't want to do that Unfortunately, there is no way at the moment to automatically do that (as far as I know). I can try writing a small tool to build a dependency graph and check where the regressed crates are when I go home though. |
the known issues were discovered in #46192 by its crater run, with elaboration by @arielb1 here #46192 (comment) all but bow already have fixes, either in later versions or an unmerged branch. A large swath is from glib or rusqlite, so we need the graph and then pinging the maintainers whose dependencies pull in those. nalgebra is the root for a bunch of regressions though, and has no fix yet. I looked at the first error from each regression txt to determine the root primary, but that wouldn't be enough enough to build an effective dep-graph to get the eco system upgraded though. |
I'm leaving this nominated to remind people to check their boxes. |
(NB, I checked @aturon's box as they are absent) |
@rfcbot reviewed Please wake up bot... :) |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
I'm going to approve since I think that FCP is very likely to complete without incident and we could always roll back if needed. |
@bors r+ |
📌 Commit 9982e7d has been approved by |
A 💯 ❤️ to @hdhoang for seeing this through! |
…s, r=nikomatsakis lint: convert incoherent_fundamental_impls into hard error *Summary for affected authors:* If your crate depends on one of the following crates, please upgrade to a newer version: - gtk-rs: upgrade to at least 0.4 - rusqlite: upgrade to at least 0.14 - nalgebra: upgrade to at least 0.15, or the last patch version of 0.14 - spade: upgrade or refresh the Cargo.lock file to use version 1.7 - imageproc: upgrade to at least 0.16 (newer versions no longer use nalgebra) implement #46205 r? @nikomatsakis
☀️ Test successful - checks-travis, status-appveyor |
This ended up being a big perf win for |
Summary for affected authors: If your crate depends on one of the following crates, please upgrade to a newer version:
implement #46205
r? @nikomatsakis