Skip to content

Commit 3ca10ad

Browse files
committed
perf(package): Speed up verify by with 'check'
In testing workspace publishing, I was really wishing for the build to be faster when I noticed the sea of status messages was "Compiling", instead of "Checking". I've been glossing over those messages for years and never noticed! This makes builds faster by skipping the compiler backend / codegen at the cost of not getting post-monomorphization errors. That seems like a small price to pay. I searched through the issues, open and closed, and saw no previous discussions of this. In particular, I was looking to see if this was previously rejected. My only assumption is this was missed when `cargo check` was added.
1 parent 4412b0a commit 3ca10ad

12 files changed

+135
-135
lines changed

src/cargo/ops/cargo_package.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1157,7 +1157,7 @@ fn run_verify(
11571157
opts.jobs.clone(),
11581158
opts.keep_going,
11591159
&opts.targets,
1160-
CompileMode::Build,
1160+
CompileMode::Check { test: false },
11611161
)?,
11621162
cli_features: opts.cli_features.clone(),
11631163
spec: ops::Packages::Packages(Vec::new()),

tests/testsuite/alt_registry.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,8 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
351351
[VERIFYING] foo v0.0.1 ([ROOT]/foo)
352352
[DOWNLOADING] crates ...
353353
[DOWNLOADED] bar v0.0.1 (registry `alternative`)
354-
[COMPILING] bar v0.0.1 (registry `alternative`)
355-
[COMPILING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
354+
[CHECKING] bar v0.0.1 (registry `alternative`)
355+
[CHECKING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
356356
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
357357
[UPLOADING] foo v0.0.1 ([ROOT]/foo)
358358
[UPLOADED] foo v0.0.1 to registry `alternative`
@@ -515,7 +515,7 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
515515
[PACKAGING] foo v0.0.1 ([ROOT]/foo)
516516
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
517517
[VERIFYING] foo v0.0.1 ([ROOT]/foo)
518-
[COMPILING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
518+
[CHECKING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
519519
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
520520
[UPLOADING] foo v0.0.1 ([ROOT]/foo)
521521
[UPLOADED] foo v0.0.1 to registry `alternative`
@@ -596,8 +596,8 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
596596
[VERIFYING] foo v0.0.1 ([ROOT]/foo)
597597
[DOWNLOADING] crates ...
598598
[DOWNLOADED] bar v0.0.1 (registry `dummy-registry`)
599-
[COMPILING] bar v0.0.1
600-
[COMPILING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
599+
[CHECKING] bar v0.0.1
600+
[CHECKING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
601601
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
602602
[UPLOADING] foo v0.0.1 ([ROOT]/foo)
603603
[UPLOADED] foo v0.0.1 to registry `alternative`

tests/testsuite/cargo_features.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
639639
[PACKAGING] a v0.0.1 ([ROOT]/foo)
640640
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
641641
[VERIFYING] a v0.0.1 ([ROOT]/foo)
642-
[COMPILING] a v0.0.1 ([ROOT]/foo/target/package/a-0.0.1)
642+
[CHECKING] a v0.0.1 ([ROOT]/foo/target/package/a-0.0.1)
643643
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
644644
[UPLOADING] a v0.0.1 ([ROOT]/foo)
645645
[UPLOADED] a v0.0.1 to registry `crates-io`

tests/testsuite/cross_publish.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ fn simple_cross_package() {
4646
[PACKAGING] foo v0.0.0 ([ROOT]/foo)
4747
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
4848
[VERIFYING] foo v0.0.0 ([ROOT]/foo)
49-
[COMPILING] foo v0.0.0 ([ROOT]/foo/target/package/foo-0.0.0)
49+
[CHECKING] foo v0.0.0 ([ROOT]/foo/target/package/foo-0.0.0)
5050
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
5151
5252
"#]])
@@ -110,7 +110,7 @@ fn publish_with_target() {
110110
[PACKAGING] foo v0.0.0 ([ROOT]/foo)
111111
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
112112
[VERIFYING] foo v0.0.0 ([ROOT]/foo)
113-
[COMPILING] foo v0.0.0 ([ROOT]/foo/target/package/foo-0.0.0)
113+
[CHECKING] foo v0.0.0 ([ROOT]/foo/target/package/foo-0.0.0)
114114
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
115115
[UPLOADING] foo v0.0.0 ([ROOT]/foo)
116116
[UPLOADED] foo v0.0.0 to registry `crates-io`

tests/testsuite/features_namespaced.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1064,7 +1064,7 @@ fn publish() {
10641064
[UPDATING] crates.io index
10651065
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
10661066
[VERIFYING] foo v0.1.0 ([ROOT]/foo)
1067-
[COMPILING] foo v0.1.0 ([ROOT]/foo/target/package/foo-0.1.0)
1067+
[CHECKING] foo v0.1.0 ([ROOT]/foo/target/package/foo-0.1.0)
10681068
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
10691069
[UPLOADING] foo v0.1.0 ([ROOT]/foo)
10701070
[UPLOADED] foo v0.1.0 to registry `crates-io`

tests/testsuite/inheritable_workspace_fields.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ fn inherit_own_workspace_fields() {
163163
[PACKAGING] foo v1.2.3 ([ROOT]/foo)
164164
[PACKAGED] 6 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
165165
[VERIFYING] foo v1.2.3 ([ROOT]/foo)
166-
[COMPILING] foo v1.2.3 ([ROOT]/foo/target/package/foo-1.2.3)
166+
[CHECKING] foo v1.2.3 ([ROOT]/foo/target/package/foo-1.2.3)
167167
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
168168
[UPLOADING] foo v1.2.3 ([ROOT]/foo)
169169
[UPLOADED] foo v1.2.3 to registry `crates-io`
@@ -329,8 +329,8 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
329329
[UPDATING] crates.io index
330330
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
331331
[VERIFYING] bar v0.2.0 ([ROOT]/foo)
332-
[COMPILING] dep v0.1.2
333-
[COMPILING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
332+
[CHECKING] dep v0.1.2
333+
[CHECKING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
334334
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
335335
[UPLOADING] bar v0.2.0 ([ROOT]/foo)
336336
[UPLOADED] bar v0.2.0 to registry `crates-io`
@@ -496,8 +496,8 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
496496
[UPDATING] crates.io index
497497
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
498498
[VERIFYING] bar v0.2.0 ([ROOT]/foo)
499-
[COMPILING] dep v0.1.2
500-
[COMPILING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
499+
[CHECKING] dep v0.1.2
500+
[CHECKING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
501501
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
502502
[UPLOADING] bar v0.2.0 ([ROOT]/foo)
503503
[UPLOADED] bar v0.2.0 to registry `crates-io`
@@ -758,7 +758,7 @@ fn inherit_workspace_fields() {
758758
`license` should be used if the package license can be expressed with a standard SPDX expression.
759759
`license-file` should be used if the package uses a non-standard license.
760760
See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
761-
[COMPILING] bar v1.2.3 ([ROOT]/foo/target/package/bar-1.2.3)
761+
[CHECKING] bar v1.2.3 ([ROOT]/foo/target/package/bar-1.2.3)
762762
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
763763
[UPLOADING] bar v1.2.3 ([ROOT]/foo/bar)
764764
[UPLOADED] bar v1.2.3 to registry `crates-io`
@@ -931,8 +931,8 @@ See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for
931931
[UPDATING] crates.io index
932932
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
933933
[VERIFYING] bar v0.2.0 ([ROOT]/foo/bar)
934-
[COMPILING] dep v0.1.2
935-
[COMPILING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
934+
[CHECKING] dep v0.1.2
935+
[CHECKING] bar v0.2.0 ([ROOT]/foo/target/package/bar-0.2.0)
936936
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
937937
[UPLOADING] bar v0.2.0 ([ROOT]/foo/bar)
938938
[UPLOADED] bar v0.2.0 to registry `crates-io`

0 commit comments

Comments
 (0)