diff --git a/crates/uv-resolver/src/lock.rs b/crates/uv-resolver/src/lock.rs index c029afab0..cee6efc5e 100644 --- a/crates/uv-resolver/src/lock.rs +++ b/crates/uv-resolver/src/lock.rs @@ -34,7 +34,7 @@ use pypi_types::{ }; use uv_configuration::{ExtrasSpecification, Upgrade}; use uv_distribution::{ArchiveMetadata, Metadata}; -use uv_fs::{PortablePath, PortablePathBuf}; +use uv_fs::{PortablePath, PortablePathBuf, Simplified}; use uv_git::{GitReference, GitSha, RepositoryReference, ResolvedRepositoryReference}; use uv_normalize::{ExtraName, GroupName, PackageName}; use uv_workspace::VirtualProject; @@ -1519,18 +1519,21 @@ impl Source { } fn from_path_built_dist(path_dist: &PathBuiltDist) -> Source { - Source::Path(path_dist.lock_path.clone()) + let path = path_dist.lock_path.simplified().to_path_buf(); + Source::Path(path) } fn from_path_source_dist(path_dist: &PathSourceDist) -> Source { - Source::Path(path_dist.install_path.clone()) + let path = path_dist.install_path.simplified().to_path_buf(); + Source::Path(path) } fn from_directory_source_dist(directory_dist: &DirectorySourceDist) -> Source { + let path = directory_dist.lock_path.simplified().to_path_buf(); if directory_dist.editable { - Source::Editable(directory_dist.lock_path.clone()) + Source::Editable(path) } else { - Source::Directory(directory_dist.lock_path.clone()) + Source::Directory(path) } } diff --git a/crates/uv/tests/lock.rs b/crates/uv/tests/lock.rs index 64b7f276e..55ae4f31e 100644 --- a/crates/uv/tests/lock.rs +++ b/crates/uv/tests/lock.rs @@ -6695,7 +6695,6 @@ fn lock_sources_url() -> Result<()> { /// /// When resolving, we should ignore the `tool.uv.sources` and instead pull in `anyio` from PyPI. #[test] -#[cfg(not(windows))] // TODO(charlie): Fix file paths on Windows. fn lock_sources_archive() -> Result<()> { let context = TestContext::new("3.12");