Skip to content

Conversation

@epage
Copy link
Contributor

@epage epage commented Dec 3, 2025

What does this PR try to resolve?

Before, pre-uplifted examples were being written to {build-dir}/{profile}/examples/{name}-{hash}.
Now they are being written to
{build-dir}/{profile}/build/{pkgname}/{hash}/{name}-{hash}.

This does not affect uplifted examples (they lack the -{hash}).

Pre-build-dir, these were placed in a "public" location but I don't see a reason for that to be the case (otherwise, we'd need to switch them to {target-dir}/{profile}/examples/{name}-{hash}).
In that case, I don't see a reason to treat examples as any different than any other artifact and going in their unique build init directory.

Fixes #16302

How to test and review this PR?

epage added 2 commits December 3, 2025 13:59
Before, pre-uplifted examples were being written to
`{build-dir}/{profile}/examples/{name}-{hash}`.
Now they are being written to
`{build-dir}/{profile}/build/{pkgname}/{hash}/{name}-{hash}`.

This does not affect uplifted examples (they lack the `-{hash}`).

Pre-build-dir, these were placed in a "public" location but I don't see
a reason for that to be the case (otherwise, we'd need to switch them to
`{target-dir}/{profile}/examples/{name}-{hash}`).
In that case, I don't see a reason to treat examples as any different
than any other artifact and going in their unique build init directory.

Fixes rust-lang#16302
@rustbot rustbot added A-layout Area: target output directory layout, naming, and organization Command-clean S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 3, 2025
@rustbot
Copy link
Collaborator

rustbot commented Dec 3, 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

@epage
Copy link
Contributor Author

epage commented Dec 3, 2025

CC @ranger-ross

Comment on lines 225 to 226
} else if unit.artifact.is_true() {
self.artifact_dir(unit)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm assuming we should eventually revisit this design as well so that artifact-deps doesn't affect the atomic nature of build units to allow for #5931.

@rustbot
Copy link
Collaborator

rustbot commented Dec 3, 2025

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@ranger-ross
Copy link
Member

Thanks! This makes sense to me.

@weihanglo weihanglo added this pull request to the merge queue Dec 4, 2025
Merged via the queue into rust-lang:master with commit e0dd406 Dec 4, 2025
26 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 4, 2025
@epage epage deleted the layout-new branch December 4, 2025 13:11
bors added a commit to rust-lang/rust that referenced this pull request Dec 5, 2025
Update cargo submodule

9 commits in bd979347d814dfe03bba124165dbce9554d0b4d8..2c283a9a5c5968eeb9a8f12313f04feb1ff8dfac
2025-12-02 16:03:50 +0000 to 2025-12-04 16:47:28 +0000
- fix(publish): Move `.crate` out of final artifact location (rust-lang/cargo#15915)
- Remove legacy tmpdir support (rust-lang/cargo#16342)
- Run clippy CI on more targets (rust-lang/cargo#16340)
- feat: support for rustdoc mergeable cross-crate info (rust-lang/cargo#16309)
- fix(timings): unlocked -> unblocked (rust-lang/cargo#16337)
- fix(layout): Put examples in their unit dir in new layout (rust-lang/cargo#16335)
- fix(frontmatter): Restrict code fence length  (rust-lang/cargo#16334)
- Update resolver.md: fix compile errors in pseudocode (rust-lang/cargo#16333)
- fix(fingerprint): clean doc dirs for only requested targets (rust-lang/cargo#16331)

This is best being merged before beta cutoff because rust-lang/cargo#16337 is a nightly regression.
@rustbot rustbot added this to the 1.93.0 milestone Dec 5, 2025
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Dec 5, 2025
Update cargo submodule

9 commits in bd979347d814dfe03bba124165dbce9554d0b4d8..2c283a9a5c5968eeb9a8f12313f04feb1ff8dfac
2025-12-02 16:03:50 +0000 to 2025-12-04 16:47:28 +0000
- fix(publish): Move `.crate` out of final artifact location (rust-lang/cargo#15915)
- Remove legacy tmpdir support (rust-lang/cargo#16342)
- Run clippy CI on more targets (rust-lang/cargo#16340)
- feat: support for rustdoc mergeable cross-crate info (rust-lang/cargo#16309)
- fix(timings): unlocked -> unblocked (rust-lang/cargo#16337)
- fix(layout): Put examples in their unit dir in new layout (rust-lang/cargo#16335)
- fix(frontmatter): Restrict code fence length  (rust-lang/cargo#16334)
- Update resolver.md: fix compile errors in pseudocode (rust-lang/cargo#16333)
- fix(fingerprint): clean doc dirs for only requested targets (rust-lang/cargo#16331)

This is best being merged before beta cutoff because rust-lang/cargo#16337 is a nightly regression.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-layout Area: target output directory layout, naming, and organization Command-clean

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cargo clean -Zbuild-dir-new-layout -p foo does not clean uplifted example depinfo files

5 participants