You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This expands on the approach taken in #212 bucketing packages into
rust-versions to run. If we skipped the MSRV (due to `--version-step`),
we automatically inject it. If a package's MSRV isn't within the range,
we skip it.
Benefits
- Relatively simple to implement and to explain
- We keep the number of runs to a minimum by walking in lock-step the
`--version-step`, independent of what each package' MSRV
I did have to specialize `--rust-version` vs `--version-range` to avoid
`--rust-version` range users walking more than they needed.
To keep the progress total accurate, I shifted the calculating of the
total from `determine_package_list` to after we have bucketed
everything. To make this feasible, I saved off the how many iterations
a package will have without the version range being taken into account.
As a byproduct, this fixes a bug in #212 where it didn't take the
rust-version into account when determining the total.
Fixes#199
Copy file name to clipboardExpand all lines: src/rustup.rs
+21-14
Original file line number
Diff line number
Diff line change
@@ -60,23 +60,30 @@ pub(crate) fn version_range(
60
60
ifletSome(rust_version) = rust_version {
61
61
Ok(rust_version)
62
62
}else{
63
-
letmutversion = None;
63
+
letmutlowest_msrv = None;
64
64
for pkg in packages {
65
-
let v = cx.rust_version(pkg.id);
66
-
if v.is_none() || v == version {
67
-
// no-op
68
-
}elseif version.is_none(){
69
-
version = v;
70
-
}else{
71
-
bail!("automatic detection of the lower bound of the version range is not yet supported when the minimum supported Rust version of the crates in the workspace do not match")
automatic detection of the lower bound of the version range is not yet supported when the minimum supported Rust version of the crates in the workspace do not match
1361
+
warning: skipping real, rust-version (1.65) is not in specified range (..=1.64)
1362
+
running `rustup run 1.63 cargo check` on member1 (1/5)
1363
+
running `rustup run 1.63 cargo check` on member2 (2/5)
1364
+
running `rustup run 1.64 cargo check` on member1 (3/5)
1365
+
running `rustup run 1.64 cargo check` on member2 (4/5)
1366
+
running `rustup run 1.64 cargo check` on member3 (5/5)
0 commit comments