-
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
Read/write the encoded cargo update --precise
in the same place
#12629
Conversation
r? @ehuss (rustbot has picked a reviewer for you, use r? to override) |
src/cargo/core/source/source_id.rs
Outdated
/// If so return the version currently in the lock file and the version to be updated to. | ||
/// If specified, our own source will have a precise version listed of the form | ||
// `<pkg>=<p_req>-><f_req>` where `<pkg>` is the name of a crate on | ||
// this source, `<p_req>` is the version installed and `<f_req> is the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<f_req>
doesn't have a closing back tick
src/cargo/core/source/source_id.rs
Outdated
/// Check if the precise data field stores information for this `name` | ||
/// from a call to [with_precise_registry_version]. | ||
/// If so return the version currently in the lock file and the version to be updated to. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: a newline between short description and the rest
src/cargo/core/source/source_id.rs
Outdated
.filter(|p| p.starts_with(name) && p[name.len()..].starts_with('=')) | ||
.map(|p| { | ||
let (current, requested) = p[name.len() + 1..].split_once("->").unwrap(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: this could be simplified
.filter_map(|p|p.strip_prefix(name)?.strip_prefix('='))`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All minor so feel free to r= me when you feel its ready
4d3e007
to
6d56ac8
Compare
6d56ac8
to
4d63fbc
Compare
@bors r=epage |
☀️ Test successful - checks-actions |
Ues strip_prefix for cleaner code ### What does this PR try to resolve? In #12629 (review) Ed pointed out how much cleaner the code can be using `strip_prefix`, so I found a bunch more places where we should be using it. ### How should we test and review this PR? Internal refactor and test still pass.
Ues strip_prefix for cleaner code ### What does this PR try to resolve? In #12629 (review) Ed pointed out how much cleaner the code can be using `strip_prefix`, so I found a bunch more places where we should be using it. ### How should we test and review this PR? Internal refactor and test still pass.
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?
There's a stringly typed interface between
cargo/src/cargo/ops/cargo_generate_lockfile.rs
Line 105 in de7537e
cargo/src/cargo/sources/registry/index.rs
Line 587 in de7537e
As far as I can tell, anyone could just create this internally meaningful
structurestring by passing it on the command line.This should get cleaned up, for now by moving the encoding and decoding in to the same file.
How should we test and review this PR?
Internal refactor and test still pass.
Additional information
I am hoping that in the redesign of
cargo update
we can come up with a better design for smuggling this data from the API all the way to querying the registry. It seems like locking the dependency to the selected version would be conceptually simpler, or using the patch system, or something.