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

lint: convert incoherent_fundamental_impls into hard error #49799

Merged
merged 1 commit into from
May 18, 2019
Merged

lint: convert incoherent_fundamental_impls into hard error #49799

merged 1 commit into from
May 18, 2019

Conversation

hdhoang
Copy link
Contributor

@hdhoang hdhoang commented Apr 9, 2018

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

@rust-highfive
Copy link
Collaborator

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.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 9, 2018
@nikomatsakis
Copy link
Contributor

This looks great, thanks!

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Apr 10, 2018

@bors try

cc @rust-lang/infra -- gonna want a check-only crater run of this

@nikomatsakis nikomatsakis added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 10, 2018
@bors
Copy link
Contributor

bors commented Apr 10, 2018

⌛ Trying commit 70a2d80 with merge ecb60b3...

bors added a commit that referenced this pull request Apr 10, 2018
…s, r=<try>

lint: convert incoherent_fundamental_impls into hard error

implement #46205

r? @nikomatsakis
@bors
Copy link
Contributor

bors commented Apr 10, 2018

💥 Test timed out

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Apr 10, 2018
@kennytm
Copy link
Member

kennytm commented Apr 10, 2018

@bors try- r- retry clean

The try build is successful.

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 10, 2018
@kennytm kennytm added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 10, 2018
@Mark-Simulacrum
Copy link
Member

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.

@Mark-Simulacrum
Copy link
Member

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)

@hdhoang
Copy link
Contributor Author

hdhoang commented Apr 21, 2018

I'm collecting the primary failures. Meanwhile lru-disk-cache 0.2.0 with the fix is on crates.io, and that fix links to this comment with several of the primaries mentioned: #46192 (comment)

Known issues

New

Spurious failure/success

  • rspotify: 300s timeout
  • verilog: toolchain 1 had read-only filesystem

@nikomatsakis
Copy link
Contributor

@hdhoang awesome, great follow-up! I was away last week, so let me take a look.

@TimNN TimNN added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 24, 2018
@nikomatsakis
Copy link
Contributor

@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 (INCOHERENT_FUNDAMENTAL_IMPLS) that we would like to remove support for. Have you any idea how to fix those errors? (I've not looked closely)

@nikomatsakis
Copy link
Contributor

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.

@kennytm kennytm added the T-release Relevant to the release subteam, which will review and decide on the PR/issue. label Apr 26, 2018
@pietroalbini
Copy link
Member

@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 :P

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.

@hdhoang
Copy link
Contributor Author

hdhoang commented Apr 26, 2018

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.

@nikomatsakis
Copy link
Contributor

I'm leaving this nominated to remind people to check their boxes.

@nikomatsakis
Copy link
Contributor

(NB, I checked @aturon's box as they are absent)

@Centril
Copy link
Contributor

Centril commented May 16, 2019

@rfcbot reviewed

Please wake up bot... :)

@rfcbot rfcbot added final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. and removed proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. labels May 16, 2019
@rfcbot
Copy link

rfcbot commented May 16, 2019

🔔 This is now entering its final comment period, as per the review above. 🔔

@nikomatsakis
Copy link
Contributor

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.

@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented May 17, 2019

📌 Commit 9982e7d has been approved by nikomatsakis

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 17, 2019
@nikomatsakis
Copy link
Contributor

A 💯 ❤️ to @hdhoang for seeing this through!

@bors
Copy link
Contributor

bors commented May 17, 2019

⌛ Testing commit 9982e7d with merge a614cee...

bors added a commit that referenced this pull request May 17, 2019
…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
@bors
Copy link
Contributor

bors commented May 18, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: nikomatsakis
Pushing a614cee to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 18, 2019
@bors bors merged commit 9982e7d into rust-lang:master May 18, 2019
@hdhoang hdhoang deleted the 46205_deny_incoherent_fundamental_impls branch May 18, 2019 14:15
@rfcbot rfcbot added finished-final-comment-period The final comment period is finished for this PR / Issue. and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. labels May 26, 2019
@nnethercote
Copy link
Contributor

This ended up being a big perf win for packed-simd.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.