mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-28 10:50:29 +00:00
Mark path-based cache entries as stale during install plan (#957)
## Summary This is a small correctness improvement that ensures that we avoid using stale cache entries for local dependencies in the install plan. We already have some logic like this in the source distribution builder, but it didn't apply in the install plan, and so we'd end up using stale wheels. Specifically, now, if you create a new local wheel, and run `pip sync`, we'll mark the cache entries as stale and make sure we unzip it and install it. (If the wheel is _already_ installed, we won't reinstall it though, which will be a separate change. This is just about reading from the cache, not the environment.)
This commit is contained in:
parent
f852d986f3
commit
f17bad0a75
9 changed files with 198 additions and 83 deletions
|
|
@ -446,30 +446,8 @@ impl<'a, T: BuildContext> SourceDistCachedBuilder<'a, T> {
|
|||
);
|
||||
|
||||
// Determine the last-modified time of the source distribution.
|
||||
let file_metadata = fs_err::metadata(&path_source_dist.path)?;
|
||||
let modified = if file_metadata.is_file() {
|
||||
// `modified()` is infallible on windows and unix (i.e., all platforms we support).
|
||||
file_metadata.modified()?
|
||||
} else {
|
||||
if let Some(metadata) = path_source_dist
|
||||
.path
|
||||
.join("pyproject.toml")
|
||||
.metadata()
|
||||
.ok()
|
||||
.filter(std::fs::Metadata::is_file)
|
||||
{
|
||||
metadata.modified()?
|
||||
} else if let Some(metadata) = path_source_dist
|
||||
.path
|
||||
.join("setup.py")
|
||||
.metadata()
|
||||
.ok()
|
||||
.filter(std::fs::Metadata::is_file)
|
||||
{
|
||||
metadata.modified()?
|
||||
} else {
|
||||
return Err(SourceDistError::DirWithoutEntrypoint);
|
||||
}
|
||||
let Some(modified) = puffin_cache::archive_mtime(&path_source_dist.path)? else {
|
||||
return Err(SourceDistError::DirWithoutEntrypoint);
|
||||
};
|
||||
|
||||
// Read the existing metadata from the cache.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue