-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some changes to rustdoc fingerprint checking. #9404
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This also rearranges the code a little bit to try to avoid some duplication and to try to make it a little more compact.
In some cases, the directory may actually be a symlink created by the user, and we don't want to delete it. Also, skip any hidden files added by the user as well.
This is a hidden flag intended to only be used by rustbuild which will skip the rustdoc fingerprint check. rustbuild does some funky things with sharing the doc directory across multiple target directories via symlinks, and that causes problems where after building in one target directory, then switching to the second one, it will clear the contents.
(rust-highfive has picked a reviewer for you, use r? to override) |
rust-highfive
added
the
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
label
Apr 24, 2021
@bors: r+ Seems fine by me! |
📌 Commit c373867 has been approved by |
bors
added
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Apr 26, 2021
☀️ Test successful - checks-actions |
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Apr 27, 2021
Update cargo 5 commits in 0ed318d182e465cd66071b91ac3d265af63ef8a1..4369396ce7d270972955d876eaa4954bea56bcd9 2021-04-23 20:54:54 +0000 to 2021-04-27 14:35:53 +0000 - Fix rebuild issues with rustdoc. (rust-lang/cargo#9419) - Always use full metadata hash for -C metadata. (rust-lang/cargo#9418) - Expose build.target .cargo/config setting as packages.target in Cargo.toml (rust-lang/cargo#9030) - Some changes to rustdoc fingerprint checking. (rust-lang/cargo#9404) - Document that CARGO_PKG_ are availble to build.rs (rust-lang/cargo#9405)
This was referenced May 1, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#8640 introduced a check which deletes the
doc
directory if cargo detects it has stale contents from a different toolchain version. Rustdoc has some shared files (js and css for example) that can get corrupted between versions. Unfortunately that caused some problems with rustbuild which does a few unusual things. Rustbuild will:doc
directory before runningcargo doc
and places a.stamp
file inside it.doc
directory so that they can be shared across different target directories (in particular, between rustc and rustdoc).In order to address these issues, this PR does several things:
-Z skip-rustdoc-fingerprint
to disable thedoc
clearing behavior.doc
directory if the rustdoc fingerprint is missing. This is intended to help with the scenario where the user creates adoc
directory ahead of time with pre-existing contents before the first build. The downside is that cargo will not be able to protect against switching from pre-1.53 to post-1.53.doc
directory itself (just its contents). This should help if the user created thedoc
directory as a symlink to somewhere else.doc
directory. This isn't something that rustdoc creates.Only the
-Z
change is needed for rustbuild. The others I figured I'd include just to be on the safe side in case there are other users doing unusual things (and I had already written them thinking they would work for rustbuild). Hopefully the rustbuild.stamp
mechanism will be enough protection there.Fixes #9336