Skip to content

Commit eb45071

Browse files
committed
feat: Stabilize MSRV-aware resolver config
This includes - `cargo generate-lockfile --ignore-rust-version` - `cargo update --ignore-rust-version` This does not include - `edition = "2024"` - `resolver = "3"`
1 parent 42de00c commit eb45071

File tree

14 files changed

+10
-217
lines changed

14 files changed

+10
-217
lines changed

src/bin/cargo/commands/generate_lockfile.rs

+1-11
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,13 @@ pub fn cli() -> Command {
88
.arg_silent_suggestion()
99
.arg_manifest_path()
1010
.arg_lockfile_path()
11-
.arg_ignore_rust_version_with_help(
12-
"Ignore `rust-version` specification in packages (unstable)",
13-
)
11+
.arg_ignore_rust_version_with_help("Ignore `rust-version` specification in packages")
1412
.after_help(color_print::cstr!(
1513
"Run `<cyan,bold>cargo help generate-lockfile</>` for more detailed information.\n"
1614
))
1715
}
1816

1917
pub fn exec(gctx: &mut GlobalContext, args: &ArgMatches) -> CliResult {
20-
if args.honor_rust_version().is_some() {
21-
gctx.cli_unstable().fail_if_stable_opt_custom_z(
22-
"--ignore-rust-version",
23-
9930,
24-
"msrv-policy",
25-
gctx.cli_unstable().msrv_policy,
26-
)?;
27-
}
2818
let ws = args.workspace(gctx)?;
2919
ops::generate_lockfile(&ws)?;
3020
Ok(())

src/bin/cargo/commands/update.rs

+1-12
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,13 @@ pub fn cli() -> Command {
5353
)
5454
.arg_manifest_path()
5555
.arg_lockfile_path()
56-
.arg_ignore_rust_version_with_help(
57-
"Ignore `rust-version` specification in packages (unstable)",
58-
)
56+
.arg_ignore_rust_version_with_help("Ignore `rust-version` specification in packages")
5957
.after_help(color_print::cstr!(
6058
"Run `<cyan,bold>cargo help update</>` for more detailed information.\n"
6159
))
6260
}
6361

6462
pub fn exec(gctx: &mut GlobalContext, args: &ArgMatches) -> CliResult {
65-
if args.honor_rust_version().is_some() {
66-
gctx.cli_unstable().fail_if_stable_opt_custom_z(
67-
"--ignore-rust-version",
68-
9930,
69-
"msrv-policy",
70-
gctx.cli_unstable().msrv_policy,
71-
)?;
72-
}
73-
7463
let mut ws = args.workspace(gctx)?;
7564

7665
if args.is_present_with_zero_values("package") {

src/cargo/core/workspace.rs

+6-25
Original file line numberDiff line numberDiff line change
@@ -306,31 +306,12 @@ impl<'gctx> Workspace<'gctx> {
306306
}
307307
}
308308
}
309-
match self.gctx().get::<CargoResolverConfig>("resolver") {
310-
Ok(CargoResolverConfig {
311-
incompatible_rust_versions: Some(incompatible_rust_versions),
312-
}) => {
313-
if self.gctx().cli_unstable().msrv_policy {
314-
self.resolve_honors_rust_version =
315-
incompatible_rust_versions == IncompatibleRustVersions::Fallback;
316-
} else {
317-
self.gctx()
318-
.shell()
319-
.warn("ignoring `resolver` config table without `-Zmsrv-policy`")?;
320-
}
321-
}
322-
Ok(CargoResolverConfig {
323-
incompatible_rust_versions: None,
324-
}) => {}
325-
Err(err) => {
326-
if self.gctx().cli_unstable().msrv_policy {
327-
return Err(err);
328-
} else {
329-
self.gctx()
330-
.shell()
331-
.warn("ignoring `resolver` config table without `-Zmsrv-policy`")?;
332-
}
333-
}
309+
if let CargoResolverConfig {
310+
incompatible_rust_versions: Some(incompatible_rust_versions),
311+
} = self.gctx().get::<CargoResolverConfig>("resolver")?
312+
{
313+
self.resolve_honors_rust_version =
314+
incompatible_rust_versions == IncompatibleRustVersions::Fallback;
334315
}
335316

336317
Ok(())

tests/testsuite/cargo_add/rust_version_ignore/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ fn case() {
2020
let cwd = &project_root;
2121

2222
snapbox::cmd::Command::cargo_ui()
23-
.arg("-Zmsrv-policy")
2423
.arg("add")
2524
.arg("--ignore-rust-version")
2625
.arg_line("rust-version-user")
2726
.current_dir(cwd)
2827
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
29-
.masquerade_as_nightly_cargo(&["msrv-policy"])
3028
.assert()
3129
.code(0)
3230
.stdout_eq(str![""])

tests/testsuite/cargo_add/rust_version_incompatible/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@ fn case() {
2323
let cwd = &project_root;
2424

2525
snapbox::cmd::Command::cargo_ui()
26-
.arg("-Zmsrv-policy")
2726
.arg("add")
2827
.arg_line("rust-version-user")
2928
.current_dir(cwd)
3029
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
31-
.masquerade_as_nightly_cargo(&["msrv-policy"])
3230
.assert()
3331
.failure()
3432
.stdout_eq(str![""])

tests/testsuite/cargo_add/rust_version_latest/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ fn case() {
2020
let cwd = &project_root;
2121

2222
snapbox::cmd::Command::cargo_ui()
23-
.arg("-Zmsrv-policy")
2423
.arg("add")
2524
.arg_line("rust-version-user")
2625
.current_dir(cwd)
2726
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
28-
.masquerade_as_nightly_cargo(&["msrv-policy"])
2927
.assert()
3028
.success()
3129
.stdout_eq(str![""])

tests/testsuite/cargo_add/rust_version_older/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ fn case() {
2020
let cwd = &project_root;
2121

2222
snapbox::cmd::Command::cargo_ui()
23-
.arg("-Zmsrv-policy")
2423
.arg("add")
2524
.arg_line("rust-version-user")
2625
.current_dir(cwd)
2726
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
28-
.masquerade_as_nightly_cargo(&["msrv-policy"])
2927
.assert()
3028
.success()
3129
.stdout_eq(str![""])

tests/testsuite/cargo_add/rustc_ignore/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ fn case() {
2323
let cwd = &project_root;
2424

2525
snapbox::cmd::Command::cargo_ui()
26-
.arg("-Zmsrv-policy")
2726
.arg("add")
2827
.arg("--ignore-rust-version")
2928
.arg_line("rust-version-user")
3029
.current_dir(cwd)
3130
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
32-
.masquerade_as_nightly_cargo(&["msrv-policy"])
3331
.assert()
3432
.code(0)
3533
.stdout_eq(str![""])

tests/testsuite/cargo_add/rustc_incompatible/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ fn case() {
1717
let cwd = &project_root;
1818

1919
snapbox::cmd::Command::cargo_ui()
20-
.arg("-Zmsrv-policy")
2120
.arg("add")
2221
.arg_line("rust-version-user")
2322
.current_dir(cwd)
2423
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
25-
.masquerade_as_nightly_cargo(&["msrv-policy"])
2624
.assert()
2725
.failure()
2826
.stdout_eq(str![""])

tests/testsuite/cargo_add/rustc_latest/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@ fn case() {
2323
let cwd = &project_root;
2424

2525
snapbox::cmd::Command::cargo_ui()
26-
.arg("-Zmsrv-policy")
2726
.arg("add")
2827
.arg_line("rust-version-user")
2928
.current_dir(cwd)
3029
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
31-
.masquerade_as_nightly_cargo(&["msrv-policy"])
3230
.assert()
3331
.success()
3432
.stdout_eq(str![""])

tests/testsuite/cargo_add/rustc_older/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@ fn case() {
2323
let cwd = &project_root;
2424

2525
snapbox::cmd::Command::cargo_ui()
26-
.arg("-Zmsrv-policy")
2726
.arg("add")
2827
.arg_line("rust-version-user")
2928
.current_dir(cwd)
3029
.env("CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS", "fallback")
31-
.masquerade_as_nightly_cargo(&["msrv-policy"])
3230
.assert()
3331
.success()
3432
.stdout_eq(str![""])

tests/testsuite/cargo_generate_lockfile/help/stdout.term.svg

+1-1
Loading

tests/testsuite/cargo_update/help/stdout.term.svg

+1-1
Loading

0 commit comments

Comments
 (0)