Uh oh!
There was an error while loading. Please reload this page.
Implement public/private dependency feature - #57586
Conversation
rust-highfive
commented
Jan 14, 2019
r? @estebank (rust_highfive has picked a reviewer for you, use r? to override) |
Aaron1011
commented
Jan 14, 2019
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
This will report things used in pub, but unreachable items, e.g.
mod private_details {pubfndetails() -> PrivateDep{ ...}// Will be linted}, but that's probably okay for a start.
0cd5623 to
debceceComparerust-highfive
commented
Jan 21, 2019
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
estebank
commented
Jan 22, 2019
petrochenkov
commented
Jan 22, 2019
@estebank Otherwise, comments beside #57586 (comment) still need to be addressed. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
alexcrichton
commented
Jan 22, 2019
This is looking good to me, it is a lot smaller than I was expecting! Were there particular design questions that I should weigh in on? Or is it just technical details? |
petrochenkov
commented
Jan 22, 2019
|
bors
commented
Jan 26, 2019
☔ The latest upstream changes (presumably #55641) made this pull request unmergeable. Please resolve the merge conflicts. |
9eda2dd to
fb74e48Comparerust-highfive
commented
Jan 29, 2019
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
d2dadee to
369faaeCompareAaron1011
commented
Feb 1, 2019
@petrochenkov: I've rebased against master. |
petrochenkov
commented
Feb 1, 2019
@bors r+ |
bors
commented
Feb 1, 2019
📌 Commit 369faae has been approved by |
bors
commented
Feb 1, 2019
Implement public/private dependency feature Implements #44663 The core implementation is done - however, there are a few issues that still need to be resolved: - [x] The `EXTERNAL_PRIVATE_DEPENDENCY` lint currently does notthing when the `public_private_dependencies` is not enabled. Should mentioning the lint (in an `allow` or `deny` attribute) be an error if the feature is not enabled? (Resolved- the feature was removed) - [x] Crates with the name `core` and `std` are always marked public, without the need to explcitily specify them on the command line. Is this what we want to do? Do we want to allow`no_std`/`no_core` crates to explicitly control this in some way? (Resolved - private crates are now explicitly specified) - [x] Should I add additional UI tests? (Resolved - added more tests) - [x] Does it make sense to be able to allow/deny the `EXTERNAL_PRIVATE_DEPENDENCY` on an individual item? (Resolved - this is implemented)
bors
commented
Feb 1, 2019
☀️ Test successful - checks-travis, status-appveyor |
Eh2406
commented
Feb 1, 2019
Grate work on getting this landed! Thank you! That is 1 of 3 major parts of the implementation for that RFC done! I am working on the cargo dependency resolution part. It is working, just exponentially slow. At any time I can make a PR (with the fuzz testing turned off) with something functional enough for someone to start working on the 3ed part. Namely the cargo front end part, adding it to the Cargo.toml, to the registry, a future flag, and passing the args to rustc. Let me know if I should make that PR. |
Aaron1011
commented
Feb 7, 2019
@Eh2406: That sounds like a good idea |
Eh2406
commented
Feb 12, 2019
PR is up rust-lang/cargo#6653 |
part of the infrastructure for public & private dependencies in the resolver This is part of my work on public & private dependencies in the resolver from #6129. As discussed there the proptest fuzzers are happy to find exponential blow up with all the back jumping strategies I have tried. So this PR does not have a back jumping strategie nor does it have the proptest fuzzers generating public dependencies. These will both need to change for the feature to stabilize. In the meantime it gives the correct results on the cases it can handle. With rust-lang/rust#57586 landed there is a lot of work to do on Cargos front end. Adding a UI for this, passing the relevant things to rustc, passing it to crates.io, passing it to cargo-metadata. This is good enough to allow that work to proceed.
Eh2406
commented
Mar 13, 2019
@Aaron1011 The PR is merged, we would love to guide you (or anyone) to doing the cargo-frontend side! |
Aaron1011
commented
Mar 20, 2019
I've started work on the cargo-frontend side. |
…petrochenkov Properly parse '--extern-private' with name and path It turns out that rust-lang#57586 didn't properly parse `--extern-private name=path`. This PR properly implements the `--extern-private` option. I've added a new `extern-private` option to `compiletest`, which causes an `--extern-private` option to be passed to the compiler with the proper path. Part of rust-lang#44663
Properly parse '--extern-private' with name and path It turns out that #57586 didn't properly parse `--extern-private name=path`. This PR properly implements the `--extern-private` option. I've added a new `extern-private` option to `compiletest`, which causes an `--extern-private` option to be passed to the compiler with the proper path. Part of #44663
Properly parse '--extern-private' with name and path It turns out that #57586 didn't properly parse `--extern-private name=path`. This PR properly implements the `--extern-private` option. I've added a new `extern-private` option to `compiletest`, which causes an `--extern-private` option to be passed to the compiler with the proper path. Part of #44663
ehuss
commented
Apr 19, 2019
@Aaron1011 Was |
Implements #44663
The core implementation is done - however, there are a few issues that still need to be resolved:
EXTERNAL_PRIVATE_DEPENDENCYlint currently does notthing when thepublic_private_dependenciesis not enabled. Should mentioning the lint (in anallowordenyattribute) be an error if the feature is not enabled? (Resolved- the feature was removed)coreandstdare always marked public, without the need to explcitily specify them on the command line. Is this what we want to do? Do we want to allowno_std/no_corecrates to explicitly control this in some way? (Resolved - private crates are now explicitly specified)EXTERNAL_PRIVATE_DEPENDENCYon an individual item? (Resolved - this is implemented)