From ac9212f72f7dd9eed10d181aa56ba48e0e8d107e Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 26 Aug 2023 09:49:49 -0700 Subject: [PATCH] Stabilize --keep-going --- src/cargo/util/command_prelude.rs | 7 +---- src/doc/man/cargo-bench.md | 9 +++++- src/doc/man/cargo-test.md | 8 +++++ src/doc/man/generated_txt/cargo-bench.txt | 12 ++++--- src/doc/man/generated_txt/cargo-build.txt | 8 ++++- src/doc/man/generated_txt/cargo-check.txt | 8 ++++- src/doc/man/generated_txt/cargo-doc.txt | 8 ++++- src/doc/man/generated_txt/cargo-fix.txt | 8 ++++- src/doc/man/generated_txt/cargo-install.txt | 8 ++++- src/doc/man/generated_txt/cargo-package.txt | 8 ++++- src/doc/man/generated_txt/cargo-publish.txt | 8 ++++- src/doc/man/generated_txt/cargo-run.txt | 8 ++++- src/doc/man/generated_txt/cargo-rustc.txt | 8 ++++- src/doc/man/generated_txt/cargo-rustdoc.txt | 8 ++++- src/doc/man/generated_txt/cargo-test.txt | 8 +++++ src/doc/man/includes/options-keep-going.md | 9 ++++-- src/doc/src/commands/cargo-bench.md | 12 ++++--- src/doc/src/commands/cargo-build.md | 8 +++-- src/doc/src/commands/cargo-check.md | 8 +++-- src/doc/src/commands/cargo-doc.md | 8 +++-- src/doc/src/commands/cargo-fix.md | 8 +++-- src/doc/src/commands/cargo-install.md | 8 +++-- src/doc/src/commands/cargo-package.md | 8 +++-- src/doc/src/commands/cargo-publish.md | 8 +++-- src/doc/src/commands/cargo-run.md | 8 +++-- src/doc/src/commands/cargo-rustc.md | 8 +++-- src/doc/src/commands/cargo-rustdoc.md | 8 +++-- src/doc/src/commands/cargo-test.md | 8 +++++ src/doc/src/reference/unstable.md | 31 ------------------- src/etc/man/cargo-bench.1 | 13 +++++--- src/etc/man/cargo-build.1 | 9 ++++-- src/etc/man/cargo-check.1 | 9 ++++-- src/etc/man/cargo-doc.1 | 9 ++++-- src/etc/man/cargo-fix.1 | 9 ++++-- src/etc/man/cargo-install.1 | 9 ++++-- src/etc/man/cargo-package.1 | 9 ++++-- src/etc/man/cargo-publish.1 | 9 ++++-- src/etc/man/cargo-run.1 | 9 ++++-- src/etc/man/cargo-rustc.1 | 9 ++++-- src/etc/man/cargo-rustdoc.1 | 9 ++++-- src/etc/man/cargo-test.1 | 12 +++++++ tests/testsuite/cargo_build/help/stdout.log | 2 +- tests/testsuite/cargo_check/help/stdout.log | 2 +- tests/testsuite/cargo_doc/help/stdout.log | 2 +- tests/testsuite/cargo_fix/help/stdout.log | 2 +- tests/testsuite/cargo_install/help/stdout.log | 2 +- tests/testsuite/cargo_package/help/stdout.log | 2 +- tests/testsuite/cargo_publish/help/stdout.log | 2 +- tests/testsuite/cargo_run/help/stdout.log | 2 +- tests/testsuite/cargo_rustc/help/stdout.log | 2 +- tests/testsuite/cargo_rustdoc/help/stdout.log | 2 +- tests/testsuite/check.rs | 3 +- 52 files changed, 287 insertions(+), 115 deletions(-) diff --git a/src/cargo/util/command_prelude.rs b/src/cargo/util/command_prelude.rs index 84545ae998e5..ed4706538643 100644 --- a/src/cargo/util/command_prelude.rs +++ b/src/cargo/util/command_prelude.rs @@ -87,7 +87,7 @@ pub trait CommandExt: Sized { self.arg_jobs()._arg( flag( "keep-going", - "Do not abort the build as soon as there is an error (unstable)", + "Do not abort the build as soon as there is an error", ) .help_heading(heading::COMPILATION_OPTIONS), ) @@ -627,11 +627,6 @@ pub trait ArgMatchesExt { } } - if build_config.keep_going { - config - .cli_unstable() - .fail_if_stable_opt("--keep-going", 10496)?; - } if build_config.build_plan { config .cli_unstable() diff --git a/src/doc/man/cargo-bench.md b/src/doc/man/cargo-bench.md index 18771c3d21e4..b401e9d1c5da 100644 --- a/src/doc/man/cargo-bench.md +++ b/src/doc/man/cargo-bench.md @@ -157,9 +157,16 @@ Rust test harness runs benchmarks serially in a single thread. {{#options}} {{> options-jobs }} -{{> options-keep-going }} {{/options}} +While `cargo bench` involves compilation, it does not provide a `--keep-going` +flag. Use `--no-fail-fast` to run as many benchmarks as possible without +stopping at the first failure. To "compile" as many benchmarks as possible, use +`--benches` to build benchmark binaries separately. For example: + + cargo build --benches --release --keep-going + cargo bench --no-fail-fast + {{> section-environment }} {{> section-exit-status }} diff --git a/src/doc/man/cargo-test.md b/src/doc/man/cargo-test.md index cba98b20daf9..9c818d9c6868 100644 --- a/src/doc/man/cargo-test.md +++ b/src/doc/man/cargo-test.md @@ -190,6 +190,14 @@ includes an option to control the number of threads used: {{/options}} +While `cargo test` involves compilation, it does not provide a `--keep-going` +flag. Use `--no-fail-fast` to run as many tests as possible without stopping at +the first failure. To "compile" as many tests as possible, use `--tests` to +build test binaries separately. For example: + + cargo build --tests --keep-going + cargo test --tests --no-fail-fast + {{> section-environment }} {{> section-exit-status }} diff --git a/src/doc/man/generated_txt/cargo-bench.txt b/src/doc/man/generated_txt/cargo-bench.txt index 9610b72f0409..796fbd11b552 100644 --- a/src/doc/man/generated_txt/cargo-bench.txt +++ b/src/doc/man/generated_txt/cargo-bench.txt @@ -413,10 +413,14 @@ OPTIONS If a string default is provided, it sets the value back to defaults. Should not be 0. - --keep-going - Build as many crates in the dependency graph as possible, rather - than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + While cargo bench involves compilation, it does not provide a + --keep-going flag. Use --no-fail-fast to run as many benchmarks as + possible without stopping at the first failure. To “compile” as many + benchmarks as possible, use --benches to build benchmark binaries + separately. For example: + + cargo build --benches --release --keep-going + cargo bench --no-fail-fast ENVIRONMENT See the reference diff --git a/src/doc/man/generated_txt/cargo-build.txt b/src/doc/man/generated_txt/cargo-build.txt index e396410d3291..8583a2b8f7d0 100644 --- a/src/doc/man/generated_txt/cargo-build.txt +++ b/src/doc/man/generated_txt/cargo-build.txt @@ -347,7 +347,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. --future-incompat-report Displays a future-incompat report for any future-incompatible diff --git a/src/doc/man/generated_txt/cargo-check.txt b/src/doc/man/generated_txt/cargo-check.txt index 9814f445d2d6..b447455eec54 100644 --- a/src/doc/man/generated_txt/cargo-check.txt +++ b/src/doc/man/generated_txt/cargo-check.txt @@ -332,7 +332,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. --future-incompat-report Displays a future-incompat report for any future-incompatible diff --git a/src/doc/man/generated_txt/cargo-doc.txt b/src/doc/man/generated_txt/cargo-doc.txt index 09f9b68c975a..0cc8900475f3 100644 --- a/src/doc/man/generated_txt/cargo-doc.txt +++ b/src/doc/man/generated_txt/cargo-doc.txt @@ -303,7 +303,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. ENVIRONMENT See the reference diff --git a/src/doc/man/generated_txt/cargo-fix.txt b/src/doc/man/generated_txt/cargo-fix.txt index b83c360eb3df..d8c99ca6399d 100644 --- a/src/doc/man/generated_txt/cargo-fix.txt +++ b/src/doc/man/generated_txt/cargo-fix.txt @@ -405,7 +405,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. ENVIRONMENT See the reference diff --git a/src/doc/man/generated_txt/cargo-install.txt b/src/doc/man/generated_txt/cargo-install.txt index a5b696111c87..1323dcc0f471 100644 --- a/src/doc/man/generated_txt/cargo-install.txt +++ b/src/doc/man/generated_txt/cargo-install.txt @@ -280,7 +280,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. Display Options -v, --verbose diff --git a/src/doc/man/generated_txt/cargo-package.txt b/src/doc/man/generated_txt/cargo-package.txt index 1201f3d07e05..939247d01499 100644 --- a/src/doc/man/generated_txt/cargo-package.txt +++ b/src/doc/man/generated_txt/cargo-package.txt @@ -197,7 +197,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. Display Options -v, --verbose diff --git a/src/doc/man/generated_txt/cargo-publish.txt b/src/doc/man/generated_txt/cargo-publish.txt index e8850e3d417c..3e094bd454a7 100644 --- a/src/doc/man/generated_txt/cargo-publish.txt +++ b/src/doc/man/generated_txt/cargo-publish.txt @@ -163,7 +163,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. Display Options -v, --verbose diff --git a/src/doc/man/generated_txt/cargo-run.txt b/src/doc/man/generated_txt/cargo-run.txt index 5fcfe66b4227..0a50bb2480d9 100644 --- a/src/doc/man/generated_txt/cargo-run.txt +++ b/src/doc/man/generated_txt/cargo-run.txt @@ -251,7 +251,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. ENVIRONMENT See the reference diff --git a/src/doc/man/generated_txt/cargo-rustc.txt b/src/doc/man/generated_txt/cargo-rustc.txt index 7a70c5363efd..756ba95a5351 100644 --- a/src/doc/man/generated_txt/cargo-rustc.txt +++ b/src/doc/man/generated_txt/cargo-rustc.txt @@ -349,7 +349,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. --future-incompat-report Displays a future-incompat report for any future-incompatible diff --git a/src/doc/man/generated_txt/cargo-rustdoc.txt b/src/doc/man/generated_txt/cargo-rustdoc.txt index 4db66b3a8f62..bf569188edf0 100644 --- a/src/doc/man/generated_txt/cargo-rustdoc.txt +++ b/src/doc/man/generated_txt/cargo-rustdoc.txt @@ -319,7 +319,13 @@ OPTIONS --keep-going Build as many crates in the dependency graph as possible, rather than aborting the build on the first one that fails to build. - Unstable, requires -Zunstable-options. + + For example if the current package depends on dependencies fails and + works, one of which fails to build, cargo check -j1 may or may not + build the one that succeeds (depending on which one of the two + builds Cargo picked to run first), whereas cargo check -j1 + --keep-going would definitely run both builds, even if the one run + first fails. ENVIRONMENT See the reference diff --git a/src/doc/man/generated_txt/cargo-test.txt b/src/doc/man/generated_txt/cargo-test.txt index dc32bdbf7fe0..b992d0d2f620 100644 --- a/src/doc/man/generated_txt/cargo-test.txt +++ b/src/doc/man/generated_txt/cargo-test.txt @@ -448,6 +448,14 @@ OPTIONS See cargo-report(1) + While cargo test involves compilation, it does not provide a + --keep-going flag. Use --no-fail-fast to run as many tests as possible + without stopping at the first failure. To “compile” as many tests as + possible, use --tests to build test binaries separately. For example: + + cargo build --tests --keep-going + cargo test --tests --no-fail-fast + ENVIRONMENT See the reference diff --git a/src/doc/man/includes/options-keep-going.md b/src/doc/man/includes/options-keep-going.md index 034181c0e550..ad1177a7c93b 100644 --- a/src/doc/man/includes/options-keep-going.md +++ b/src/doc/man/includes/options-keep-going.md @@ -1,5 +1,10 @@ {{#option "`--keep-going`"}} Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -`-Zunstable-options`. +the build on the first one that fails to build. + +For example if the current package depends on dependencies `fails` and `works`, +one of which fails to build, `cargo check -j1` may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas `cargo check -j1 --keep-going` would definitely run both builds, even if +the one run first fails. {{/option}} diff --git a/src/doc/src/commands/cargo-bench.md b/src/doc/src/commands/cargo-bench.md index 70ae187a779f..e7f92ea65132 100644 --- a/src/doc/src/commands/cargo-bench.md +++ b/src/doc/src/commands/cargo-bench.md @@ -481,13 +481,15 @@ a string default is provided, it sets the value back to defaults. Should not be 0. -
--keep-going
-
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+ +While `cargo bench` involves compilation, it does not provide a `--keep-going` +flag. Use `--no-fail-fast` to run as many benchmarks as possible without +stopping at the first failure. To "compile" as many benchmarks as possible, use +`--benches` to build benchmark binaries separately. For example: - + cargo build --benches --release --keep-going + cargo bench --no-fail-fast ## ENVIRONMENT diff --git a/src/doc/src/commands/cargo-build.md b/src/doc/src/commands/cargo-build.md index 525ab14e5367..fee7f20fefa8 100644 --- a/src/doc/src/commands/cargo-build.md +++ b/src/doc/src/commands/cargo-build.md @@ -409,8 +409,12 @@ Should not be 0.
--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails.

--future-incompat-report
diff --git a/src/doc/src/commands/cargo-check.md b/src/doc/src/commands/cargo-check.md index 4dbc97ad8fc2..7ba2ec6fc085 100644 --- a/src/doc/src/commands/cargo-check.md +++ b/src/doc/src/commands/cargo-check.md @@ -390,8 +390,12 @@ Should not be 0.
--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails.

--future-incompat-report
diff --git a/src/doc/src/commands/cargo-doc.md b/src/doc/src/commands/cargo-doc.md index d68bb84e7d89..0dd4a9ff67d3 100644 --- a/src/doc/src/commands/cargo-doc.md +++ b/src/doc/src/commands/cargo-doc.md @@ -364,8 +364,12 @@ Should not be 0.
--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-fix.md b/src/doc/src/commands/cargo-fix.md index 2bf83fc2eacb..f2f75a51c202 100644 --- a/src/doc/src/commands/cargo-fix.md +++ b/src/doc/src/commands/cargo-fix.md @@ -470,8 +470,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-install.md b/src/doc/src/commands/cargo-install.md index af8efcae89e1..9926f58dc536 100644 --- a/src/doc/src/commands/cargo-install.md +++ b/src/doc/src/commands/cargo-install.md @@ -319,8 +319,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-package.md b/src/doc/src/commands/cargo-package.md index f9c7c552ddfa..ca98308edb81 100644 --- a/src/doc/src/commands/cargo-package.md +++ b/src/doc/src/commands/cargo-package.md @@ -234,8 +234,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-publish.md b/src/doc/src/commands/cargo-publish.md index fe37d9f97741..b3e89af5fd82 100644 --- a/src/doc/src/commands/cargo-publish.md +++ b/src/doc/src/commands/cargo-publish.md @@ -200,8 +200,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-run.md b/src/doc/src/commands/cargo-run.md index bd3e4724a4bb..7098514f7afd 100644 --- a/src/doc/src/commands/cargo-run.md +++ b/src/doc/src/commands/cargo-run.md @@ -306,8 +306,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-rustc.md b/src/doc/src/commands/cargo-rustc.md index 2147d617cd51..cd108b3fe686 100644 --- a/src/doc/src/commands/cargo-rustc.md +++ b/src/doc/src/commands/cargo-rustc.md @@ -403,8 +403,12 @@ Should not be 0.

--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails.

--future-incompat-report
diff --git a/src/doc/src/commands/cargo-rustdoc.md b/src/doc/src/commands/cargo-rustdoc.md index 22c1c8322bb8..162f67012d01 100644 --- a/src/doc/src/commands/cargo-rustdoc.md +++ b/src/doc/src/commands/cargo-rustdoc.md @@ -383,8 +383,12 @@ Should not be 0.
--keep-going
Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires --Zunstable-options.
+the build on the first one that fails to build.

+

For example if the current package depends on dependencies fails and works, +one of which fails to build, cargo check -j1 may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas cargo check -j1 --keep-going would definitely run both builds, even if +the one run first fails. diff --git a/src/doc/src/commands/cargo-test.md b/src/doc/src/commands/cargo-test.md index bcf46d601916..286149dde599 100644 --- a/src/doc/src/commands/cargo-test.md +++ b/src/doc/src/commands/cargo-test.md @@ -524,6 +524,14 @@ produced during execution of this command

+While `cargo test` involves compilation, it does not provide a `--keep-going` +flag. Use `--no-fail-fast` to run as many tests as possible without stopping at +the first failure. To "compile" as many tests as possible, use `--tests` to +build test binaries separately. For example: + + cargo build --tests --keep-going + cargo test --tests --no-fail-fast + ## ENVIRONMENT See [the reference](../reference/environment-variables.html) for diff --git a/src/doc/src/reference/unstable.md b/src/doc/src/reference/unstable.md index f3a8f162974b..d784867c9b5a 100644 --- a/src/doc/src/reference/unstable.md +++ b/src/doc/src/reference/unstable.md @@ -82,7 +82,6 @@ For the latest nightly, see the [nightly version] of this page. * [build-std-features](#build-std-features) --- Sets features to use with the standard library. * [binary-dep-depinfo](#binary-dep-depinfo) --- Causes the dep-info file to track binary dependencies. * [panic-abort-tests](#panic-abort-tests) --- Allows running tests with the "abort" panic strategy. - * [keep-going](#keep-going) --- Build as much as possible rather than aborting on the first error. * [check-cfg](#check-cfg) --- Compile-time validation of `cfg` expressions. * [host-config](#host-config) --- Allows setting `[target]`-like configuration settings for host build targets. * [target-applies-to-host](#target-applies-to-host) --- Alters whether certain flags will be passed to host build targets. @@ -429,36 +428,6 @@ like to stabilize it somehow! [rust-lang/rust#64158]: https://github.com/rust-lang/rust/pull/64158 -### keep-going -* Tracking Issue: [#10496](https://github.com/rust-lang/cargo/issues/10496) - -`cargo build --keep-going` (and similarly for every command involving compilation, like `check` and `doc`) -will build as many crates in the dependency graph as possible, -rather than aborting the build at the first one that fails to build. - -For example if the current package depends on dependencies `fails` and `works`, -one of which fails to build, `cargo check -j1` may or may not build the one that -succeeds (depending on which one of the two builds Cargo picked to run first), -whereas `cargo check -j1 --keep-going` would definitely run both builds, even if -the one run first fails. - -The `-Z unstable-options` command-line option must be used in order to use -`--keep-going` while it is not yet stable: - -```console -cargo check --keep-going -Z unstable-options -``` - -While `cargo test` and `cargo bench` commands involve compilation, they do not provide a `--keep-going` flag. -Both commands already include a similar `--no-fail-fast` flag, allowing running as many tests as possible without stopping at the first failure. -To "compile" as many tests as possible, use target selection flags like `--tests` to build test binaries separately. -For example, - -```console -cargo build --tests --keep-going -Zunstable-options -cargo test --tests --no-fail-fast -``` - ### config-include * Tracking Issue: [#7723](https://github.com/rust-lang/cargo/issues/7723) diff --git a/src/etc/man/cargo-bench.1 b/src/etc/man/cargo-bench.1 index 993dd3415b82..64498c4d602b 100644 --- a/src/etc/man/cargo-bench.1 +++ b/src/etc/man/cargo-bench.1 @@ -502,11 +502,16 @@ a string \fBdefault\fR is provided, it sets the value back to defaults. Should not be 0. .RE .sp -\fB\-\-keep\-going\fR +While \fBcargo bench\fR involves compilation, it does not provide a \fB\-\-keep\-going\fR +flag. Use \fB\-\-no\-fail\-fast\fR to run as many benchmarks as possible without +stopping at the first failure. To \[lq]compile\[rq] as many benchmarks as possible, use +\fB\-\-benches\fR to build benchmark binaries separately. For example: +.sp .RS 4 -Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +.nf +cargo build \-\-benches \-\-release \-\-keep\-going +cargo bench \-\-no\-fail\-fast +.fi .RE .SH "ENVIRONMENT" See \fIthe reference\fR for diff --git a/src/etc/man/cargo-build.1 b/src/etc/man/cargo-build.1 index 4ee6a0d76368..fc0b810e95e6 100644 --- a/src/etc/man/cargo-build.1 +++ b/src/etc/man/cargo-build.1 @@ -420,8 +420,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .sp \fB\-\-future\-incompat\-report\fR diff --git a/src/etc/man/cargo-check.1 b/src/etc/man/cargo-check.1 index 1aada2a217e5..a6fcdbe05a26 100644 --- a/src/etc/man/cargo-check.1 +++ b/src/etc/man/cargo-check.1 @@ -401,8 +401,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .sp \fB\-\-future\-incompat\-report\fR diff --git a/src/etc/man/cargo-doc.1 b/src/etc/man/cargo-doc.1 index 24621e9f6e23..9ae18b3181fd 100644 --- a/src/etc/man/cargo-doc.1 +++ b/src/etc/man/cargo-doc.1 @@ -368,8 +368,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SH "ENVIRONMENT" See \fIthe reference\fR for diff --git a/src/etc/man/cargo-fix.1 b/src/etc/man/cargo-fix.1 index 7f2a34cda68b..971e5a10979d 100644 --- a/src/etc/man/cargo-fix.1 +++ b/src/etc/man/cargo-fix.1 @@ -496,8 +496,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SH "ENVIRONMENT" See \fIthe reference\fR for diff --git a/src/etc/man/cargo-install.1 b/src/etc/man/cargo-install.1 index 917c0d0e19fe..e38ba14f1be1 100644 --- a/src/etc/man/cargo-install.1 +++ b/src/etc/man/cargo-install.1 @@ -346,8 +346,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SS "Display Options" .sp diff --git a/src/etc/man/cargo-package.1 b/src/etc/man/cargo-package.1 index 8a7b1c191cf6..421e52eb7b46 100644 --- a/src/etc/man/cargo-package.1 +++ b/src/etc/man/cargo-package.1 @@ -242,8 +242,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SS "Display Options" .sp diff --git a/src/etc/man/cargo-publish.1 b/src/etc/man/cargo-publish.1 index d18f9e6907cb..7f5dc1ddd5d7 100644 --- a/src/etc/man/cargo-publish.1 +++ b/src/etc/man/cargo-publish.1 @@ -192,8 +192,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SS "Display Options" .sp diff --git a/src/etc/man/cargo-run.1 b/src/etc/man/cargo-run.1 index 1c182ad1a2aa..d4816144d542 100644 --- a/src/etc/man/cargo-run.1 +++ b/src/etc/man/cargo-run.1 @@ -305,8 +305,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SH "ENVIRONMENT" See \fIthe reference\fR for diff --git a/src/etc/man/cargo-rustc.1 b/src/etc/man/cargo-rustc.1 index 50df99656b63..37cf022f9ab8 100644 --- a/src/etc/man/cargo-rustc.1 +++ b/src/etc/man/cargo-rustc.1 @@ -419,8 +419,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .sp \fB\-\-future\-incompat\-report\fR diff --git a/src/etc/man/cargo-rustdoc.1 b/src/etc/man/cargo-rustdoc.1 index 1792c6e2fbd7..2cb3870714b7 100644 --- a/src/etc/man/cargo-rustdoc.1 +++ b/src/etc/man/cargo-rustdoc.1 @@ -387,8 +387,13 @@ Should not be 0. \fB\-\-keep\-going\fR .RS 4 Build as many crates in the dependency graph as possible, rather than aborting -the build on the first one that fails to build. Unstable, requires -\fB\-Zunstable\-options\fR\&. +the build on the first one that fails to build. +.sp +For example if the current package depends on dependencies \fBfails\fR and \fBworks\fR, +one of which fails to build, \fBcargo check \-j1\fR may or may not build the one that +succeeds (depending on which one of the two builds Cargo picked to run first), +whereas \fBcargo check \-j1 \-\-keep\-going\fR would definitely run both builds, even if +the one run first fails. .RE .SH "ENVIRONMENT" See \fIthe reference\fR for diff --git a/src/etc/man/cargo-test.1 b/src/etc/man/cargo-test.1 index 4ca150dbcb12..8e460e167f6e 100644 --- a/src/etc/man/cargo-test.1 +++ b/src/etc/man/cargo-test.1 @@ -542,6 +542,18 @@ produced during execution of this command .sp See \fBcargo\-report\fR(1) .RE +.sp +While \fBcargo test\fR involves compilation, it does not provide a \fB\-\-keep\-going\fR +flag. Use \fB\-\-no\-fail\-fast\fR to run as many tests as possible without stopping at +the first failure. To \[lq]compile\[rq] as many tests as possible, use \fB\-\-tests\fR to +build test binaries separately. For example: +.sp +.RS 4 +.nf +cargo build \-\-tests \-\-keep\-going +cargo test \-\-tests \-\-no\-fail\-fast +.fi +.RE .SH "ENVIRONMENT" See \fIthe reference\fR for details on environment variables that Cargo reads. diff --git a/tests/testsuite/cargo_build/help/stdout.log b/tests/testsuite/cargo_build/help/stdout.log index af906c24f428..e51a3b177dcf 100644 --- a/tests/testsuite/cargo_build/help/stdout.log +++ b/tests/testsuite/cargo_build/help/stdout.log @@ -41,7 +41,7 @@ Compilation Options: -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error --target Build for the target triple --target-dir Directory for all generated artifacts --out-dir Copy final artifacts to this directory (unstable) diff --git a/tests/testsuite/cargo_check/help/stdout.log b/tests/testsuite/cargo_check/help/stdout.log index 7c87615cd72f..8aee0bcce86b 100644 --- a/tests/testsuite/cargo_check/help/stdout.log +++ b/tests/testsuite/cargo_check/help/stdout.log @@ -39,7 +39,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Check artifacts in release mode, with optimizations --profile Check artifacts with the specified profile --target Check for the target triple diff --git a/tests/testsuite/cargo_doc/help/stdout.log b/tests/testsuite/cargo_doc/help/stdout.log index 480e189c10e4..d910c960a359 100644 --- a/tests/testsuite/cargo_doc/help/stdout.log +++ b/tests/testsuite/cargo_doc/help/stdout.log @@ -36,7 +36,7 @@ Target Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile --target Build for the target triple diff --git a/tests/testsuite/cargo_fix/help/stdout.log b/tests/testsuite/cargo_fix/help/stdout.log index c0a98218a230..cfd76a4ff07a 100644 --- a/tests/testsuite/cargo_fix/help/stdout.log +++ b/tests/testsuite/cargo_fix/help/stdout.log @@ -44,7 +44,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Fix artifacts in release mode, with optimizations --profile Build artifacts with the specified profile --target Fix for the target triple diff --git a/tests/testsuite/cargo_install/help/stdout.log b/tests/testsuite/cargo_install/help/stdout.log index a07fa47f6fd3..de23100f42ee 100644 --- a/tests/testsuite/cargo_install/help/stdout.log +++ b/tests/testsuite/cargo_install/help/stdout.log @@ -42,7 +42,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error --profile Install artifacts with the specified profile --target Build for the target triple --target-dir Directory for all generated artifacts diff --git a/tests/testsuite/cargo_package/help/stdout.log b/tests/testsuite/cargo_package/help/stdout.log index 35e32f3133de..568cc5796c88 100644 --- a/tests/testsuite/cargo_package/help/stdout.log +++ b/tests/testsuite/cargo_package/help/stdout.log @@ -28,7 +28,7 @@ Compilation Options: --target Build for the target triple --target-dir Directory for all generated artifacts -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error Manifest Options: --manifest-path Path to Cargo.toml diff --git a/tests/testsuite/cargo_publish/help/stdout.log b/tests/testsuite/cargo_publish/help/stdout.log index c02522887a83..7f37ee56c09e 100644 --- a/tests/testsuite/cargo_publish/help/stdout.log +++ b/tests/testsuite/cargo_publish/help/stdout.log @@ -26,7 +26,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error --target Build for the target triple --target-dir Directory for all generated artifacts diff --git a/tests/testsuite/cargo_run/help/stdout.log b/tests/testsuite/cargo_run/help/stdout.log index 6ab0e76b13fd..c8777eaef568 100644 --- a/tests/testsuite/cargo_run/help/stdout.log +++ b/tests/testsuite/cargo_run/help/stdout.log @@ -30,7 +30,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile --target Build for the target triple diff --git a/tests/testsuite/cargo_rustc/help/stdout.log b/tests/testsuite/cargo_rustc/help/stdout.log index f587c327687c..d6394effeabb 100644 --- a/tests/testsuite/cargo_rustc/help/stdout.log +++ b/tests/testsuite/cargo_rustc/help/stdout.log @@ -41,7 +41,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile --target Target triple which compiles will be for diff --git a/tests/testsuite/cargo_rustdoc/help/stdout.log b/tests/testsuite/cargo_rustdoc/help/stdout.log index 4cac29e0af34..93c3ba851998 100644 --- a/tests/testsuite/cargo_rustdoc/help/stdout.log +++ b/tests/testsuite/cargo_rustdoc/help/stdout.log @@ -39,7 +39,7 @@ Feature Selection: Compilation Options: -j, --jobs Number of parallel jobs, defaults to # of CPUs. - --keep-going Do not abort the build as soon as there is an error (unstable) + --keep-going Do not abort the build as soon as there is an error -r, --release Build artifacts in release mode, with optimizations --profile Build artifacts with the specified profile --target Build for the target triple diff --git a/tests/testsuite/check.rs b/tests/testsuite/check.rs index 7bc9a38a3ad0..b74bd6209962 100644 --- a/tests/testsuite/check.rs +++ b/tests/testsuite/check.rs @@ -861,8 +861,7 @@ fn check_keep_going() { .build(); // Due to -j1, without --keep-going only one of the two bins would be built. - foo.cargo("check -j1 --keep-going -Zunstable-options") - .masquerade_as_nightly_cargo(&["keep-going"]) + foo.cargo("check -j1 --keep-going") .with_status(101) .with_stderr_contains("error: ONE") .with_stderr_contains("error: TWO")