mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Share workspace cache between lock and sync operations (#14321)
## Summary Closes #14316.
This commit is contained in:
parent
4eef79e5e8
commit
6a5d2f1ec4
8 changed files with 29 additions and 7 deletions
|
@ -853,6 +853,7 @@ async fn lock_and_sync(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&WorkspaceCache::default(),
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -974,6 +975,7 @@ async fn lock_and_sync(
|
||||||
Box::new(SummaryResolveLogger),
|
Box::new(SummaryResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&WorkspaceCache::default(),
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -1021,6 +1023,7 @@ async fn lock_and_sync(
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
WorkspaceCache::default(),
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
|
|
@ -193,6 +193,7 @@ pub(crate) async fn export(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
|
|
@ -199,6 +199,7 @@ pub(crate) async fn lock(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -263,6 +264,7 @@ pub(super) struct LockOperation<'env> {
|
||||||
logger: Box<dyn ResolveLogger>,
|
logger: Box<dyn ResolveLogger>,
|
||||||
concurrency: Concurrency,
|
concurrency: Concurrency,
|
||||||
cache: &'env Cache,
|
cache: &'env Cache,
|
||||||
|
workspace_cache: &'env WorkspaceCache,
|
||||||
printer: Printer,
|
printer: Printer,
|
||||||
preview: PreviewMode,
|
preview: PreviewMode,
|
||||||
}
|
}
|
||||||
|
@ -277,6 +279,7 @@ impl<'env> LockOperation<'env> {
|
||||||
logger: Box<dyn ResolveLogger>,
|
logger: Box<dyn ResolveLogger>,
|
||||||
concurrency: Concurrency,
|
concurrency: Concurrency,
|
||||||
cache: &'env Cache,
|
cache: &'env Cache,
|
||||||
|
workspace_cache: &'env WorkspaceCache,
|
||||||
printer: Printer,
|
printer: Printer,
|
||||||
preview: PreviewMode,
|
preview: PreviewMode,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
@ -289,6 +292,7 @@ impl<'env> LockOperation<'env> {
|
||||||
logger,
|
logger,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
}
|
}
|
||||||
|
@ -334,6 +338,7 @@ impl<'env> LockOperation<'env> {
|
||||||
self.logger,
|
self.logger,
|
||||||
self.concurrency,
|
self.concurrency,
|
||||||
self.cache,
|
self.cache,
|
||||||
|
self.workspace_cache,
|
||||||
self.printer,
|
self.printer,
|
||||||
self.preview,
|
self.preview,
|
||||||
)
|
)
|
||||||
|
@ -372,6 +377,7 @@ impl<'env> LockOperation<'env> {
|
||||||
self.logger,
|
self.logger,
|
||||||
self.concurrency,
|
self.concurrency,
|
||||||
self.cache,
|
self.cache,
|
||||||
|
self.workspace_cache,
|
||||||
self.printer,
|
self.printer,
|
||||||
self.preview,
|
self.preview,
|
||||||
)
|
)
|
||||||
|
@ -402,6 +408,7 @@ async fn do_lock(
|
||||||
logger: Box<dyn ResolveLogger>,
|
logger: Box<dyn ResolveLogger>,
|
||||||
concurrency: Concurrency,
|
concurrency: Concurrency,
|
||||||
cache: &Cache,
|
cache: &Cache,
|
||||||
|
workspace_cache: &WorkspaceCache,
|
||||||
printer: Printer,
|
printer: Printer,
|
||||||
preview: PreviewMode,
|
preview: PreviewMode,
|
||||||
) -> Result<LockResult, ProjectError> {
|
) -> Result<LockResult, ProjectError> {
|
||||||
|
@ -654,8 +661,6 @@ async fn do_lock(
|
||||||
FlatIndex::from_entries(entries, None, &hasher, build_options)
|
FlatIndex::from_entries(entries, None, &hasher, build_options)
|
||||||
};
|
};
|
||||||
|
|
||||||
let workspace_cache = WorkspaceCache::default();
|
|
||||||
|
|
||||||
// Create a build dispatch.
|
// Create a build dispatch.
|
||||||
let build_dispatch = BuildDispatch::new(
|
let build_dispatch = BuildDispatch::new(
|
||||||
&client,
|
&client,
|
||||||
|
@ -674,7 +679,7 @@ async fn do_lock(
|
||||||
&build_hasher,
|
&build_hasher,
|
||||||
*exclude_newer,
|
*exclude_newer,
|
||||||
*sources,
|
*sources,
|
||||||
workspace_cache,
|
workspace_cache.clone(),
|
||||||
concurrency,
|
concurrency,
|
||||||
preview,
|
preview,
|
||||||
);
|
);
|
||||||
|
|
|
@ -302,6 +302,7 @@ pub(crate) async fn remove(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&WorkspaceCache::default(),
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -357,6 +358,7 @@ pub(crate) async fn remove(
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
WorkspaceCache::default(),
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
|
|
@ -264,6 +264,7 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
},
|
},
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -309,6 +310,7 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
workspace_cache.clone(),
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
@ -407,7 +409,7 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
workspace_cache,
|
workspace_cache.clone(),
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
@ -465,7 +467,6 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
};
|
};
|
||||||
|
|
||||||
// Discover and sync the base environment.
|
// Discover and sync the base environment.
|
||||||
let workspace_cache = WorkspaceCache::default();
|
|
||||||
let temp_dir;
|
let temp_dir;
|
||||||
let base_interpreter = if let Some(script_interpreter) = script_interpreter {
|
let base_interpreter = if let Some(script_interpreter) = script_interpreter {
|
||||||
// If we found a PEP 723 script and the user provided a project-only setting, warn.
|
// If we found a PEP 723 script and the user provided a project-only setting, warn.
|
||||||
|
@ -721,6 +722,7 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
},
|
},
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -807,6 +809,7 @@ hint: If you are running a script with `{}` in the shebang, you may need to incl
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
workspace_cache.clone(),
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
|
|
@ -324,7 +324,7 @@ pub(crate) async fn sync(
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
workspace_cache,
|
workspace_cache.clone(),
|
||||||
dry_run,
|
dry_run,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
@ -371,6 +371,7 @@ pub(crate) async fn sync(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -452,6 +453,7 @@ pub(crate) async fn sync(
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
workspace_cache,
|
||||||
dry_run,
|
dry_run,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
@ -587,6 +589,7 @@ pub(super) async fn do_sync(
|
||||||
installer_metadata: bool,
|
installer_metadata: bool,
|
||||||
concurrency: Concurrency,
|
concurrency: Concurrency,
|
||||||
cache: &Cache,
|
cache: &Cache,
|
||||||
|
workspace_cache: WorkspaceCache,
|
||||||
dry_run: DryRun,
|
dry_run: DryRun,
|
||||||
printer: Printer,
|
printer: Printer,
|
||||||
preview: PreviewMode,
|
preview: PreviewMode,
|
||||||
|
@ -748,7 +751,7 @@ pub(super) async fn do_sync(
|
||||||
&build_hasher,
|
&build_hasher,
|
||||||
exclude_newer,
|
exclude_newer,
|
||||||
sources,
|
sources,
|
||||||
WorkspaceCache::default(),
|
workspace_cache.clone(),
|
||||||
concurrency,
|
concurrency,
|
||||||
preview,
|
preview,
|
||||||
);
|
);
|
||||||
|
|
|
@ -146,6 +146,7 @@ pub(crate) async fn tree(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&WorkspaceCache::default(),
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
|
|
@ -315,6 +315,7 @@ async fn print_frozen_version(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&WorkspaceCache::default(),
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -443,6 +444,7 @@ async fn lock_and_sync(
|
||||||
|
|
||||||
// Initialize any shared state.
|
// Initialize any shared state.
|
||||||
let state = UniversalState::default();
|
let state = UniversalState::default();
|
||||||
|
let workspace_cache = WorkspaceCache::default();
|
||||||
|
|
||||||
// Lock and sync the environment, if necessary.
|
// Lock and sync the environment, if necessary.
|
||||||
let lock = match project::lock::LockOperation::new(
|
let lock = match project::lock::LockOperation::new(
|
||||||
|
@ -453,6 +455,7 @@ async fn lock_and_sync(
|
||||||
Box::new(DefaultResolveLogger),
|
Box::new(DefaultResolveLogger),
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
&workspace_cache,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
)
|
)
|
||||||
|
@ -510,6 +513,7 @@ async fn lock_and_sync(
|
||||||
installer_metadata,
|
installer_metadata,
|
||||||
concurrency,
|
concurrency,
|
||||||
cache,
|
cache,
|
||||||
|
workspace_cache,
|
||||||
DryRun::Disabled,
|
DryRun::Disabled,
|
||||||
printer,
|
printer,
|
||||||
preview,
|
preview,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue