-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
refactor: put Source
trait under cargo::sources
#12527
Conversation
r? @epage (rustbot has picked a reviewer for you, use r? to override) |
3850d94
to
8da87d3
Compare
I have mixed feelings about this. Overall, our layering is a mess in that Most likely this kind of layering would involve keeping the trait where it is and having a way to inject the implementations into core. But maybe we are too far off from that to be worth designing towards? And having all source related stuff in one place could be nice? What are your thoughts @weihanglo ? |
What I was trying to do is keep the "core" types being pure types, so that other modules importing them don't need to pull in unrelated code. For example,
Not sure if it makes sense though. |
☔ The latest upstream changes (presumably #12553) made this pull request unmergeable. Please resolve the merge conflicts. |
8da87d3
to
5c4f5fa
Compare
5c4f5fa
to
381db00
Compare
☔ The latest upstream changes (presumably #12629) made this pull request unmergeable. Please resolve the merge conflicts. |
381db00
to
e575448
Compare
Eh, my main concern is how this helps us get to long term goals but those are probably far enough away that its not worth blocking this on @bors r+ |
☀️ Test successful - checks-actions |
Update cargo 14 commits in d14c85f4e6e7671673b1a1bc87231ff7164761e1..2fc85d15a542bfb610aff7682073412cf635352f 2023-09-05 22:28:10 +0000 to 2023-09-09 01:49:46 +0000 - feat: Stabilize lints (rust-lang/cargo#12648) - Ues strip_prefix for cleaner code (rust-lang/cargo#12631) - fix: don't print _TOKEN suggestion when not applicable (rust-lang/cargo#12644) - Bump cargo-credential-1password to v0.4.0 (rust-lang/cargo#12641) - refactor: put `Source` trait under `cargo::sources` (rust-lang/cargo#12527) - Error out if `cargo clean --doc` is mixed with `-p`. (rust-lang/cargo#12637) - Add wrappers around std::fs::metadata (rust-lang/cargo#12636) - Add with_stdout_unordered. (rust-lang/cargo#12635) - Fix example for creating a git project test. (rust-lang/cargo#12632) - Read/write the encoded `cargo update --precise` in the same place (rust-lang/cargo#12629) - docs(guide): Apply feedback on CI (rust-lang/cargo#12630) - fix: improve warning for both token & credential-provider (rust-lang/cargo#12626) - Skip clean up `profile.release.package."*"` (rust-lang/cargo#12624) - Add MSRV validation GitHub Action for cargo-credential (rust-lang/cargo#12623)
What does this PR try to resolve?
It feels more natural that
Source
trait is undercargo::sources
, as that module contains all built-in implementaions ofSource
trait.This PR also flattens the module path of
SourceId
.How should we test and review this PR?
Should be safe since this doesn't include any behavior change.
Additional information
This was a something in my git stash for a while when I trie extracting the real "core" types into a sane module that doesn't contain any source downloading logic.