Skip to content

Conversation

epage
Copy link
Contributor

@epage epage commented Oct 7, 2025

What does this PR try to resolve?

When you have

[workspace.dependencies]
apply.workspace = true

You have a source-less workspace dependency with an unused workspace
field.

In #13775, we removed support for source-less dependencies but missed
this case.
This mirrors the error message from toml/mod.rs that #13775 added.

Other options I considered:

  • Making the presence of workspace an error in cargo-util-schemas
  • Validating workspace.dependencies in toml/mod.rs, even when its not inherited

In both cases, they are behavior changes that and I wanted to keep the
focus of this change small rather than get tied up in what behavior
changes are safe or should be done with an Edition.

The second option could still lead to this panic if we move some of that
error reporting into later stages of Cargo.

Fixes #1398

How to test and review this PR?

epage added 3 commits October 7, 2025 10:53
When you have
```toml
[workspace.dependencies]
apply.workspace = true
```
You have a source-less workspace dependency with an unused `workspace`
field.

In rust-lang#13775, we removed support for source-less dependencies but missed
this case.
This mirrors the error message from `toml/mod.rs` that rust-lang#13775 added.

Other options I considered:
- Making the presence of `workspace` an error in `cargo-util-schemas`
- Validating `workspace.dependencies` in `toml/mod.rs`, even when its not inherited

In both cases, they are behavior changes that and I wanted to keep the
focus of this change small rather than get tied up in what behavior
changes are safe or should be done with an Edition.

The second option could still lead to this panic if we move some of that
error reporting into later stages of Cargo.

Fixes rust-lang#1398
@rustbot rustbot added A-manifest Area: Cargo.toml issues Command-add S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 7, 2025
@rustbot
Copy link
Collaborator

rustbot commented Oct 7, 2025

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Copy link
Contributor

@ehuss ehuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ehuss ehuss added this pull request to the merge queue Oct 8, 2025
github-merge-queue bot pushed a commit that referenced this pull request Oct 8, 2025
…16063)

### What does this PR try to resolve?

When you have
```toml
[workspace.dependencies]
apply.workspace = true
```
You have a source-less workspace dependency with an unused `workspace`
field.

In #13775, we removed support for source-less dependencies but missed
this case.
This mirrors the error message from `toml/mod.rs` that #13775 added.

Other options I considered:
- Making the presence of `workspace` an error in `cargo-util-schemas`
- Validating `workspace.dependencies` in `toml/mod.rs`, even when its
not inherited

In both cases, they are behavior changes that and I wanted to keep the
focus of this change small rather than get tied up in what behavior
changes are safe or should be done with an Edition.

The second option could still lead to this panic if we move some of that
error reporting into later stages of Cargo.

Fixes #1398

### How to test and review this PR?
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Oct 8, 2025
@epage
Copy link
Contributor Author

epage commented Oct 8, 2025

failures:

---- cache_lock::mutate_then_download stdout ----

thread 'cache_lock::mutate_then_download' panicked at C:\a\cargo\cargo\crates\cargo-test-support\src\lib.rs:1618:13:
test did not finish within 10 attempts (1.0028045s total)

---- cache_lock::mutate_then_shared stdout ----

thread 'cache_lock::mutate_then_shared' panicked at C:\a\cargo\cargo\crates\cargo-test-support\src\lib.rs:1618:13:
test did not finish within 10 attempts (1.0022253s total)


failures:
    cache_lock::mutate_then_download
    cache_lock::mutate_then_shared

Second time I've seen this recently

@epage epage added this pull request to the merge queue Oct 8, 2025
Merged via the queue into rust-lang:master with commit 6a160a2 Oct 8, 2025
66 of 77 checks passed
@epage epage deleted the add_panic branch October 8, 2025 14:52
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 8, 2025
bors added a commit to rust-lang/rust that referenced this pull request Oct 10, 2025
Update cargo submodule

22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11
2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000
- docs(changelog): literal host-tuple support (rust-lang/cargo#16033)
- refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073)
- feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947)
- refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084)
- fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081)
- docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078)
- Allow to rustfix unused_variables lint. (rust-lang/cargo#16082)
- Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079)
- Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075)
- docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077)
- Convert a few more diagnostics to reports (rust-lang/cargo#16066)
- fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069)
- fix(add): Report a missing source error for workspace dependencies  (rust-lang/cargo#16063)
- fix(script): Default bin.name to package.name  (rust-lang/cargo#16064)
- refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067)
- Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058)
- Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966)
- docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054)
- fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055)
- chore: Added tracing span for build script execution (rust-lang/cargo#16053)
- test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052)
- feat (publish): deprecate `--token` option (rust-lang/cargo#16046)

r? ghost
bors added a commit to rust-lang/rust that referenced this pull request Oct 11, 2025
Update cargo submodule

22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11
2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000
- docs(changelog): literal host-tuple support (rust-lang/cargo#16033)
- refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073)
- feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947)
- refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084)
- fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081)
- docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078)
- Allow to rustfix unused_variables lint. (rust-lang/cargo#16082)
- Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079)
- Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075)
- docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077)
- Convert a few more diagnostics to reports (rust-lang/cargo#16066)
- fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069)
- fix(add): Report a missing source error for workspace dependencies  (rust-lang/cargo#16063)
- fix(script): Default bin.name to package.name  (rust-lang/cargo#16064)
- refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067)
- Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058)
- Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966)
- docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054)
- fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055)
- chore: Added tracing span for build script execution (rust-lang/cargo#16053)
- test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052)
- feat (publish): deprecate `--token` option (rust-lang/cargo#16046)

r? ghost
bors added a commit to rust-lang/rust that referenced this pull request Oct 11, 2025
Update cargo submodule

22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11
2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000
- docs(changelog): literal host-tuple support (rust-lang/cargo#16033)
- refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073)
- feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947)
- refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084)
- fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081)
- docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078)
- Allow to rustfix unused_variables lint. (rust-lang/cargo#16082)
- Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079)
- Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075)
- docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077)
- Convert a few more diagnostics to reports (rust-lang/cargo#16066)
- fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069)
- fix(add): Report a missing source error for workspace dependencies  (rust-lang/cargo#16063)
- fix(script): Default bin.name to package.name  (rust-lang/cargo#16064)
- refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067)
- Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058)
- Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966)
- docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054)
- fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055)
- chore: Added tracing span for build script execution (rust-lang/cargo#16053)
- test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052)
- feat (publish): deprecate `--token` option (rust-lang/cargo#16046)

r? ghost
@rustbot rustbot added this to the 1.92.0 milestone Oct 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-manifest Area: Cargo.toml issues Command-add

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow configuring -C debug-assertions setting

3 participants