Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #6734 - ehuss:fingerprint-build-path-only, r=alexcrichton
Fingerprint build script deps only for path packages. #6720 introduced some protection that if there is a build script, and two commands are used (such as `cargo build` then `cargo test`), the second command would correctly get rebuilt. However, the way it was implemented relies on mtimes working correctly. A common use case is to cache built dependencies in Docker, and Docker zeros the nanoseconds from mtime when the image is saved. This caused all packages that had build scripts to get rebuilt when the Docker image runs. The solution here is to only use the #6720 protection for local (path) packages. This runs under the assumption that mtimes need to work for those anyways. The consequence is that the scenario in #6720 will no longer work for detecting changes in registry dependencies with build scripts. Fixing that final edge case is nontrivial. Since it is unlikely to happen often, I figure this workaround should be sufficient for now. cc rust-lang/rust-playground#469 cc rust-lang/rust#59061
- Loading branch information