mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-03 18:38:21 +00:00
Add support for --no-build-isolation
(#2258)
## Summary This PR adds support for pip's `--no-build-isolation`. When enabled, build requirements won't be installed during PEP 517-style builds, but the source environment _will_ be used when executing the build steps themselves. Closes https://github.com/astral-sh/uv/issues/1715.
This commit is contained in:
parent
d249574a47
commit
5ae5980c88
19 changed files with 244 additions and 64 deletions
|
@ -15,7 +15,9 @@ use uv_dispatch::BuildDispatch;
|
|||
use uv_installer::NoBinary;
|
||||
use uv_interpreter::PythonEnvironment;
|
||||
use uv_resolver::InMemoryIndex;
|
||||
use uv_traits::{BuildContext, BuildKind, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
use uv_traits::{
|
||||
BuildContext, BuildIsolation, BuildKind, ConfigSettings, InFlight, NoBuild, SetupPyStrategy,
|
||||
};
|
||||
|
||||
#[derive(Parser)]
|
||||
pub(crate) struct BuildArgs {
|
||||
|
@ -74,6 +76,7 @@ pub(crate) async fn build(args: BuildArgs) -> Result<PathBuf> {
|
|||
&in_flight,
|
||||
setup_py,
|
||||
&config_settings,
|
||||
BuildIsolation::Isolated,
|
||||
&NoBuild::None,
|
||||
&NoBinary::None,
|
||||
);
|
||||
|
@ -87,6 +90,7 @@ pub(crate) async fn build(args: BuildArgs) -> Result<PathBuf> {
|
|||
args.sdist.display().to_string(),
|
||||
setup_py,
|
||||
config_settings.clone(),
|
||||
BuildIsolation::Isolated,
|
||||
build_kind,
|
||||
FxHashMap::default(),
|
||||
)
|
||||
|
|
|
@ -24,7 +24,7 @@ use uv_installer::{Downloader, NoBinary};
|
|||
use uv_interpreter::PythonEnvironment;
|
||||
use uv_normalize::PackageName;
|
||||
use uv_resolver::{DistFinder, InMemoryIndex};
|
||||
use uv_traits::{BuildContext, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
use uv_traits::{BuildContext, BuildIsolation, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
|
||||
#[derive(Parser)]
|
||||
pub(crate) struct InstallManyArgs {
|
||||
|
@ -81,6 +81,7 @@ pub(crate) async fn install_many(args: InstallManyArgs) -> Result<()> {
|
|||
&in_flight,
|
||||
setup_py,
|
||||
&config_settings,
|
||||
BuildIsolation::Isolated,
|
||||
&no_build,
|
||||
&NoBinary::None,
|
||||
);
|
||||
|
|
|
@ -18,7 +18,7 @@ use uv_dispatch::BuildDispatch;
|
|||
use uv_installer::NoBinary;
|
||||
use uv_interpreter::PythonEnvironment;
|
||||
use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver};
|
||||
use uv_traits::{ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
use uv_traits::{BuildIsolation, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
|
||||
#[derive(ValueEnum, Default, Clone)]
|
||||
pub(crate) enum ResolveCliFormat {
|
||||
|
@ -85,6 +85,7 @@ pub(crate) async fn resolve_cli(args: ResolveCliArgs) -> Result<()> {
|
|||
&in_flight,
|
||||
SetupPyStrategy::default(),
|
||||
&config_settings,
|
||||
BuildIsolation::Isolated,
|
||||
&no_build,
|
||||
&NoBinary::None,
|
||||
);
|
||||
|
|
|
@ -21,7 +21,7 @@ use uv_installer::NoBinary;
|
|||
use uv_interpreter::PythonEnvironment;
|
||||
use uv_normalize::PackageName;
|
||||
use uv_resolver::InMemoryIndex;
|
||||
use uv_traits::{BuildContext, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
use uv_traits::{BuildContext, BuildIsolation, ConfigSettings, InFlight, NoBuild, SetupPyStrategy};
|
||||
|
||||
#[derive(Parser)]
|
||||
pub(crate) struct ResolveManyArgs {
|
||||
|
@ -109,6 +109,7 @@ pub(crate) async fn resolve_many(args: ResolveManyArgs) -> Result<()> {
|
|||
&in_flight,
|
||||
setup_py,
|
||||
&config_settings,
|
||||
BuildIsolation::Isolated,
|
||||
&no_build,
|
||||
&NoBinary::None,
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue