mirror of https://github.com/astral-sh/uv
Remove miette
This commit is contained in:
parent
6de869cc88
commit
633cf847fb
|
|
@ -2300,12 +2300,6 @@ dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "is_ci"
|
|
||||||
version = "1.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "is_terminal_polyfill"
|
name = "is_terminal_polyfill"
|
||||||
version = "1.70.1"
|
version = "1.70.1"
|
||||||
|
|
@ -2623,12 +2617,6 @@ checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"miette-derive",
|
"miette-derive",
|
||||||
"owo-colors",
|
|
||||||
"supports-color",
|
|
||||||
"supports-hyperlinks",
|
|
||||||
"supports-unicode",
|
|
||||||
"terminal_size",
|
|
||||||
"textwrap",
|
|
||||||
"unicode-width 0.1.14",
|
"unicode-width 0.1.14",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -4469,27 +4457,6 @@ version = "2.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "supports-color"
|
|
||||||
version = "3.0.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6"
|
|
||||||
dependencies = [
|
|
||||||
"is_ci",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "supports-hyperlinks"
|
|
||||||
version = "3.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "supports-unicode"
|
|
||||||
version = "3.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "svg"
|
name = "svg"
|
||||||
version = "0.18.0"
|
version = "0.18.0"
|
||||||
|
|
@ -5437,7 +5404,6 @@ dependencies = [
|
||||||
"indoc",
|
"indoc",
|
||||||
"insta",
|
"insta",
|
||||||
"itertools 0.14.0",
|
"itertools 0.14.0",
|
||||||
"miette",
|
|
||||||
"nix",
|
"nix",
|
||||||
"open",
|
"open",
|
||||||
"owo-colors",
|
"owo-colors",
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,6 @@ junction = { version = "1.2.0" }
|
||||||
mailparse = { version = "0.16.0" }
|
mailparse = { version = "0.16.0" }
|
||||||
md-5 = { version = "0.10.6" }
|
md-5 = { version = "0.10.6" }
|
||||||
memchr = { version = "2.7.4" }
|
memchr = { version = "2.7.4" }
|
||||||
miette = { version = "7.2.0", features = ["fancy-no-backtrace"] }
|
|
||||||
nanoid = { version = "0.4.0" }
|
nanoid = { version = "0.4.0" }
|
||||||
nix = { version = "0.30.0", features = ["signal"] }
|
nix = { version = "0.30.0", features = ["signal"] }
|
||||||
open = { version = "5.3.2" }
|
open = { version = "5.3.2" }
|
||||||
|
|
|
||||||
|
|
@ -88,12 +88,23 @@ pub fn write_error_chain(
|
||||||
err.to_string().trim()
|
err.to_string().trim()
|
||||||
)?;
|
)?;
|
||||||
for source in iter::successors(err.source(), |&err| err.source()) {
|
for source in iter::successors(err.source(), |&err| err.source()) {
|
||||||
writeln!(
|
let msg = source.to_string();
|
||||||
&mut stream,
|
let mut lines = msg.lines();
|
||||||
" {}: {}",
|
if let Some(first) = lines.next() {
|
||||||
"Caused by".color(color).bold(),
|
let padding = " ";
|
||||||
source.to_string().trim()
|
let cause = "Caused by";
|
||||||
)?;
|
let child_padding = " ".repeat(padding.len() + cause.len() + 2);
|
||||||
|
writeln!(
|
||||||
|
&mut stream,
|
||||||
|
"{}{}: {}",
|
||||||
|
padding,
|
||||||
|
cause.color(color).bold(),
|
||||||
|
first.trim()
|
||||||
|
)?;
|
||||||
|
for line in lines {
|
||||||
|
writeln!(&mut stream, "{}{}", child_padding, line.trim_end())?;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,6 @@ indicatif = { workspace = true }
|
||||||
indoc = { workspace = true }
|
indoc = { workspace = true }
|
||||||
itertools = { workspace = true }
|
itertools = { workspace = true }
|
||||||
h2 = { workspace = true }
|
h2 = { workspace = true }
|
||||||
miette = { workspace = true, features = ["fancy-no-backtrace"] }
|
|
||||||
open = { workspace = true }
|
open = { workspace = true }
|
||||||
owo-colors = { workspace = true }
|
owo-colors = { workspace = true }
|
||||||
petgraph = { workspace = true }
|
petgraph = { workspace = true }
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ use crate::commands::ExitStatus;
|
||||||
use crate::commands::pip::operations;
|
use crate::commands::pip::operations;
|
||||||
use crate::commands::project::{ProjectError, find_requires_python};
|
use crate::commands::project::{ProjectError, find_requires_python};
|
||||||
use crate::commands::reporters::PythonDownloadReporter;
|
use crate::commands::reporters::PythonDownloadReporter;
|
||||||
use crate::printer::Printer;
|
use crate::printer::{Printer, Stderr};
|
||||||
use crate::settings::ResolverSettings;
|
use crate::settings::ResolverSettings;
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
#[derive(Debug, Error)]
|
||||||
|
|
@ -385,15 +385,12 @@ async fn build_impl(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
#[derive(Debug, Error)]
|
||||||
#[error("Failed to build `{source}`", source = source.cyan())]
|
#[error("Failed to build `{source}`")]
|
||||||
#[diagnostic()]
|
|
||||||
struct Diagnostic {
|
struct Diagnostic {
|
||||||
source: String,
|
source: String,
|
||||||
#[source]
|
#[source]
|
||||||
cause: anyhow::Error,
|
cause: anyhow::Error,
|
||||||
#[help]
|
|
||||||
help: Option<String>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let help = if let Error::Extract(uv_extract::Error::Tar(err)) = &err {
|
let help = if let Error::Extract(uv_extract::Error::Tar(err)) = &err {
|
||||||
|
|
@ -421,12 +418,19 @@ async fn build_impl(
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
let report = miette::Report::new(Diagnostic {
|
let diagnostic = Diagnostic {
|
||||||
source: source.to_string(),
|
source: source.to_string(),
|
||||||
cause: err.into(),
|
cause: err.into(),
|
||||||
help,
|
};
|
||||||
});
|
let _ = uv_warnings::write_error_chain(
|
||||||
anstream::eprint!("{report:?}");
|
&diagnostic,
|
||||||
|
Stderr::Enabled,
|
||||||
|
"error",
|
||||||
|
owo_colors::AnsiColors::Red,
|
||||||
|
);
|
||||||
|
if let Some(help) = help {
|
||||||
|
let _ = writeln!(Stderr::Enabled, "\n{}: {help}", "hint".bold().cyan());
|
||||||
|
}
|
||||||
|
|
||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
use std::fmt::Write;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::sync::{Arc, LazyLock};
|
use std::sync::{Arc, LazyLock};
|
||||||
|
|
||||||
use owo_colors::OwoColorize;
|
use owo_colors::OwoColorize;
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
|
use thiserror::Error;
|
||||||
use version_ranges::Ranges;
|
use version_ranges::Ranges;
|
||||||
|
|
||||||
use uv_distribution_types::{
|
use uv_distribution_types::{
|
||||||
|
|
@ -11,8 +13,10 @@ use uv_distribution_types::{
|
||||||
use uv_normalize::PackageName;
|
use uv_normalize::PackageName;
|
||||||
use uv_pep440::Version;
|
use uv_pep440::Version;
|
||||||
use uv_resolver::SentinelRange;
|
use uv_resolver::SentinelRange;
|
||||||
|
use uv_warnings::write_error_chain;
|
||||||
|
|
||||||
use crate::commands::pip;
|
use crate::commands::pip;
|
||||||
|
use crate::printer::Stderr;
|
||||||
|
|
||||||
static SUGGESTIONS: LazyLock<FxHashMap<PackageName, PackageName>> = LazyLock::new(|| {
|
static SUGGESTIONS: LazyLock<FxHashMap<PackageName, PackageName>> = LazyLock::new(|| {
|
||||||
let suggestions: Vec<(String, String)> =
|
let suggestions: Vec<(String, String)> =
|
||||||
|
|
@ -77,7 +81,7 @@ impl OperationDiagnostic {
|
||||||
if let Some(context) = self.context {
|
if let Some(context) = self.context {
|
||||||
no_solution_context(&err, context);
|
no_solution_context(&err, context);
|
||||||
} else if let Some(hint) = self.hint {
|
} else if let Some(hint) = self.hint {
|
||||||
no_solution_hint(err, hint);
|
no_solution_hint(err, &hint);
|
||||||
} else {
|
} else {
|
||||||
no_solution(&err);
|
no_solution(&err);
|
||||||
}
|
}
|
||||||
|
|
@ -122,9 +126,14 @@ impl OperationDiagnostic {
|
||||||
}
|
}
|
||||||
pip::operations::Error::Requirements(err) => {
|
pip::operations::Error::Requirements(err) => {
|
||||||
if let Some(context) = self.context {
|
if let Some(context) = self.context {
|
||||||
let err = miette::Report::msg(format!("{err}"))
|
let err = anyhow::Error::from(err)
|
||||||
.context(format!("Failed to resolve {context} requirement"));
|
.context(format!("Failed to resolve {context} requirement"));
|
||||||
anstream::eprint!("{err:?}");
|
let _ = write_error_chain(
|
||||||
|
err.as_ref(),
|
||||||
|
Stderr::Enabled,
|
||||||
|
"error",
|
||||||
|
owo_colors::AnsiColors::Red,
|
||||||
|
);
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
Some(pip::operations::Error::Requirements(err))
|
Some(pip::operations::Error::Requirements(err))
|
||||||
|
|
@ -133,7 +142,7 @@ impl OperationDiagnostic {
|
||||||
pip::operations::Error::Resolve(uv_resolver::ResolveError::Client(err))
|
pip::operations::Error::Resolve(uv_resolver::ResolveError::Client(err))
|
||||||
if !self.native_tls && err.is_ssl() =>
|
if !self.native_tls && err.is_ssl() =>
|
||||||
{
|
{
|
||||||
native_tls_hint(err);
|
native_tls_hint(&err);
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
pip::operations::Error::OutdatedEnvironment => {
|
pip::operations::Error::OutdatedEnvironment => {
|
||||||
|
|
@ -145,6 +154,14 @@ impl OperationDiagnostic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Display an error with an optional help message.
|
||||||
|
pub(crate) fn show_error(err: &dyn std::error::Error, help: Option<&str>) {
|
||||||
|
let _ = write_error_chain(err, Stderr::Enabled, "error", owo_colors::AnsiColors::Red);
|
||||||
|
if let Some(help) = help {
|
||||||
|
let _ = writeln!(Stderr::Enabled, "\n{}: {help}", "hint".bold().cyan());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Render a distribution failure (read, download or build) with a help message.
|
/// Render a distribution failure (read, download or build) with a help message.
|
||||||
pub(crate) fn dist_error(
|
pub(crate) fn dist_error(
|
||||||
kind: DistErrorKind,
|
kind: DistErrorKind,
|
||||||
|
|
@ -153,16 +170,13 @@ pub(crate) fn dist_error(
|
||||||
cause: Arc<uv_distribution::Error>,
|
cause: Arc<uv_distribution::Error>,
|
||||||
help: Option<String>,
|
help: Option<String>,
|
||||||
) {
|
) {
|
||||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
#[derive(Debug, Error)]
|
||||||
#[error("{kind} `{dist}`")]
|
#[error("{kind} `{dist}`")]
|
||||||
#[diagnostic()]
|
|
||||||
struct Diagnostic {
|
struct Diagnostic {
|
||||||
kind: DistErrorKind,
|
kind: DistErrorKind,
|
||||||
dist: Box<Dist>,
|
dist: Box<Dist>,
|
||||||
#[source]
|
#[source]
|
||||||
cause: Arc<uv_distribution::Error>,
|
cause: Arc<uv_distribution::Error>,
|
||||||
#[help]
|
|
||||||
help: Option<String>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let help = help.or_else(|| {
|
let help = help.or_else(|| {
|
||||||
|
|
@ -184,13 +198,8 @@ pub(crate) fn dist_error(
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let report = miette::Report::new(Diagnostic {
|
let err = Diagnostic { kind, dist, cause };
|
||||||
kind,
|
show_error(&err, help.as_deref());
|
||||||
dist,
|
|
||||||
cause,
|
|
||||||
help,
|
|
||||||
});
|
|
||||||
anstream::eprint!("{report:?}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render a requested distribution failure (read, download or build) with a help message.
|
/// Render a requested distribution failure (read, download or build) with a help message.
|
||||||
|
|
@ -201,16 +210,13 @@ pub(crate) fn requested_dist_error(
|
||||||
cause: Arc<uv_distribution::Error>,
|
cause: Arc<uv_distribution::Error>,
|
||||||
help: Option<String>,
|
help: Option<String>,
|
||||||
) {
|
) {
|
||||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
#[derive(Debug, Error)]
|
||||||
#[error("{kind} `{dist}`")]
|
#[error("{kind} `{dist}`")]
|
||||||
#[diagnostic()]
|
|
||||||
struct Diagnostic {
|
struct Diagnostic {
|
||||||
kind: DistErrorKind,
|
kind: DistErrorKind,
|
||||||
dist: Box<RequestedDist>,
|
dist: Box<RequestedDist>,
|
||||||
#[source]
|
#[source]
|
||||||
cause: Arc<uv_distribution::Error>,
|
cause: Arc<uv_distribution::Error>,
|
||||||
#[help]
|
|
||||||
help: Option<String>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let help = help.or_else(|| {
|
let help = help.or_else(|| {
|
||||||
|
|
@ -232,13 +238,8 @@ pub(crate) fn requested_dist_error(
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let report = miette::Report::new(Diagnostic {
|
let err = Diagnostic { kind, dist, cause };
|
||||||
kind,
|
show_error(&err, help.as_deref());
|
||||||
dist,
|
|
||||||
cause,
|
|
||||||
help,
|
|
||||||
});
|
|
||||||
anstream::eprint!("{report:?}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render an error in fetching a package's dependencies.
|
/// Render an error in fetching a package's dependencies.
|
||||||
|
|
@ -249,16 +250,13 @@ pub(crate) fn dependencies_error(
|
||||||
chain: &DerivationChain,
|
chain: &DerivationChain,
|
||||||
help: Option<String>,
|
help: Option<String>,
|
||||||
) {
|
) {
|
||||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
#[derive(Debug, Error)]
|
||||||
#[error("Failed to resolve dependencies for `{}` ({})", name.cyan(), format!("v{version}").cyan())]
|
#[error("Failed to resolve dependencies for `{name}` (v{version})")]
|
||||||
#[diagnostic()]
|
|
||||||
struct Diagnostic {
|
struct Diagnostic {
|
||||||
name: PackageName,
|
name: PackageName,
|
||||||
version: Version,
|
version: Version,
|
||||||
#[source]
|
#[source]
|
||||||
cause: Box<uv_resolver::ResolveError>,
|
cause: Box<uv_resolver::ResolveError>,
|
||||||
#[help]
|
|
||||||
help: Option<String>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let help = help.or_else(|| {
|
let help = help.or_else(|| {
|
||||||
|
|
@ -280,83 +278,62 @@ pub(crate) fn dependencies_error(
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let report = miette::Report::new(Diagnostic {
|
let err = Diagnostic {
|
||||||
name: name.clone(),
|
name: name.clone(),
|
||||||
version: version.clone(),
|
version: version.clone(),
|
||||||
cause: error,
|
cause: error,
|
||||||
help,
|
};
|
||||||
});
|
show_error(&err, help.as_deref());
|
||||||
anstream::eprint!("{report:?}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render a [`uv_resolver::NoSolutionError`].
|
/// Render a [`uv_resolver::NoSolutionError`].
|
||||||
pub(crate) fn no_solution(err: &uv_resolver::NoSolutionError) {
|
pub(crate) fn no_solution(err: &uv_resolver::NoSolutionError) {
|
||||||
let report = miette::Report::msg(format!("{err}")).context(err.header());
|
let err = anyhow::Error::msg(format!("{err}")).context(err.header().to_string());
|
||||||
anstream::eprint!("{report:?}");
|
let _ = write_error_chain(
|
||||||
|
err.as_ref(),
|
||||||
|
Stderr::Enabled,
|
||||||
|
"error",
|
||||||
|
owo_colors::AnsiColors::Red,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render a [`uv_resolver::NoSolutionError`] with dedicated context.
|
/// Render a [`uv_resolver::NoSolutionError`] with dedicated context.
|
||||||
pub(crate) fn no_solution_context(err: &uv_resolver::NoSolutionError, context: &'static str) {
|
pub(crate) fn no_solution_context(err: &uv_resolver::NoSolutionError, context: &'static str) {
|
||||||
let report = miette::Report::msg(format!("{err}")).context(err.header().with_context(context));
|
let err = anyhow::Error::msg(format!("{err}"))
|
||||||
anstream::eprint!("{report:?}");
|
.context(err.header().with_context(context).to_string());
|
||||||
|
let _ = write_error_chain(
|
||||||
|
err.as_ref(),
|
||||||
|
Stderr::Enabled,
|
||||||
|
"error",
|
||||||
|
owo_colors::AnsiColors::Red,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render a [`uv_resolver::NoSolutionError`] with a help message.
|
/// Render a [`uv_resolver::NoSolutionError`] with a help message.
|
||||||
pub(crate) fn no_solution_hint(err: Box<uv_resolver::NoSolutionError>, help: String) {
|
pub(crate) fn no_solution_hint(err: Box<uv_resolver::NoSolutionError>, help: &str) {
|
||||||
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
|
#[derive(Debug, Error)]
|
||||||
#[error("{header}")]
|
#[error("{header}")]
|
||||||
#[diagnostic()]
|
struct HeaderError {
|
||||||
struct Error {
|
|
||||||
/// The header to render in the error message.
|
/// The header to render in the error message.
|
||||||
header: uv_resolver::NoSolutionHeader,
|
header: uv_resolver::NoSolutionHeader,
|
||||||
|
|
||||||
/// The underlying error.
|
/// The underlying error.
|
||||||
#[source]
|
#[source]
|
||||||
err: Box<uv_resolver::NoSolutionError>,
|
err: Box<uv_resolver::NoSolutionError>,
|
||||||
|
|
||||||
/// The help message to display.
|
|
||||||
#[help]
|
|
||||||
help: String,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let header = err.header();
|
let header = err.header();
|
||||||
let report = miette::Report::new(Error { header, err, help });
|
let err = HeaderError { header, err };
|
||||||
anstream::eprint!("{report:?}");
|
show_error(&err, Some(help));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Render a [`uv_resolver::NoSolutionError`] with a help message.
|
/// Render an SSL error with a hint about native TLS.
|
||||||
pub(crate) fn native_tls_hint(err: uv_client::Error) {
|
pub(crate) fn native_tls_hint(err: &uv_client::Error) {
|
||||||
#[derive(Debug, miette::Diagnostic)]
|
let hint = format!(
|
||||||
#[diagnostic()]
|
"Consider enabling use of system TLS certificates with the `{}` command-line flag",
|
||||||
struct Error {
|
"--native-tls".green()
|
||||||
/// The underlying error.
|
);
|
||||||
err: uv_client::Error,
|
show_error(err, Some(&hint));
|
||||||
|
|
||||||
/// The help message to display.
|
|
||||||
#[help]
|
|
||||||
help: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl std::fmt::Display for Error {
|
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
||||||
write!(f, "{}", self.err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl std::error::Error for Error {
|
|
||||||
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
|
|
||||||
self.err.source()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let report = miette::Report::new(Error {
|
|
||||||
err,
|
|
||||||
help: format!(
|
|
||||||
"Consider enabling use of system TLS certificates with the `{}` command-line flag",
|
|
||||||
"--native-tls".green()
|
|
||||||
),
|
|
||||||
});
|
|
||||||
anstream::eprint!("{report:?}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Format a [`DerivationChain`] as a human-readable error message.
|
/// Format a [`DerivationChain`] as a human-readable error message.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ use std::path::Path;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use anstream::eprint;
|
|
||||||
use anyhow::{Context, bail};
|
use anyhow::{Context, bail};
|
||||||
use console::Term;
|
use console::Term;
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
@ -58,7 +57,7 @@ use crate::commands::reporters::PythonDownloadReporter;
|
||||||
use crate::commands::tool::common::{matching_packages, refine_interpreter};
|
use crate::commands::tool::common::{matching_packages, refine_interpreter};
|
||||||
use crate::commands::tool::{Target, ToolRequest};
|
use crate::commands::tool::{Target, ToolRequest};
|
||||||
use crate::commands::{diagnostics, project::environment::CachedEnvironment};
|
use crate::commands::{diagnostics, project::environment::CachedEnvironment};
|
||||||
use crate::printer::Printer;
|
use crate::printer::{Printer, Stderr};
|
||||||
use crate::settings::ResolverInstallerSettings;
|
use crate::settings::ResolverInstallerSettings;
|
||||||
use crate::settings::ResolverSettings;
|
use crate::settings::ResolverSettings;
|
||||||
|
|
||||||
|
|
@ -342,9 +341,13 @@ pub(crate) async fn run(
|
||||||
}
|
}
|
||||||
|
|
||||||
Err(ProjectError::Requirements(err)) => {
|
Err(ProjectError::Requirements(err)) => {
|
||||||
let err = miette::Report::msg(format!("{err}"))
|
let err = anyhow::Error::from(err).context("Failed to resolve `--with` requirement");
|
||||||
.context("Failed to resolve `--with` requirement");
|
let _ = uv_warnings::write_error_chain(
|
||||||
eprint!("{err:?}");
|
err.as_ref(),
|
||||||
|
Stderr::Enabled,
|
||||||
|
"error",
|
||||||
|
owo_colors::AnsiColors::Red,
|
||||||
|
);
|
||||||
return Ok(ExitStatus::Failure);
|
return Ok(ExitStatus::Failure);
|
||||||
}
|
}
|
||||||
Err(err) => return Err(err.into()),
|
Err(err) => return Err(err.into()),
|
||||||
|
|
|
||||||
|
|
@ -421,21 +421,6 @@ async fn run(mut cli: Cli) -> Result<ExitStatus> {
|
||||||
|
|
||||||
anstream::ColorChoice::write_global(globals.color.into());
|
anstream::ColorChoice::write_global(globals.color.into());
|
||||||
|
|
||||||
miette::set_hook(Box::new(|_| {
|
|
||||||
Box::new(
|
|
||||||
miette::MietteHandlerOpts::new()
|
|
||||||
.break_words(false)
|
|
||||||
.word_separator(textwrap::WordSeparator::AsciiSpace)
|
|
||||||
.word_splitter(textwrap::WordSplitter::NoHyphenation)
|
|
||||||
.wrap_lines(
|
|
||||||
std::env::var(EnvVars::UV_NO_WRAP)
|
|
||||||
.map(|_| false)
|
|
||||||
.unwrap_or(true),
|
|
||||||
)
|
|
||||||
.build(),
|
|
||||||
)
|
|
||||||
}))?;
|
|
||||||
|
|
||||||
// Don't initialize the rayon threadpool yet, this is too costly when we're doing a noop sync.
|
// Don't initialize the rayon threadpool yet, this is too costly when we're doing a noop sync.
|
||||||
uv_configuration::RAYON_PARALLELISM.store(globals.concurrency.installs, Ordering::Relaxed);
|
uv_configuration::RAYON_PARALLELISM.store(globals.concurrency.installs, Ordering::Relaxed);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,10 +148,10 @@ fn add_package_native_auth() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -67,10 +67,10 @@ fn branching_urls_overlapping() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `a` (v0.1.0)
|
error: Failed to resolve dependencies for `a` (v0.1.0)
|
||||||
╰─▶ Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
|
Caused by: Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
|
||||||
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
||||||
- https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
|
- https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -135,11 +135,12 @@ fn root_package_splits_but_transitive_conflict() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `b2` (v0.1.0)
|
error: Failed to resolve dependencies for `b2` (v0.1.0)
|
||||||
╰─▶ Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version >= '3.12'`:
|
Caused by: Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version >= '3.12'`:
|
||||||
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
||||||
- https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
|
- https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
|
||||||
help: `b2` (v0.1.0) was included because `a` (v0.1.0) depends on `b` (v0.1.0) which depends on `b2`
|
|
||||||
|
hint: `b2` (v0.1.0) was included because `a` (v0.1.0) depends on `b` (v0.1.0) which depends on `b2`
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -736,10 +737,10 @@ fn branching_urls_of_different_sources_conflict() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `a` (v0.1.0)
|
error: Failed to resolve dependencies for `a` (v0.1.0)
|
||||||
╰─▶ Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
|
Caused by: Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
|
||||||
- git+https://github.com/pytest-dev/iniconfig@93f5930e668c0d1ddf4597e38dd0dea4e2665e7a
|
- git+https://github.com/pytest-dev/iniconfig@93f5930e668c0d1ddf4597e38dd0dea4e2665e7a
|
||||||
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
- https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,16 +92,16 @@ fn build_basic() -> Result<()> {
|
||||||
fs_err::remove_dir_all(project.child("dist"))?;
|
fs_err::remove_dir_all(project.child("dist"))?;
|
||||||
|
|
||||||
// Error if there's nothing to build.
|
// Error if there's nothing to build.
|
||||||
uv_snapshot!(&filters, context.build(), @r###"
|
uv_snapshot!(&filters, context.build(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ [TEMP_DIR]/ does not appear to be a Python project, as neither `pyproject.toml` nor `setup.py` are present in the directory
|
Caused by: [TEMP_DIR]/ does not appear to be a Python project, as neither `pyproject.toml` nor `setup.py` are present in the directory
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Build to a specified path.
|
// Build to a specified path.
|
||||||
uv_snapshot!(&filters, context.build().arg("--out-dir").arg("out").current_dir(project.path()), @r###"
|
uv_snapshot!(&filters, context.build().arg("--out-dir").arg("out").current_dir(project.path()), @r###"
|
||||||
|
|
@ -352,26 +352,26 @@ fn build_wheel_from_sdist() -> Result<()> {
|
||||||
.assert(predicate::path::missing());
|
.assert(predicate::path::missing());
|
||||||
|
|
||||||
// Error if `--wheel` is not specified.
|
// Error if `--wheel` is not specified.
|
||||||
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
|
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
|
||||||
╰─▶ Pass `--wheel` explicitly to build a wheel from a source distribution
|
Caused by: Pass `--wheel` explicitly to build a wheel from a source distribution
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Error if `--sdist` is specified.
|
// Error if `--sdist` is specified.
|
||||||
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").arg("--sdist").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").arg("--sdist").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
|
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
|
||||||
╰─▶ Building an `--sdist` from a source distribution is not supported
|
Caused by: Building an `--sdist` from a source distribution is not supported
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Build the wheel from the sdist.
|
// Build the wheel from the sdist.
|
||||||
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").arg("--wheel").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0.tar.gz").arg("--wheel").current_dir(&project), @r###"
|
||||||
|
|
@ -394,15 +394,15 @@ fn build_wheel_from_sdist() -> Result<()> {
|
||||||
.assert(predicate::path::is_file());
|
.assert(predicate::path::is_file());
|
||||||
|
|
||||||
// Passing a wheel is an error.
|
// Passing a wheel is an error.
|
||||||
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0-py3-none-any.whl").arg("--wheel").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("./dist/project-0.1.0-py3-none-any.whl").arg("--wheel").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `[TEMP_DIR]/project/dist/project-0.1.0-py3-none-any.whl`
|
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0-py3-none-any.whl`
|
||||||
╰─▶ `dist/project-0.1.0-py3-none-any.whl` is not a valid build source. Expected to receive a source directory, or a source distribution ending in one of: `.tar.gz`, `.zip`, `.tar.bz2`, `.tar.lz`, `.tar.lzma`, `.tar.xz`, `.tar.zst`, `.tar`, `.tbz`, `.tgz`, `.tlz`, or `.txz`.
|
Caused by: `dist/project-0.1.0-py3-none-any.whl` is not a valid build source. Expected to receive a source directory, or a source distribution ending in one of: `.tar.gz`, `.zip`, `.tar.bz2`, `.tar.lz`, `.tar.lzma`, `.tar.xz`, `.tar.zst`, `.tar`, `.tbz`, `.tgz`, `.tlz`, or `.txz`.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -454,7 +454,7 @@ fn build_fail() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// Build the specified path.
|
// Build the specified path.
|
||||||
uv_snapshot!(&filters, context.build().arg("project"), @r###"
|
uv_snapshot!(&filters, context.build().arg("project"), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -473,11 +473,11 @@ fn build_fail() -> Result<()> {
|
||||||
File "<string>", line 2
|
File "<string>", line 2
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
IndentationError: unexpected indent
|
IndentationError: unexpected indent
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -790,7 +790,7 @@ fn build_all_with_failure() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// Build all the packages
|
// Build all the packages
|
||||||
uv_snapshot!(&filters, context.build().arg("--all").arg("--no-build-logs").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("--all").arg("--no-build-logs").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -803,13 +803,13 @@ fn build_all_with_failure() -> Result<()> {
|
||||||
[PKG] Building wheel from source distribution...
|
[PKG] Building wheel from source distribution...
|
||||||
Successfully built dist/member_a-0.1.0.tar.gz
|
Successfully built dist/member_a-0.1.0.tar.gz
|
||||||
Successfully built dist/member_a-0.1.0-py3-none-any.whl
|
Successfully built dist/member_a-0.1.0-py3-none-any.whl
|
||||||
× Failed to build `member-b @ [TEMP_DIR]/project/packages/member_b`
|
error: Failed to build `member-b @ [TEMP_DIR]/project/packages/member_b`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
Successfully built dist/project-0.1.0.tar.gz
|
Successfully built dist/project-0.1.0.tar.gz
|
||||||
Successfully built dist/project-0.1.0-py3-none-any.whl
|
Successfully built dist/project-0.1.0-py3-none-any.whl
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// project and member_a should be built, regardless of member_b build failure
|
// project and member_a should be built, regardless of member_b build failure
|
||||||
project
|
project
|
||||||
|
|
@ -869,18 +869,18 @@ fn build_constraints() -> Result<()> {
|
||||||
.touch()?;
|
.touch()?;
|
||||||
project.child("README").touch()?;
|
project.child("README").touch()?;
|
||||||
|
|
||||||
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ Failed to resolve requirements from `build-system.requires`
|
Caused by: Failed to resolve requirements from `build-system.requires`
|
||||||
├─▶ No solution found when resolving: `hatchling>=1.0`
|
Caused by: No solution found when resolving: `hatchling>=1.0`
|
||||||
╰─▶ Because you require hatchling>=1.0 and hatchling==0.1.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require hatchling>=1.0 and hatchling==0.1.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
project
|
project
|
||||||
.child("dist")
|
.child("dist")
|
||||||
|
|
@ -955,25 +955,25 @@ fn build_sha() -> Result<()> {
|
||||||
# via hatchling
|
# via hatchling
|
||||||
"})?;
|
"})?;
|
||||||
|
|
||||||
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ Failed to install requirements from `build-system.requires`
|
Caused by: Failed to install requirements from `build-system.requires`
|
||||||
├─▶ Failed to download `hatchling==1.22.4`
|
Caused by: Failed to download `hatchling==1.22.4`
|
||||||
╰─▶ Hash mismatch for `hatchling==1.22.4`
|
Caused by: Hash mismatch for `hatchling==1.22.4`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
|
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
|
||||||
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
||||||
"###);
|
");
|
||||||
|
|
||||||
project
|
project
|
||||||
.child("dist")
|
.child("dist")
|
||||||
|
|
@ -987,25 +987,25 @@ fn build_sha() -> Result<()> {
|
||||||
fs_err::remove_dir_all(project.child("dist"))?;
|
fs_err::remove_dir_all(project.child("dist"))?;
|
||||||
|
|
||||||
// Reject a missing hash with `--requires-hashes`.
|
// Reject a missing hash with `--requires-hashes`.
|
||||||
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").arg("--require-hashes").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").arg("--require-hashes").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ Failed to install requirements from `build-system.requires`
|
Caused by: Failed to install requirements from `build-system.requires`
|
||||||
├─▶ Failed to download `hatchling==1.22.4`
|
Caused by: Failed to download `hatchling==1.22.4`
|
||||||
╰─▶ Hash mismatch for `hatchling==1.22.4`
|
Caused by: Hash mismatch for `hatchling==1.22.4`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
|
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
|
||||||
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
|
||||||
"###);
|
");
|
||||||
|
|
||||||
project
|
project
|
||||||
.child("dist")
|
.child("dist")
|
||||||
|
|
@ -1022,18 +1022,18 @@ fn build_sha() -> Result<()> {
|
||||||
let constraints = project.child("constraints.txt");
|
let constraints = project.child("constraints.txt");
|
||||||
constraints.write_str("hatchling==1.22.4")?;
|
constraints.write_str("hatchling==1.22.4")?;
|
||||||
|
|
||||||
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").arg("--require-hashes").current_dir(&project), @r###"
|
uv_snapshot!(&filters, context.build().arg("--build-constraint").arg("constraints.txt").arg("--require-hashes").current_dir(&project), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ Failed to resolve requirements from `build-system.requires`
|
Caused by: Failed to resolve requirements from `build-system.requires`
|
||||||
├─▶ No solution found when resolving: `hatchling`
|
Caused by: No solution found when resolving: `hatchling`
|
||||||
╰─▶ In `--require-hashes` mode, all requirements must be pinned upfront with `==`, but found: `hatchling`
|
Caused by: In `--require-hashes` mode, all requirements must be pinned upfront with `==`, but found: `hatchling`
|
||||||
"###);
|
");
|
||||||
|
|
||||||
project
|
project
|
||||||
.child("dist")
|
.child("dist")
|
||||||
|
|
@ -1260,18 +1260,18 @@ fn build_hide_build_output_on_failure() -> Result<()> {
|
||||||
"#})?;
|
"#})?;
|
||||||
|
|
||||||
// With `UV_HIDE_BUILD_OUTPUT`, the output is hidden even on failure.
|
// With `UV_HIDE_BUILD_OUTPUT`, the output is hidden even on failure.
|
||||||
uv_snapshot!(&filters, context.build().arg("project").env(EnvVars::UV_HIDE_BUILD_OUTPUT, "1").env("FOO", "bar"), @r###"
|
uv_snapshot!(&filters, context.build().arg("project").env(EnvVars::UV_HIDE_BUILD_OUTPUT, "1").env("FOO", "bar"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -1787,15 +1787,15 @@ fn build_list_files_errors() -> Result<()> {
|
||||||
.arg(&anyio_local)
|
.arg(&anyio_local)
|
||||||
.arg("--out-dir")
|
.arg("--out-dir")
|
||||||
.arg(context.temp_dir.join("output2"))
|
.arg(context.temp_dir.join("output2"))
|
||||||
.arg("--list"), @r###"
|
.arg("--list"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `[WORKSPACE]/test/packages/anyio_local`
|
error: Failed to build `[WORKSPACE]/test/packages/anyio_local`
|
||||||
╰─▶ Can only use `--list` with the uv backend
|
Caused by: Can only use `--list` with the uv backend
|
||||||
"###);
|
");
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1820,16 +1820,16 @@ fn build_version_mismatch() -> Result<()> {
|
||||||
.arg(wrong_source_dist.path())
|
.arg(wrong_source_dist.path())
|
||||||
.arg("--wheel")
|
.arg("--wheel")
|
||||||
.arg("--out-dir")
|
.arg("--out-dir")
|
||||||
.arg(context.temp_dir.path()), @r###"
|
.arg(context.temp_dir.path()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building wheel from source distribution...
|
Building wheel from source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/anyio-1.2.3.tar.gz`
|
error: Failed to build `[TEMP_DIR]/anyio-1.2.3.tar.gz`
|
||||||
╰─▶ The source distribution declares version 1.2.3, but the wheel declares version 4.3.0+foo
|
Caused by: The source distribution declares version 1.2.3, but the wheel declares version 4.3.0+foo
|
||||||
"###);
|
");
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2101,8 +2101,8 @@ fn force_pep517() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution (uv build backend)...
|
Building source distribution (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ Expected a Python module at: src/does_not_exist/__init__.py
|
Caused by: Expected a Python module at: src/does_not_exist/__init__.py
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.build().arg("--force-pep517").env(EnvVars::RUST_BACKTRACE, "0"), @r"
|
uv_snapshot!(context.filters(), context.build().arg("--force-pep517").env(EnvVars::RUST_BACKTRACE, "0"), @r"
|
||||||
|
|
@ -2113,10 +2113,10 @@ fn force_pep517() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
Error: Missing source directory at: `src`
|
Error: Missing source directory at: `src`
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `uv_build.build_sdist` failed (exit status: 1)
|
Caused by: Call to `uv_build.build_sdist` failed (exit status: 1)
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2171,11 +2171,12 @@ fn venv_included_in_sdist() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution...
|
Building source distribution...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
├─▶ Invalid tar file
|
Caused by: Invalid tar file
|
||||||
├─▶ failed to unpack `[CACHE_DIR]/sdists-v9/[TMP]/python`
|
Caused by: failed to unpack `[CACHE_DIR]/sdists-v9/[TMP]/python`
|
||||||
╰─▶ symlink path `[PYTHON-3.12]` is absolute, but external symlinks are not allowed
|
Caused by: symlink path `[PYTHON-3.12]` is absolute, but external symlinks are not allowed
|
||||||
help: This file seems to be part of a virtual environment. Virtual environments must be excluded from source distributions.
|
|
||||||
|
hint: This file seems to be part of a virtual environment. Virtual environments must be excluded from source distributions.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -1003,8 +1003,8 @@ fn error_on_relative_module_root_outside_project_root() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution (uv build backend)...
|
Building source distribution (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ Module root must be inside the project: ..
|
Caused by: Module root must be inside the project: ..
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.build().arg("--wheel"), @r"
|
uv_snapshot!(context.filters(), context.build().arg("--wheel"), @r"
|
||||||
|
|
@ -1014,8 +1014,8 @@ fn error_on_relative_module_root_outside_project_root() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building wheel (uv build backend)...
|
Building wheel (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ Module root must be inside the project: ..
|
Caused by: Module root must be inside the project: ..
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1058,8 +1058,8 @@ fn error_on_relative_data_dir_outside_project_root() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution (uv build backend)...
|
Building source distribution (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
╰─▶ The path for the data directory headers must be inside the project: ../header
|
Caused by: The path for the data directory headers must be inside the project: ../header
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.build().arg("project").arg("--wheel"), @r"
|
uv_snapshot!(context.filters(), context.build().arg("project").arg("--wheel"), @r"
|
||||||
|
|
@ -1069,8 +1069,8 @@ fn error_on_relative_data_dir_outside_project_root() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building wheel (uv build backend)...
|
Building wheel (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/project`
|
error: Failed to build `[TEMP_DIR]/project`
|
||||||
╰─▶ The path for the data directory headers must be inside the project: ../header
|
Caused by: The path for the data directory headers must be inside the project: ../header
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1102,8 +1102,8 @@ fn venv_in_source_tree() {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution (uv build backend)...
|
Building source distribution (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ Virtual environments must not be added to source distributions or wheels, remove the directory or exclude it from the build: src/foo/.venv
|
Caused by: Virtual environments must not be added to source distributions or wheels, remove the directory or exclude it from the build: src/foo/.venv
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.build().arg("--wheel"), @r"
|
uv_snapshot!(context.filters(), context.build().arg("--wheel"), @r"
|
||||||
|
|
@ -1113,8 +1113,8 @@ fn venv_in_source_tree() {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building wheel (uv build backend)...
|
Building wheel (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/`
|
error: Failed to build `[TEMP_DIR]/`
|
||||||
╰─▶ Virtual environments must not be added to source distributions or wheels, remove the directory or exclude it from the build: src/foo/.venv
|
Caused by: Virtual environments must not be added to source distributions or wheels, remove the directory or exclude it from the build: src/foo/.venv
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1211,13 +1211,13 @@ fn invalid_pyproject_toml() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Building source distribution (uv build backend)...
|
Building source distribution (uv build backend)...
|
||||||
× Failed to build `[TEMP_DIR]/child`
|
error: Failed to build `[TEMP_DIR]/child`
|
||||||
├─▶ Invalid metadata format in: child/pyproject.toml
|
Caused by: Invalid metadata format in: child/pyproject.toml
|
||||||
╰─▶ TOML parse error at line 2, column 8
|
Caused by: TOML parse error at line 2, column 8
|
||||||
|
|
|
|
||||||
2 | name = 1
|
2 | name = 1
|
||||||
| ^
|
| ^
|
||||||
invalid type: integer `1`, expected a string
|
invalid type: integer `1`, expected a string
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -317,12 +317,12 @@ fn prune_unzipped() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because all versions of iniconfig need to be downloaded from a registry and you require iniconfig, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because all versions of iniconfig need to be downloaded from a registry and you require iniconfig, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Pre-releases are available for `iniconfig` in the requested range (e.g., 0.2.dev0), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
hint: Pre-releases are available for `iniconfig` in the requested range (e.g., 0.2.dev0), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -4473,16 +4473,17 @@ fn add_error() -> Result<()> {
|
||||||
dependencies = []
|
dependencies = []
|
||||||
"#})?;
|
"#})?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.add().arg("xyz"), @r###"
|
uv_snapshot!(context.filters(), context.add().arg("xyz"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there are no versions of xyz and your project depends on xyz, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because there are no versions of xyz and your project depends on xyz, we can conclude that your project's requirements are unsatisfiable.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
"###);
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.add().arg("xyz").arg("--frozen"), @r###"
|
uv_snapshot!(context.filters(), context.add().arg("xyz").arg("--frozen"), @r###"
|
||||||
success: true
|
success: true
|
||||||
|
|
@ -8570,25 +8571,26 @@ fn fail_to_add_revert_project() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 3 packages in [TIME]
|
Resolved 3 packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 1, in <module>
|
File "<string>", line 1, in <module>
|
||||||
ZeroDivisionError: division by zero
|
ZeroDivisionError: division by zero
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
||||||
|
|
@ -8672,25 +8674,26 @@ fn fail_to_edit_revert_project() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 3 packages in [TIME]
|
Resolved 3 packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 1, in <module>
|
File "<string>", line 1, in <module>
|
||||||
ZeroDivisionError: division by zero
|
ZeroDivisionError: division by zero
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
||||||
|
|
@ -8782,28 +8785,29 @@ fn fail_to_add_revert_workspace_root() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Added `broken` to workspace members
|
Added `broken` to workspace members
|
||||||
Resolved 3 packages in [TIME]
|
Resolved 3 packages in [TIME]
|
||||||
× Failed to build `broken @ file://[TEMP_DIR]/broken`
|
error: Failed to build `broken @ file://[TEMP_DIR]/broken`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 448, in get_requires_for_build_editable
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 448, in get_requires_for_build_editable
|
||||||
return self.get_requires_for_build_wheel(config_settings)
|
return self.get_requires_for_build_wheel(config_settings)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 1, in <module>
|
File "<string>", line 1, in <module>
|
||||||
ZeroDivisionError: division by zero
|
ZeroDivisionError: division by zero
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
||||||
|
|
@ -8897,28 +8901,29 @@ fn fail_to_add_revert_workspace_member() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Added `broken` to workspace members
|
Added `broken` to workspace members
|
||||||
Resolved 4 packages in [TIME]
|
Resolved 4 packages in [TIME]
|
||||||
× Failed to build `broken @ file://[TEMP_DIR]/broken`
|
error: Failed to build `broken @ file://[TEMP_DIR]/broken`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 448, in get_requires_for_build_editable
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 448, in get_requires_for_build_editable
|
||||||
return self.get_requires_for_build_wheel(config_settings)
|
return self.get_requires_for_build_wheel(config_settings)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 1, in <module>
|
File "<string>", line 1, in <module>
|
||||||
ZeroDivisionError: division by zero
|
ZeroDivisionError: division by zero
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
let pyproject_toml = fs_err::read_to_string(context.temp_dir.join("pyproject.toml"))?;
|
||||||
|
|
@ -9622,18 +9627,19 @@ fn add_shadowed_name() -> Result<()> {
|
||||||
"#})?;
|
"#})?;
|
||||||
|
|
||||||
// Pinned constrained, check for a direct dependency loop.
|
// Pinned constrained, check for a direct dependency loop.
|
||||||
uv_snapshot!(context.filters(), context.add().arg("dagster-webserver==1.6.13"), @r###"
|
uv_snapshot!(context.filters(), context.add().arg("dagster-webserver==1.6.13"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because dagster-webserver==1.6.13 depends on your project and your project depends on dagster-webserver==1.6.13, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because dagster-webserver==1.6.13 depends on your project and your project depends on dagster-webserver==1.6.13, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The package `dagster-webserver` depends on the package `dagster` but the name is shadowed by your project. Consider changing the name of the project.
|
hint: The package `dagster-webserver` depends on the package `dagster` but the name is shadowed by your project. Consider changing the name of the project.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
"###);
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
|
");
|
||||||
|
|
||||||
// Constraint with several available versions, check for an indirect dependency loop.
|
// Constraint with several available versions, check for an indirect dependency loop.
|
||||||
uv_snapshot!(context.filters(), context.add().arg("dagster-webserver>=1.6.11,<1.7.0"), @r"
|
uv_snapshot!(context.filters(), context.add().arg("dagster-webserver>=1.6.11,<1.7.0"), @r"
|
||||||
|
|
@ -9642,17 +9648,18 @@ fn add_shadowed_name() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of dagster-webserver are available:
|
Caused by: Because only the following versions of dagster-webserver are available:
|
||||||
dagster-webserver<=1.6.11
|
dagster-webserver<=1.6.11
|
||||||
dagster-webserver==1.6.12
|
dagster-webserver==1.6.12
|
||||||
dagster-webserver==1.6.13
|
dagster-webserver==1.6.13
|
||||||
and dagster-webserver==1.6.11 depends on your project, we can conclude that dagster-webserver>=1.6.11,<1.6.12 depends on your project.
|
and dagster-webserver==1.6.11 depends on your project, we can conclude that dagster-webserver>=1.6.11,<1.6.12 depends on your project.
|
||||||
And because dagster-webserver==1.6.12 depends on your project, we can conclude that dagster-webserver>=1.6.11,<1.6.13 depends on your project.
|
And because dagster-webserver==1.6.12 depends on your project, we can conclude that dagster-webserver>=1.6.11,<1.6.13 depends on your project.
|
||||||
And because dagster-webserver==1.6.13 depends on your project and your project depends on dagster-webserver>=1.6.11, we can conclude that your project's requirements are unsatisfiable.
|
And because dagster-webserver==1.6.13 depends on your project and your project depends on dagster-webserver>=1.6.11, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The package `dagster-webserver` depends on the package `dagster` but the name is shadowed by your project. Consider changing the name of the project.
|
hint: The package `dagster-webserver` depends on the package `dagster` but the name is shadowed by your project. Consider changing the name of the project.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -9747,11 +9754,12 @@ fn add_warn_index_url() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Indexes specified via `--extra-index-url` will not be persisted to the `pyproject.toml` file; use `--index` instead.
|
warning: Indexes specified via `--extra-index-url` will not be persisted to the `pyproject.toml` file; use `--index` instead.
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only idna==2.7 is available and your project depends on idna>=3.6, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because only idna==2.7 is available and your project depends on idna>=3.6, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `idna` was found on https://test.pypi.org/simple, but not at the requested version (idna>=3.6). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
hint: `idna` was found on https://test.pypi.org/simple, but not at the requested version (idna>=3.6). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -12951,18 +12959,19 @@ fn add_with_build_constraints() -> Result<()> {
|
||||||
build-constraint-dependencies = ["setuptools==1"]
|
build-constraint-dependencies = ["setuptools==1"]
|
||||||
"#})?;
|
"#})?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.add().arg("requests==1.2"), @r###"
|
uv_snapshot!(context.filters(), context.add().arg("requests==1.2"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
"###);
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
|
");
|
||||||
|
|
||||||
let pyproject_toml = context.temp_dir.child("pyproject.toml");
|
let pyproject_toml = context.temp_dir.child("pyproject.toml");
|
||||||
pyproject_toml.write_str(indoc! {r#"
|
pyproject_toml.write_str(indoc! {r#"
|
||||||
|
|
@ -13115,11 +13124,12 @@ fn add_full_url_in_keyring() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Keyring request for public@https://pypi-proxy.fly.dev/basic-auth/simple
|
Keyring request for public@https://pypi-proxy.fly.dev/basic-auth/simple
|
||||||
Keyring request for public@pypi-proxy.fly.dev
|
Keyring request for public@pypi-proxy.fly.dev
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13150,11 +13160,12 @@ fn add_stop_index_search_early_on_auth_failure() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13231,11 +13242,12 @@ fn add_empty_ignore_error_codes() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because flask was not found in the package registry and your project depends on flask, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because flask was not found in the package registry and your project depends on flask, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://download.pytorch.org/whl/cpu) returned a 403 Forbidden error. This could indicate lack of valid authentication credentials, or the package may not exist on this index.
|
hint: An index URL (https://download.pytorch.org/whl/cpu) returned a 403 Forbidden error. This could indicate lack of valid authentication credentials, or the package may not exist on this index.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13270,9 +13282,10 @@ fn add_missing_package_on_pytorch() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because fakepkg was not found in the package registry and your project depends on fakepkg, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because fakepkg was not found in the package registry and your project depends on fakepkg, we can conclude that your project's requirements are unsatisfiable.
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13585,11 +13598,12 @@ fn add_auth_policy_never_with_env_var_credentials() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -13679,11 +13693,12 @@ async fn add_redirect_cross_origin() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -13808,11 +13823,12 @@ async fn add_redirect_with_keyring_cross_origin() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Keyring request for public@http://[LOCALHOST]/
|
Keyring request for public@http://[LOCALHOST]/
|
||||||
Keyring request for public@[LOCALHOST]
|
Keyring request for public@[LOCALHOST]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
|
||||||
|
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -969,16 +969,16 @@ fn requirements_txt_frozen() -> Result<()> {
|
||||||
// Remove the child `pyproject.toml`.
|
// Remove the child `pyproject.toml`.
|
||||||
fs_err::remove_dir_all(child.path())?;
|
fs_err::remove_dir_all(child.path())?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.export().arg("--all-packages"), @r###"
|
uv_snapshot!(context.filters(), context.export().arg("--all-packages"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `child`
|
Caused by: Failed to parse entry: `child`
|
||||||
╰─▶ `child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
|
Caused by: `child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
|
||||||
"###);
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.export().arg("--all-packages").arg("--frozen"), @r###"
|
uv_snapshot!(context.filters(), context.export().arg("--all-packages").arg("--frozen"), @r###"
|
||||||
success: true
|
success: true
|
||||||
|
|
@ -1355,18 +1355,18 @@ fn requirements_txt_ssh_git_username() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `uv-private-pypackage @ git+ssh://git@github.com/astral-test/uv-private-pypackage.git@d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
|
error: Failed to download and build `uv-private-pypackage @ git+ssh://git@github.com/astral-test/uv-private-pypackage.git@d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
|
||||||
├─▶ Git operation failed
|
Caused by: Git operation failed
|
||||||
├─▶ failed to clone into: [PATH]
|
Caused by: failed to clone into: [PATH]
|
||||||
├─▶ failed to fetch branch, tag, or commit `d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
|
Caused by: failed to fetch branch, tag, or commit `d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
|
||||||
╰─▶ process didn't exit successfully: [GIT_COMMAND_ERROR]
|
Caused by: process didn't exit successfully: [GIT_COMMAND_ERROR]
|
||||||
--- stderr
|
--- stderr
|
||||||
Load key "[TEMP_DIR]/fake_deploy_key": [ERROR]
|
Load key "[TEMP_DIR]/fake_deploy_key": [ERROR]
|
||||||
git@github.com: Permission denied (publickey).
|
git@github.com: Permission denied (publickey).
|
||||||
fatal: Could not read from remote repository.
|
fatal: Could not read from remote repository.
|
||||||
|
|
||||||
Please make sure you have the correct access rights
|
Please make sure you have the correct access rights
|
||||||
and the repository exists.
|
and the repository exists.
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
let ssh_deploy_key = context.temp_dir.child("uv_test_key");
|
let ssh_deploy_key = context.temp_dir.child("uv_test_key");
|
||||||
|
|
@ -5970,16 +5970,16 @@ fn cyclonedx_export_workspace_frozen() -> Result<()> {
|
||||||
// Remove the child `pyproject.toml`.
|
// Remove the child `pyproject.toml`.
|
||||||
fs_err::remove_dir_all(child.path())?;
|
fs_err::remove_dir_all(child.path())?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.export().arg("--format").arg("cyclonedx1.5").arg("--all-packages"), @r###"
|
uv_snapshot!(context.filters(), context.export().arg("--format").arg("cyclonedx1.5").arg("--all-packages"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `child`
|
Caused by: Failed to parse entry: `child`
|
||||||
╰─▶ `child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
|
Caused by: `child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
|
||||||
"###);
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.export().arg("--format").arg("cyclonedx1.5").arg("--all-packages").arg("--frozen"), @r#"
|
uv_snapshot!(context.filters(), context.export().arg("--format").arg("cyclonedx1.5").arg("--all-packages").arg("--frozen"), @r#"
|
||||||
success: true
|
success: true
|
||||||
|
|
|
||||||
|
|
@ -2158,11 +2158,12 @@ fn lock_project_with_build_constraints() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
help: `requests` (v1.2.0) was included because `project` (v0.1.0) depends on `requests==1.2`
|
|
||||||
|
hint: `requests` (v1.2.0) was included because `project` (v0.1.0) depends on `requests==1.2`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2935,9 +2936,9 @@ fn lock_conflicting_project_basic1() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on sortedcontainers==2.3.0 and project:foo depends on sortedcontainers==2.4.0, we can conclude that your project and project:foo are incompatible.
|
Caused by: Because your project depends on sortedcontainers==2.3.0 and project:foo depends on sortedcontainers==2.4.0, we can conclude that your project and project:foo are incompatible.
|
||||||
And because your project requires your project and project:foo, we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires your project and project:foo, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// And now with the same group configuration, we tell uv about the
|
// And now with the same group configuration, we tell uv about the
|
||||||
|
|
@ -3338,9 +3339,9 @@ fn lock_conflicting_workspace_members_depends_direct() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Declaring conflicts for packages (`package = ...`) is experimental and may change without warning. Pass `--preview-features package-conflicts` to disable this warning.
|
warning: Declaring conflicts for packages (`package = ...`) is experimental and may change without warning. Pass `--preview-features package-conflicts` to disable this warning.
|
||||||
× No solution found when resolving dependencies for split (included: example; excluded: subexample):
|
error: No solution found when resolving dependencies for split (included: example; excluded: subexample):
|
||||||
╰─▶ Because subexample depends on sortedcontainers==2.4.0 and example depends on sortedcontainers==2.3.0, we can conclude that example and subexample are incompatible.
|
Caused by: Because subexample depends on sortedcontainers==2.4.0 and example depends on sortedcontainers==2.3.0, we can conclude that example and subexample are incompatible.
|
||||||
And because example depends on subexample and your workspace requires example, we can conclude that your workspace's requirements are unsatisfiable.
|
And because example depends on subexample and your workspace requires example, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3635,10 +3636,10 @@ fn lock_conflicting_workspace_members_depends_transitive() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: Declaring conflicts for packages (`package = ...`) is experimental and may change without warning. Pass `--preview-features package-conflicts` to disable this warning.
|
warning: Declaring conflicts for packages (`package = ...`) is experimental and may change without warning. Pass `--preview-features package-conflicts` to disable this warning.
|
||||||
× No solution found when resolving dependencies for split (included: example; excluded: subexample):
|
error: No solution found when resolving dependencies for split (included: example; excluded: subexample):
|
||||||
╰─▶ Because subexample depends on sortedcontainers==2.4.0 and indirection depends on subexample, we can conclude that indirection depends on sortedcontainers==2.4.0.
|
Caused by: Because subexample depends on sortedcontainers==2.4.0 and indirection depends on subexample, we can conclude that indirection depends on sortedcontainers==2.4.0.
|
||||||
And because example depends on sortedcontainers==2.3.0, we can conclude that example and indirection are incompatible.
|
And because example depends on sortedcontainers==2.3.0, we can conclude that example and indirection are incompatible.
|
||||||
And because your workspace requires example and indirection, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires example and indirection, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4081,9 +4082,9 @@ fn lock_conflicting_mixed() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project:project1 depends on sortedcontainers==2.3.0 and project[project2] depends on sortedcontainers==2.4.0, we can conclude that project:project1 and project[project2] are incompatible.
|
Caused by: Because project:project1 depends on sortedcontainers==2.3.0 and project[project2] depends on sortedcontainers==2.4.0, we can conclude that project:project1 and project[project2] are incompatible.
|
||||||
And because your project requires project[project2] and project:project1, we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[project2] and project:project1, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// And now with the same extra/group configuration, we tell uv
|
// And now with the same extra/group configuration, we tell uv
|
||||||
|
|
@ -5217,24 +5218,24 @@ fn lock_requires_python() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version >= '3.7' and python_full_version < '3.7.9'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.7' and python_full_version < '3.7.9'):
|
||||||
╰─▶ Because the requested Python version (>=3.7) does not satisfy Python>=3.7.9 and pygls>=1.1.0,<=1.2.1 depends on Python>=3.7.9,<4, we can conclude that pygls>=1.1.0,<=1.2.1 cannot be used.
|
Caused by: Because the requested Python version (>=3.7) does not satisfy Python>=3.7.9 and pygls>=1.1.0,<=1.2.1 depends on Python>=3.7.9,<4, we can conclude that pygls>=1.1.0,<=1.2.1 cannot be used.
|
||||||
And because only the following versions of pygls are available:
|
And because only the following versions of pygls are available:
|
||||||
pygls<=1.1.0
|
pygls<=1.1.0
|
||||||
pygls==1.1.1
|
pygls==1.1.1
|
||||||
pygls==1.1.2
|
pygls==1.1.2
|
||||||
pygls==1.2.0
|
pygls==1.2.0
|
||||||
pygls==1.2.1
|
pygls==1.2.1
|
||||||
pygls==1.3.0
|
pygls==1.3.0
|
||||||
we can conclude that pygls>=1.1.0,<1.3.0 cannot be used. (1)
|
we can conclude that pygls>=1.1.0,<1.3.0 cannot be used. (1)
|
||||||
|
|
||||||
Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and pygls==1.3.0 depends on Python>=3.8, we can conclude that pygls==1.3.0 cannot be used.
|
Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and pygls==1.3.0 depends on Python>=3.8, we can conclude that pygls==1.3.0 cannot be used.
|
||||||
And because we know from (1) that pygls>=1.1.0,<1.3.0 cannot be used, we can conclude that pygls>=1.1.0 cannot be used.
|
And because we know from (1) that pygls>=1.1.0,<1.3.0 cannot be used, we can conclude that pygls>=1.1.0 cannot be used.
|
||||||
And because your project depends on pygls>=1.1.0, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on pygls>=1.1.0, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `requires-python` value (>=3.7) includes Python versions that are not supported by your dependencies (e.g., pygls>=1.1.0,<=1.2.1 only supports >=3.7.9, <4). Consider using a more restrictive `requires-python` value (like >=3.7.9, <4).
|
hint: The `requires-python` value (>=3.7) includes Python versions that are not supported by your dependencies (e.g., pygls>=1.1.0,<=1.2.1 only supports >=3.7.9, <4). Consider using a more restrictive `requires-python` value (like >=3.7.9, <4).
|
||||||
|
|
||||||
hint: While the active Python version is 3.12, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
hint: While the active Python version is 3.12, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Require >=3.7, and allow locking to a version of `pygls` that is compatible (==1.0.1).
|
// Require >=3.7, and allow locking to a version of `pygls` that is compatible (==1.0.1).
|
||||||
|
|
@ -8227,16 +8228,17 @@ fn lock_invalid_hash() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `idna==3.6`
|
error: Failed to download `idna==3.6`
|
||||||
╰─▶ Hash mismatch for `idna==3.6`
|
Caused by: Hash mismatch for `idna==3.6`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:aecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca
|
sha256:aecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca
|
||||||
sha256:d05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
|
sha256:d05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
|
sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
|
||||||
help: `idna` (v3.6) was included because `project` (v0.1.0) depends on `anyio` (v3.7.0) which depends on `idna`
|
|
||||||
|
hint: `idna` (v3.6) was included because `project` (v0.1.0) depends on `anyio` (v3.7.0) which depends on `idna`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -8438,17 +8440,17 @@ fn lock_requires_python_no_wheels() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because dearpygui==1.9.1 has no wheels with a matching Python version tag (e.g., `cp312`) and your project depends on dearpygui==1.9.1, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because dearpygui==1.9.1 has no wheels with a matching Python version tag (e.g., `cp312`) and your project depends on dearpygui==1.9.1, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Wheels are available for `dearpygui` (v1.9.1) with the following Python ABI tags: `cp37m`, `cp38`, `cp39`, `cp310`, `cp311`
|
hint: Wheels are available for `dearpygui` (v1.9.1) with the following Python ABI tags: `cp37m`, `cp38`, `cp39`, `cp310`, `cp311`
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -8920,16 +8922,16 @@ fn lock_non_workspace_source() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&child), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&child), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `child`
|
Caused by: Failed to parse entry: `child`
|
||||||
╰─▶ `child` is included as a workspace member, but references a path in `tool.uv.sources`. Workspace members must be declared as workspace sources (e.g., `child = { workspace = true }`).
|
Caused by: `child` is included as a workspace member, but references a path in `tool.uv.sources`. Workspace members must be declared as workspace sources (e.g., `child = { workspace = true }`).
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -8971,16 +8973,16 @@ fn lock_no_workspace_source() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&child), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&child), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `child`
|
Caused by: Failed to parse entry: `child`
|
||||||
╰─▶ `child` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `child = { workspace = true }`)
|
Caused by: `child` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `child = { workspace = true }`)
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -9145,9 +9147,9 @@ fn lock_index_workspace_member() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the package registry and child depends on iniconfig>=2, we can conclude that child's requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the package registry and child depends on iniconfig>=2, we can conclude that child's requirements are unsatisfiable.
|
||||||
And because your workspace requires child, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires child, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock()
|
uv_snapshot!(context.filters(), context.lock()
|
||||||
|
|
@ -9493,30 +9495,32 @@ fn lock_redact_https() -> Result<()> {
|
||||||
|
|
||||||
// Installing from the lockfile should fail without credentials. Omit the root, so that we fail
|
// Installing from the lockfile should fail without credentials. Omit the root, so that we fail
|
||||||
// when installing `iniconfig`, rather than when building `foo`.
|
// when installing `iniconfig`, rather than when building `foo`.
|
||||||
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--index-url").arg("https://pypi-proxy.fly.dev/basic-auth/simple").arg("--no-install-project"), @r###"
|
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--index-url").arg("https://pypi-proxy.fly.dev/basic-auth/simple").arg("--no-install-project"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `iniconfig==2.0.0`
|
error: Failed to download `iniconfig==2.0.0`
|
||||||
├─▶ Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
Caused by: Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
╰─▶ HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
Caused by: HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
||||||
help: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
|
||||||
"###);
|
hint: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
||||||
|
");
|
||||||
|
|
||||||
// Installing from the lockfile should fail without an index.
|
// Installing from the lockfile should fail without an index.
|
||||||
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--no-install-project"), @r###"
|
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--no-install-project"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `iniconfig==2.0.0`
|
error: Failed to download `iniconfig==2.0.0`
|
||||||
├─▶ Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
Caused by: Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
╰─▶ HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
Caused by: HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
||||||
help: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
|
||||||
"###);
|
hint: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
||||||
|
");
|
||||||
|
|
||||||
// Installing from the lockfile should succeed when credentials are included on the command-line.
|
// Installing from the lockfile should succeed when credentials are included on the command-line.
|
||||||
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--index-url").arg("https://public:heron@pypi-proxy.fly.dev/basic-auth/simple"), @r###"
|
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--index-url").arg("https://public:heron@pypi-proxy.fly.dev/basic-auth/simple"), @r###"
|
||||||
|
|
@ -9544,17 +9548,18 @@ fn lock_redact_https() -> Result<()> {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Installing without credentials will fail without a cache.
|
// Installing without credentials will fail without a cache.
|
||||||
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--reinstall").arg("--no-cache").arg("--no-install-project"), @r###"
|
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--reinstall").arg("--no-cache").arg("--no-install-project"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `iniconfig==2.0.0`
|
error: Failed to download `iniconfig==2.0.0`
|
||||||
├─▶ Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
Caused by: Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
╰─▶ HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
Caused by: HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl)
|
||||||
help: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
|
||||||
"###);
|
hint: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
|
||||||
|
");
|
||||||
|
|
||||||
// Installing with credentials from with `UV_INDEX_URL` should succeed.
|
// Installing with credentials from with `UV_INDEX_URL` should succeed.
|
||||||
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--reinstall").arg("--no-cache").env(EnvVars::UV_INDEX_URL, "https://public:heron@pypi-proxy.fly.dev/basic-auth/simple"), @r###"
|
uv_snapshot!(context.filters(), context.sync().arg("--frozen").arg("--reinstall").arg("--no-cache").env(EnvVars::UV_INDEX_URL, "https://public:heron@pypi-proxy.fly.dev/basic-auth/simple"), @r###"
|
||||||
|
|
@ -10062,10 +10067,10 @@ fn lock_env_credentials() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
");
|
");
|
||||||
|
|
||||||
// Provide credentials via environment variables.
|
// Provide credentials via environment variables.
|
||||||
|
|
@ -12663,10 +12668,10 @@ fn lock_editable() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `workspace` (v0.1.0)
|
error: Failed to resolve dependencies for `workspace` (v0.1.0)
|
||||||
╰─▶ Requirements contain conflicting URLs for package `library` in all marker environments:
|
Caused by: Requirements contain conflicting URLs for package `library` in all marker environments:
|
||||||
- file://[TEMP_DIR]/library
|
- file://[TEMP_DIR]/library
|
||||||
- file://[TEMP_DIR]/library (editable)
|
- file://[TEMP_DIR]/library (editable)
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13309,8 +13314,8 @@ fn unconditional_overlapping_marker_disjoint_version_constraints() -> Result<()>
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on datasets<2.19 and datasets>=2.19, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on datasets<2.19 and datasets>=2.19, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -14081,18 +14086,18 @@ fn lock_add_member_with_build_system() -> Result<()> {
|
||||||
");
|
");
|
||||||
|
|
||||||
// Re-run with `--offline`. This should also fail, during the resolve phase.
|
// Re-run with `--offline`. This should also fail, during the resolve phase.
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--locked").arg("--offline").arg("--no-cache"), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--locked").arg("--offline").arg("--no-cache"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the cache and leaf depends on anyio>3, we can conclude that leaf's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the cache and leaf depends on anyio>3, we can conclude that leaf's requirements are unsatisfiable.
|
||||||
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Re-run without `--locked`.
|
// Re-run without `--locked`.
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
|
|
@ -14289,18 +14294,18 @@ fn lock_add_member_without_build_system() -> Result<()> {
|
||||||
");
|
");
|
||||||
|
|
||||||
// Re-run with `--offline`. This should also fail, during the resolve phase.
|
// Re-run with `--offline`. This should also fail, during the resolve phase.
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--locked").arg("--offline").arg("--no-cache"), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--locked").arg("--offline").arg("--no-cache"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the cache and leaf depends on anyio>3, we can conclude that leaf's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the cache and leaf depends on anyio>3, we can conclude that leaf's requirements are unsatisfiable.
|
||||||
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Re-run without `--locked`.
|
// Re-run without `--locked`.
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
|
|
@ -17999,8 +18004,8 @@ fn lock_explicit_default_index() -> Result<()> {
|
||||||
DEBUG Recording unit propagation conflict of anyio from incompatibility of (project)
|
DEBUG Recording unit propagation conflict of anyio from incompatibility of (project)
|
||||||
DEBUG Searching for a compatible version of project @ file://[TEMP_DIR]/ (<0.1.0 | >0.1.0)
|
DEBUG Searching for a compatible version of project @ file://[TEMP_DIR]/ (<0.1.0 | >0.1.0)
|
||||||
DEBUG No compatible version found for: project
|
DEBUG No compatible version found for: project
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and your project depends on anyio, we can conclude that your project's requirements are unsatisfiable.
|
||||||
DEBUG Released lock at `[CACHE_DIR]/.lock`
|
DEBUG Released lock at `[CACHE_DIR]/.lock`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
|
|
@ -18203,15 +18208,15 @@ fn lock_default_index() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap();
|
let lock = fs_err::read_to_string(context.temp_dir.join("uv.lock")).unwrap();
|
||||||
|
|
||||||
|
|
@ -18272,16 +18277,16 @@ fn lock_named_index_cli() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// The package references a non-existent index.
|
// The package references a non-existent index.
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `jinja2`
|
Caused by: Failed to parse entry: `jinja2`
|
||||||
╰─▶ Package `jinja2` references an undeclared index: `pytorch`
|
Caused by: Package `jinja2` references an undeclared index: `pytorch`
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// But it's fine if it comes from the CLI.
|
// But it's fine if it comes from the CLI.
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--index").arg("pytorch=https://astral-sh.github.io/pytorch-mirror/whl/cu121"), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--index").arg("pytorch=https://astral-sh.github.io/pytorch-mirror/whl/cu121"), @r###"
|
||||||
|
|
@ -20641,21 +20646,21 @@ fn lock_invalid_project_table() -> Result<()> {
|
||||||
",
|
",
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(context.temp_dir.join("a")), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(context.temp_dir.join("a")), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× Failed to build `b @ file://[TEMP_DIR]/b`
|
error: Failed to build `b @ file://[TEMP_DIR]/b`
|
||||||
├─▶ Failed to parse metadata from built wheel
|
Caused by: Failed to parse metadata from built wheel
|
||||||
╰─▶ TOML parse error at line 2, column 10
|
Caused by: TOML parse error at line 2, column 10
|
||||||
|
|
|
|
||||||
2 | [project.urls]
|
2 | [project.urls]
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
`pyproject.toml` is using the `[project]` table, but the required `project.name` field is not set
|
`pyproject.toml` is using the `[project]` table, but the required `project.name` field is not set
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -21196,10 +21201,10 @@ fn lock_keyring_explicit_always() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Keyring request for https://pypi-proxy.fly.dev/basic-auth/simple
|
Keyring request for https://pypi-proxy.fly.dev/basic-auth/simple
|
||||||
Keyring request for pypi-proxy.fly.dev
|
Keyring request for pypi-proxy.fly.dev
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the package registry and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
hint: An index URL (https://pypi-proxy.fly.dev/basic-auth/simple) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
|
||||||
");
|
");
|
||||||
|
|
||||||
// With valid credentials, we should succeed
|
// With valid credentials, we should succeed
|
||||||
|
|
@ -22392,10 +22397,10 @@ fn lock_multiple_sources_index_overlapping_extras() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `project` (v0.1.0)
|
error: Failed to resolve dependencies for `project` (v0.1.0)
|
||||||
╰─▶ Requirements contain conflicting indexes for package `jinja2` in all marker environments:
|
Caused by: Requirements contain conflicting indexes for package `jinja2` in all marker environments:
|
||||||
- https://astral-sh.github.io/pytorch-mirror/whl/cu118
|
- https://astral-sh.github.io/pytorch-mirror/whl/cu118
|
||||||
- https://astral-sh.github.io/pytorch-mirror/whl/cu124
|
- https://astral-sh.github.io/pytorch-mirror/whl/cu124
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -22427,15 +22432,15 @@ fn lock_multiple_index_with_missing_extra() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Source entry for `jinja2` only applies to extra `cu118`, but the `cu118` extra does not exist. When an extra is present on a source (e.g., `extra = "cu118"`), the relevant package must be included in the `project.optional-dependencies` section for that extra (e.g., `project.optional-dependencies = { "cu118" = ["jinja2"] }`).
|
Caused by: Source entry for `jinja2` only applies to extra `cu118`, but the `cu118` extra does not exist. When an extra is present on a source (e.g., `extra = "cu118"`), the relevant package must be included in the `project.optional-dependencies` section for that extra (e.g., `project.optional-dependencies = { "cu118" = ["jinja2"] }`).
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -22470,15 +22475,15 @@ fn lock_multiple_index_with_absent_extra() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Source entry for `jinja2` only applies to extra `cu118`, but `jinja2` was not found under the `project.optional-dependencies` section for that extra. When an extra is present on a source (e.g., `extra = "cu118"`), the relevant package must be included in the `project.optional-dependencies` section for that extra (e.g., `project.optional-dependencies = { "cu118" = ["jinja2"] }`).
|
Caused by: Source entry for `jinja2` only applies to extra `cu118`, but `jinja2` was not found under the `project.optional-dependencies` section for that extra. When an extra is present on a source (e.g., `extra = "cu118"`), the relevant package must be included in the `project.optional-dependencies` section for that extra (e.g., `project.optional-dependencies = { "cu118" = ["jinja2"] }`).
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -22509,15 +22514,15 @@ fn lock_multiple_index_with_missing_group() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Source entry for `jinja2` only applies to dependency group `cu118`, but the `cu118` group does not exist. When a group is present on a source (e.g., `group = "cu118"`), the relevant package must be included in the `dependency-groups` section for that extra (e.g., `dependency-groups = { "cu118" = ["jinja2"] }`).
|
Caused by: Source entry for `jinja2` only applies to dependency group `cu118`, but the `cu118` group does not exist. When a group is present on a source (e.g., `group = "cu118"`), the relevant package must be included in the `dependency-groups` section for that extra (e.g., `dependency-groups = { "cu118" = ["jinja2"] }`).
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -22552,15 +22557,15 @@ fn lock_multiple_index_with_absent_group() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Source entry for `jinja2` only applies to dependency group `cu118`, but `jinja2` was not found under the `dependency-groups` section for that group. When a group is present on a source (e.g., `group = "cu118"`), the relevant package must be included in the `dependency-groups` section for that extra (e.g., `dependency-groups = { "cu118" = ["jinja2"] }`).
|
Caused by: Source entry for `jinja2` only applies to dependency group `cu118`, but `jinja2` was not found under the `dependency-groups` section for that group. When a group is present on a source (e.g., `group = "cu118"`), the relevant package must be included in the `dependency-groups` section for that extra (e.g., `dependency-groups = { "cu118" = ["jinja2"] }`).
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -25781,30 +25786,31 @@ fn lock_derivation_chain_prod() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref==0.1.2`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref==0.1.2`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -25838,30 +25844,31 @@ fn lock_derivation_chain_extra() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref>=0.1`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref>=0.1`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -25897,30 +25904,31 @@ fn lock_derivation_chain_group() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -25967,30 +25975,31 @@ fn lock_derivation_chain_extended() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `child` (v0.1.0) which depends on `wsgiref>=0.1, <0.2`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `child` (v0.1.0) which depends on `wsgiref>=0.1, <0.2`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -26017,17 +26026,18 @@ fn mismatched_name_self_editable() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// Running `uv sync` should generate a lockfile.
|
// Running `uv sync` should generate a lockfile.
|
||||||
uv_snapshot!(context.filters(), context.sync(), @r###"
|
uv_snapshot!(context.filters(), context.sync(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `foo @ file://[TEMP_DIR]/`
|
error: Failed to build `foo @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Package metadata name `project` does not match given name `foo`
|
Caused by: Package metadata name `project` does not match given name `foo`
|
||||||
help: `foo` was included because `project` (v0.1.0) depends on `foo`
|
|
||||||
"###);
|
hint: `foo` was included because `project` (v0.1.0) depends on `foo`
|
||||||
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -26392,15 +26402,15 @@ fn lock_no_build_dynamic_metadata() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--no-build"), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--no-build"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `dummy @ file://[TEMP_DIR]/`
|
error: Failed to build `dummy @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Building source distributions for `dummy` is disabled
|
Caused by: Building source distributions for `dummy` is disabled
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -26626,10 +26636,10 @@ fn lock_self_incompatible() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on itself at an incompatible version (project==0.2.0), we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on itself at an incompatible version (project==0.2.0), we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -26763,10 +26773,10 @@ fn lock_self_extra_to_same_extra_incompatible() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -26797,10 +26807,10 @@ fn lock_self_extra_to_other_extra_incompatible() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -26934,10 +26944,10 @@ fn lock_self_extra_incompatible() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because project[foo] depends on itself at an incompatible version (project==0.2.0) and your project requires project[foo], we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -27064,10 +27074,10 @@ fn lock_self_marker_incompatible() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on itself at an incompatible version (project{sys_platform == 'win32'}>0.1), we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on itself at an incompatible version (project{sys_platform == 'win32'}>0.1), we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
hint: The project `project` depends on itself at an incompatible version. This is likely a mistake. If you intended to depend on a third-party package named `project`, consider renaming the project `project` to avoid creating a conflict.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -27185,16 +27195,16 @@ fn lock_missing_git_prefix() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `project @ file://[TEMP_DIR]/`
|
error: Failed to build `project @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `workspace-in-root-test`
|
Caused by: Failed to parse entry: `workspace-in-root-test`
|
||||||
╰─▶ `workspace-in-root-test` is associated with a URL source, but references a Git repository. Consider using a Git source instead (e.g., `workspace-in-root-test = { git = "https://github.com/astral-sh/workspace-in-root-test" }`)
|
Caused by: `workspace-in-root-test` is associated with a URL source, but references a Git repository. Consider using a Git source instead (e.g., `workspace-in-root-test = { git = "https://github.com/astral-sh/workspace-in-root-test" }`)
|
||||||
"###);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -30236,11 +30246,11 @@ fn lock_conflict_for_disjoint_python_version() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version >= '3.11'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.11'):
|
||||||
╰─▶ Because pandas==1.5.3 depends on numpy{python_full_version >= '3.10'}>=1.21.0 and your project depends on numpy==1.20.3, we can conclude that your project and pandas==1.5.3 are incompatible.
|
Caused by: Because pandas==1.5.3 depends on numpy{python_full_version >= '3.10'}>=1.21.0 and your project depends on numpy==1.20.3, we can conclude that your project and pandas==1.5.3 are incompatible.
|
||||||
And because your project depends on pandas==1.5.3, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on pandas==1.5.3, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: While the active Python version is 3.9, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
hint: While the active Python version is 3.9, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Check that the resolution passes on the restricted Python environment.
|
// Check that the resolution passes on the restricted Python environment.
|
||||||
|
|
@ -30458,10 +30468,10 @@ fn lock_conflict_for_disjoint_platform() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: sys_platform == 'exotic'):
|
error: No solution found when resolving dependencies for split (markers: sys_platform == 'exotic'):
|
||||||
╰─▶ Because your project depends on numpy{sys_platform == 'exotic'}>=1.24,<1.26 and numpy>=1.26, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on numpy{sys_platform == 'exotic'}>=1.24,<1.26 and numpy>=1.26, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Check that the resolution passes on the restricted environment.
|
// Check that the resolution passes on the restricted environment.
|
||||||
|
|
@ -31063,8 +31073,8 @@ fn lock_prefix_match() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only anyio<=4.3.0 is available and your project depends on anyio==5.4.*, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because only anyio<=4.3.0 is available and your project depends on anyio==5.4.*, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -32181,10 +32191,10 @@ fn collapsed_error_with_marker_packages() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version < '3.14' and sys_platform == 'other'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version < '3.14' and sys_platform == 'other'):
|
||||||
╰─▶ Because your project depends on anyio{sys_platform == 'other'} and anyio{python_full_version < '3.14'}>=4.4.0, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on anyio{sys_platform == 'other'} and anyio{python_full_version < '3.14'}>=4.4.0, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -32242,9 +32252,9 @@ fn lock_unsupported_wheel_url_requires_python() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only numpy==2.3.5 is available and numpy==2.3.5 has no wheels with a matching Python version tag (e.g., `cp312`), we can conclude that all versions of numpy cannot be used.
|
Caused by: Because only numpy==2.3.5 is available and numpy==2.3.5 has no wheels with a matching Python version tag (e.g., `cp312`), we can conclude that all versions of numpy cannot be used.
|
||||||
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -32274,9 +32284,9 @@ fn lock_unsupported_wheel_url_required_platform() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only numpy==2.3.5 is available and numpy==2.3.5 has no Windows-compatible wheels, we can conclude that all versions of numpy cannot be used.
|
Caused by: Because only numpy==2.3.5 is available and numpy==2.3.5 has no Windows-compatible wheels, we can conclude that all versions of numpy cannot be used.
|
||||||
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -38,16 +38,16 @@ fn extra_basic() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// And now with the same extra configuration, we tell uv about
|
// And now with the same extra configuration, we tell uv about
|
||||||
// the conflicting extras, which forces it to resolve each in
|
// the conflicting extras, which forces it to resolve each in
|
||||||
|
|
@ -230,16 +230,16 @@ fn extra_basic_three_extras() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.3.0 and project[extra1] depends on sortedcontainers==2.2.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.3.0 and project[extra1] depends on sortedcontainers==2.2.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// And now with the same extra configuration, we tell uv about
|
// And now with the same extra configuration, we tell uv about
|
||||||
// the conflicting extras, which forces it to resolve each in
|
// the conflicting extras, which forces it to resolve each in
|
||||||
|
|
@ -506,16 +506,16 @@ fn extra_multiple_not_conflicting2() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// Fails, as expected.
|
// Fails, as expected.
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// If we define extra1/extra2 as conflicting and project3/project4
|
// If we define extra1/extra2 as conflicting and project3/project4
|
||||||
// as conflicting, that still isn't enough! That's because extra1
|
// as conflicting, that still isn't enough! That's because extra1
|
||||||
|
|
@ -552,9 +552,9 @@ fn extra_multiple_not_conflicting2() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (included: project[extra2], project[project3]; excluded: project[extra1], project[project4]):
|
error: No solution found when resolving dependencies for split (included: project[extra2], project[project3]; excluded: project[extra1], project[project4]):
|
||||||
╰─▶ Because project[project3] depends on sortedcontainers==2.3.0 and project[extra2] depends on sortedcontainers==2.4.0, we can conclude that project[extra2] and project[project3] are incompatible.
|
Caused by: Because project[project3] depends on sortedcontainers==2.3.0 and project[extra2] depends on sortedcontainers==2.4.0, we can conclude that project[extra2] and project[project3] are incompatible.
|
||||||
And because your project requires project[extra2] and project[project3], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra2] and project[project3], we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// One could try to declare all pairs of conflicting extras as
|
// One could try to declare all pairs of conflicting extras as
|
||||||
|
|
@ -667,16 +667,16 @@ fn extra_multiple_independent() -> Result<()> {
|
||||||
project4 = ["anyio==4.2.0"]
|
project4 = ["anyio==4.2.0"]
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// OK, responding to the error, we declare our anyio extras
|
// OK, responding to the error, we declare our anyio extras
|
||||||
// as conflicting. But now we should see sortedcontainers as
|
// as conflicting. But now we should see sortedcontainers as
|
||||||
|
|
@ -709,9 +709,9 @@ fn extra_multiple_independent() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (included: project[project4]; excluded: project[project3]):
|
error: No solution found when resolving dependencies for split (included: project[project4]; excluded: project[project3]):
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Once we declare ALL our conflicting extras, resolution succeeds.
|
// Once we declare ALL our conflicting extras, resolution succeeds.
|
||||||
|
|
@ -987,16 +987,16 @@ fn extra_config_change_ignore_lockfile() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
// Re-run with `--locked`, which should now fail because of
|
// Re-run with `--locked`, which should now fail because of
|
||||||
// the conflicting group config removal.
|
// the conflicting group config removal.
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--locked"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
Caused by: Because project[extra2] depends on sortedcontainers==2.4.0 and project[extra1] depends on sortedcontainers==2.3.0, we can conclude that project[extra1] and project[extra2] are incompatible.
|
||||||
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -1557,13 +1557,13 @@ fn extra_nested_across_workspace() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (included: dummy[extra2], dummysub[extra1]; excluded: dummy[extra1], dummysub[extra2]):
|
error: No solution found when resolving dependencies for split (included: dummy[extra2], dummysub[extra1]; excluded: dummy[extra1], dummysub[extra2]):
|
||||||
╰─▶ Because dummy[extra2] depends on proxy1[extra2] and only proxy1[extra2]==0.1.0 is available, we can conclude that dummy[extra2] depends on proxy1[extra2]==0.1.0. (1)
|
Caused by: Because dummy[extra2] depends on proxy1[extra2] and only proxy1[extra2]==0.1.0 is available, we can conclude that dummy[extra2] depends on proxy1[extra2]==0.1.0. (1)
|
||||||
|
|
||||||
Because proxy1[extra1]==0.1.0 depends on anyio==4.1.0 and proxy1[extra2]==0.1.0 depends on anyio==4.2.0, we can conclude that proxy1[extra1]==0.1.0 and proxy1[extra2]==0.1.0 are incompatible.
|
Because proxy1[extra1]==0.1.0 depends on anyio==4.1.0 and proxy1[extra2]==0.1.0 depends on anyio==4.2.0, we can conclude that proxy1[extra1]==0.1.0 and proxy1[extra2]==0.1.0 are incompatible.
|
||||||
And because we know from (1) that dummy[extra2] depends on proxy1[extra2]==0.1.0, we can conclude that dummy[extra2] and proxy1[extra1]==0.1.0 are incompatible.
|
And because we know from (1) that dummy[extra2] depends on proxy1[extra2]==0.1.0, we can conclude that dummy[extra2] and proxy1[extra1]==0.1.0 are incompatible.
|
||||||
And because only proxy1[extra1]==0.1.0 is available and dummysub[extra1] depends on proxy1[extra1], we can conclude that dummysub[extra1] and dummy[extra2] are incompatible.
|
And because only proxy1[extra1]==0.1.0 is available and dummysub[extra1] depends on proxy1[extra1], we can conclude that dummysub[extra1] and dummy[extra2] are incompatible.
|
||||||
And because your workspace requires dummy[extra2] and dummysub[extra1], we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires dummy[extra2] and dummysub[extra1], we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Now let's write out the full set of conflicts, taking
|
// Now let's write out the full set of conflicts, taking
|
||||||
|
|
@ -1696,9 +1696,9 @@ fn extra_depends_on_conflicting_extra() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (included: example[foo]; excluded: example[bar]):
|
error: No solution found when resolving dependencies for split (included: example[foo]; excluded: example[bar]):
|
||||||
╰─▶ Because example[foo] depends on sortedcontainers==2.3.0 and sortedcontainers==2.4.0, we can conclude that example[foo]'s requirements are unsatisfiable.
|
Caused by: Because example[foo] depends on sortedcontainers==2.3.0 and sortedcontainers==2.4.0, we can conclude that example[foo]'s requirements are unsatisfiable.
|
||||||
And because your project requires example[foo], we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires example[foo], we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1918,16 +1918,16 @@ fn group_basic() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project:group2 depends on sortedcontainers==2.4.0 and project:group1 depends on sortedcontainers==2.3.0, we can conclude that project:group1 and project:group2 are incompatible.
|
Caused by: Because project:group2 depends on sortedcontainers==2.4.0 and project:group1 depends on sortedcontainers==2.3.0, we can conclude that project:group1 and project:group2 are incompatible.
|
||||||
And because your project requires project:group1 and project:group2, we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project:group1 and project:group2, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// And now with the same group configuration, we tell uv about
|
// And now with the same group configuration, we tell uv about
|
||||||
// the conflicting groups, which forces it to resolve each in
|
// the conflicting groups, which forces it to resolve each in
|
||||||
|
|
@ -2283,16 +2283,16 @@ fn mixed() -> Result<()> {
|
||||||
"#,
|
"#,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.lock(), @r###"
|
uv_snapshot!(context.filters(), context.lock(), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because project:group1 depends on sortedcontainers==2.3.0 and project[extra1] depends on sortedcontainers==2.4.0, we can conclude that project:group1 and project[extra1] are incompatible.
|
Caused by: Because project:group1 depends on sortedcontainers==2.3.0 and project[extra1] depends on sortedcontainers==2.4.0, we can conclude that project:group1 and project[extra1] are incompatible.
|
||||||
And because your project requires project[extra1] and project:group1, we can conclude that your project's requirements are unsatisfiable.
|
And because your project requires project[extra1] and project:group1, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// And now with the same extra/group configuration, we tell uv
|
// And now with the same extra/group configuration, we tell uv
|
||||||
// about the conflicting groups, which forces it to resolve each in
|
// about the conflicting groups, which forces it to resolve each in
|
||||||
|
|
|
||||||
|
|
@ -1012,8 +1012,8 @@ fn lock_exclude_newer_relative_values() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Ignoring existing lockfile due to removal of exclude newer span
|
Ignoring existing lockfile due to removal of exclude newer span
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there are no versions of iniconfig and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because there are no versions of iniconfig and your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context
|
uv_snapshot!(context.filters(), context
|
||||||
|
|
|
||||||
|
|
@ -777,16 +777,16 @@ fn conflict_in_fork() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: sys_platform == 'os2'):
|
error: No solution found when resolving dependencies for split (markers: sys_platform == 'os2'):
|
||||||
╰─▶ Because only package-b==1.0.0 is available and package-b==1.0.0 depends on package-d==1, we can conclude that all versions of package-b depend on package-d==1.
|
Caused by: Because only package-b==1.0.0 is available and package-b==1.0.0 depends on package-d==1, we can conclude that all versions of package-b depend on package-d==1.
|
||||||
And because package-c==1.0.0 depends on package-d==2 and only package-c==1.0.0 is available, we can conclude that all versions of package-b and all versions of package-c are incompatible.
|
And because package-c==1.0.0 depends on package-d==2 and only package-c==1.0.0 is available, we can conclude that all versions of package-b and all versions of package-c are incompatible.
|
||||||
And because package-a==1.0.0 depends on package-b and package-c, we can conclude that package-a==1.0.0 cannot be used.
|
And because package-a==1.0.0 depends on package-b and package-c, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because only the following versions of package-a{sys_platform == 'os2'} are available:
|
And because only the following versions of package-a{sys_platform == 'os2'} are available:
|
||||||
package-a{sys_platform == 'os2'}==1.0.0
|
package-a{sys_platform == 'os2'}==1.0.0
|
||||||
package-a{sys_platform == 'os2'}>=2
|
package-a{sys_platform == 'os2'}>=2
|
||||||
and your project depends on package-a{sys_platform == 'os2'}<2, we can conclude that your project's requirements are unsatisfiable.
|
and your project depends on package-a{sys_platform == 'os2'}<2, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
hint: The resolution failed for an environment that is not the current one, consider limiting the environments with `tool.uv.environments`.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -847,8 +847,8 @@ fn fork_conflict_unsatisfiable() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on package-a>=2 and package-a<2, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on package-a>=2 and package-a<2, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -1518,8 +1518,8 @@ fn fork_marker_disjoint() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because your project depends on package-a{sys_platform == 'linux'}>=2 and package-a{sys_platform == 'linux'}<2, we can conclude that your project's requirements are unsatisfiable.
|
Caused by: Because your project depends on package-a{sys_platform == 'linux'}>=2 and package-a{sys_platform == 'linux'}<2, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -3147,9 +3147,9 @@ fn fork_non_local_fork_marker_direct() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a==1.0.0 depends on package-c<2.0.0 and package-b==1.0.0 depends on package-c>=2.0.0, we can conclude that package-b==1.0.0 and package-a{sys_platform == 'linux'}==1.0.0 are incompatible.
|
Caused by: Because package-a==1.0.0 depends on package-c<2.0.0 and package-b==1.0.0 depends on package-c>=2.0.0, we can conclude that package-b==1.0.0 and package-a{sys_platform == 'linux'}==1.0.0 are incompatible.
|
||||||
And because your project depends on package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on package-a{sys_platform == 'linux'}==1.0.0 and package-b{sys_platform == 'darwin'}==1.0.0, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -3219,9 +3219,9 @@ fn fork_non_local_fork_marker_transitive() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a==1.0.0 depends on package-c{sys_platform == 'linux'}<2.0.0 and package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0, we can conclude that package-a==1.0.0 and package-b==1.0.0 are incompatible.
|
Caused by: Because package-a==1.0.0 depends on package-c{sys_platform == 'linux'}<2.0.0 and package-b==1.0.0 depends on package-c{sys_platform == 'darwin'}>=2.0.0, we can conclude that package-a==1.0.0 and package-b==1.0.0 are incompatible.
|
||||||
And because your project depends on package-a==1.0.0 and package-b==1.0.0, we can conclude that your project's requirements are unsatisfiable.
|
And because your project depends on package-a==1.0.0 and package-b==1.0.0, we can conclude that your project's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -171,10 +171,10 @@ async fn direct_url_http_500() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
error: Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
||||||
├─▶ Request failed after 3 retries
|
Caused by: Request failed after 3 retries
|
||||||
├─▶ Failed to fetch: `[SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
Caused by: Failed to fetch: `[SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
||||||
╰─▶ HTTP status server error (500 Internal Server Error) for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
|
Caused by: HTTP status server error (500 Internal Server Error) for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -199,12 +199,12 @@ async fn direct_url_io_error() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
error: Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
||||||
├─▶ Failed to fetch: `[SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
Caused by: Failed to fetch: `[SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
|
||||||
├─▶ Request failed after 3 retries
|
Caused by: Request failed after 3 retries
|
||||||
├─▶ error sending request for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
|
Caused by: error sending request for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
|
||||||
├─▶ client error (SendRequest)
|
Caused by: client error (SendRequest)
|
||||||
╰─▶ connection closed before message completed
|
Caused by: connection closed before message completed
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -415,9 +415,9 @@ async fn rfc9457_problem_details_license_violation() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `tqdm @ [SERVER]/packages/tqdm-4.67.1-py3-none-any.whl`
|
error: Failed to download `tqdm @ [SERVER]/packages/tqdm-4.67.1-py3-none-any.whl`
|
||||||
├─▶ Failed to fetch: `[SERVER]/packages/tqdm-4.67.1-py3-none-any.whl`
|
Caused by: Failed to fetch: `[SERVER]/packages/tqdm-4.67.1-py3-none-any.whl`
|
||||||
├─▶ Server message: License Compliance Issue, This package version has a license that violates organizational policy.
|
Caused by: Server message: License Compliance Issue, This package version has a license that violates organizational policy.
|
||||||
╰─▶ HTTP status client error (403 Forbidden) for url ([SERVER]/packages/tqdm-4.67.1-py3-none-any.whl)
|
Caused by: HTTP status client error (403 Forbidden) for url ([SERVER]/packages/tqdm-4.67.1-py3-none-any.whl)
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1970,18 +1970,18 @@ fn compile_python_37() -> Result<()> {
|
||||||
uv_snapshot!(filters, context.pip_compile()
|
uv_snapshot!(filters, context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--python-version")
|
.arg("--python-version")
|
||||||
.arg("3.7"), @r###"
|
.arg("3.7"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and black==23.10.1 depends on Python>=3.8, we can conclude that black==23.10.1 cannot be used.
|
Caused by: Because the requested Python version (>=3.7) does not satisfy Python>=3.8 and black==23.10.1 depends on Python>=3.8, we can conclude that black==23.10.1 cannot be used.
|
||||||
And because you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
And because you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `--python-version` value (>=3.7) includes Python versions that are not supported by your dependencies (e.g., black==23.10.1 only supports >=3.8). Consider using a higher `--python-version` value.
|
hint: The `--python-version` value (>=3.7) includes Python versions that are not supported by your dependencies (e.g., black==23.10.1 only supports >=3.8). Consider using a higher `--python-version` value.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -2509,15 +2509,15 @@ fn compile_git_mismatched_name() -> Result<()> {
|
||||||
.write_str("flask @ git+https://github.com/pallets/flask.git@2.0.0\ndask @ git+https://github.com/pallets/flask.git@3.0.0")?;
|
.write_str("flask @ git+https://github.com/pallets/flask.git@2.0.0\ndask @ git+https://github.com/pallets/flask.git@3.0.0")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `dask @ git+https://github.com/pallets/flask.git@3.0.0`
|
error: Failed to download and build `dask @ git+https://github.com/pallets/flask.git@3.0.0`
|
||||||
╰─▶ Package metadata name `flask` does not match given name `dask`
|
Caused by: Package metadata name `flask` does not match given name `dask`
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2602,15 +2602,15 @@ fn conflicting_direct_url_dependency() -> Result<()> {
|
||||||
requirements_in.write_str("werkzeug==3.0.0\nwerkzeug @ https://files.pythonhosted.org/packages/ff/1d/960bb4017c68674a1cb099534840f18d3def3ce44aed12b5ed8b78e0153e/Werkzeug-2.0.0-py3-none-any.whl")?;
|
requirements_in.write_str("werkzeug==3.0.0\nwerkzeug @ https://files.pythonhosted.org/packages/ff/1d/960bb4017c68674a1cb099534840f18d3def3ce44aed12b5ed8b78e0153e/Werkzeug-2.0.0-py3-none-any.whl")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of werkzeug==3.0.0 and you require werkzeug==3.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of werkzeug==3.0.0 and you require werkzeug==3.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2728,16 +2728,16 @@ fn conflicting_transitive_url_dependency() -> Result<()> {
|
||||||
requirements_in.write_str("flask==3.0.0\nwerkzeug @ https://files.pythonhosted.org/packages/ff/1d/960bb4017c68674a1cb099534840f18d3def3ce44aed12b5ed8b78e0153e/Werkzeug-2.0.0-py3-none-any.whl")?;
|
requirements_in.write_str("flask==3.0.0\nwerkzeug @ https://files.pythonhosted.org/packages/ff/1d/960bb4017c68674a1cb099534840f18d3def3ce44aed12b5ed8b78e0153e/Werkzeug-2.0.0-py3-none-any.whl")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only werkzeug<3.0.0 is available and flask==3.0.0 depends on werkzeug>=3.0.0, we can conclude that flask==3.0.0 cannot be used.
|
Caused by: Because only werkzeug<3.0.0 is available and flask==3.0.0 depends on werkzeug>=3.0.0, we can conclude that flask==3.0.0 cannot be used.
|
||||||
And because you require flask==3.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require flask==3.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3080,15 +3080,15 @@ fn requirement_constraint_override_url() -> Result<()> {
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt")
|
.arg("constraints.txt")
|
||||||
.arg("--override")
|
.arg("--override")
|
||||||
.arg("overrides.txt"), @r###"
|
.arg("overrides.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of anyio==3.7.0 and you require anyio==3.7.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of anyio==3.7.0 and you require anyio==3.7.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3302,15 +3302,15 @@ dependencies = ["anyio==3.7.0", "anyio==4.0.0"]
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("pyproject.toml"), @r###"
|
.arg("pyproject.toml"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because my-project depends on anyio==3.7.0 and anyio==4.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because my-project depends on anyio==3.7.0 and anyio==4.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3334,15 +3334,15 @@ dependencies = ["anyio==300.1.4"]
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("pyproject.toml"), @r###"
|
.arg("pyproject.toml"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of anyio==300.1.4 and my-project depends on anyio==300.1.4, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of anyio==300.1.4 and my-project depends on anyio==300.1.4, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3958,13 +3958,13 @@ fn compile_yanked_version_indirect() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of attrs are available:
|
Caused by: Because only the following versions of attrs are available:
|
||||||
attrs<=20.3.0
|
attrs<=20.3.0
|
||||||
attrs==21.1.0
|
attrs==21.1.0
|
||||||
attrs>=21.2.0
|
attrs>=21.2.0
|
||||||
and attrs==21.1.0 was yanked (reason: Installable but not importable on Python 3.4), we can conclude that attrs>20.3.0,<21.2.0 cannot be used.
|
and attrs==21.1.0 was yanked (reason: Installable but not importable on Python 3.4), we can conclude that attrs>20.3.0,<21.2.0 cannot be used.
|
||||||
And because you require attrs>20.3.0,<21.2.0, we can conclude that your requirements are unsatisfiable.
|
And because you require attrs>20.3.0,<21.2.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -6668,17 +6668,17 @@ fn no_index_requirements_txt() -> Result<()> {
|
||||||
requirements_in.write_str("--no-index\ntqdm")?;
|
requirements_in.write_str("--no-index\ntqdm")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because tqdm was not found in the provided package locations and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because tqdm was not found in the provided package locations and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -6777,17 +6777,17 @@ fn offline_registry() -> Result<()> {
|
||||||
// Resolve with `--offline` with an empty cache.
|
// Resolve with `--offline` with an empty cache.
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because black was not found in the cache and you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because black was not found in the cache and you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Populate the cache.
|
// Populate the cache.
|
||||||
|
|
@ -6908,17 +6908,17 @@ fn offline_find_links() -> Result<()> {
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
|
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because tqdm was not found in the cache and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because tqdm was not found in the cache and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Resolve with `--offline`, `--find-links`, and `--no-index`.
|
// Resolve with `--offline`, `--find-links`, and `--no-index`.
|
||||||
|
|
@ -6927,17 +6927,17 @@ fn offline_find_links() -> Result<()> {
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
|
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
|
||||||
.arg("--no-index")
|
.arg("--no-index")
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because tqdm was not found in the cache and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because tqdm was not found in the cache and you require tqdm, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -6953,15 +6953,15 @@ fn offline_direct_url() -> Result<()> {
|
||||||
// Resolve with `--offline` with an empty cache.
|
// Resolve with `--offline` with an empty cache.
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
error: Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
╰─▶ Network connectivity is disabled, but the requested data wasn't found in the cache for: `https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
Caused by: Network connectivity is disabled, but the requested data wasn't found in the cache for: `https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Populate the cache.
|
// Populate the cache.
|
||||||
|
|
@ -7013,20 +7013,20 @@ fn invalid_metadata_requires_python() -> Result<()> {
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--no-index")
|
.arg("--no-index")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg(context.workspace_root.join("test").join("links")), @r###"
|
.arg(context.workspace_root.join("test").join("links")), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because validation==2.0.0 has invalid metadata and you require validation==2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because validation==2.0.0 has invalid metadata and you require validation==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Metadata for `validation` (v2.0.0) could not be parsed:
|
hint: Metadata for `validation` (v2.0.0) could not be parsed:
|
||||||
Failed to parse version: Unexpected end of version specifier, expected operator. Did you mean `==12`?:
|
Failed to parse version: Unexpected end of version specifier, expected operator. Did you mean `==12`?:
|
||||||
12
|
12
|
||||||
^^
|
^^
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -7044,18 +7044,18 @@ fn invalid_metadata_multiple_dist_info() -> Result<()> {
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--no-index")
|
.arg("--no-index")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg(context.workspace_root.join("test").join("links")), @r###"
|
.arg(context.workspace_root.join("test").join("links")), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because validation==3.0.0 has an invalid package format and you require validation==3.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because validation==3.0.0 has an invalid package format and you require validation==3.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The structure of `validation` (v3.0.0) was invalid:
|
hint: The structure of `validation` (v3.0.0) was invalid:
|
||||||
Multiple .dist-info directories found: validation-2.0.0, validation-3.0.0
|
Multiple .dist-info directories found: validation-2.0.0, validation-3.0.0
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -7313,15 +7313,15 @@ fn compile_constraints_incompatible_url() -> Result<()> {
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt"), @r###"
|
.arg("constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only anyio>=4 is available and you require anyio<4, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only anyio>=4 is available and you require anyio<4, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -7337,15 +7337,15 @@ fn index_url_in_requirements() -> Result<()> {
|
||||||
.write_str("--index-url https://astral-sh.github.io/pytorch-mirror/whl\nanyio<4")?;
|
.write_str("--index-url https://astral-sh.github.io/pytorch-mirror/whl\nanyio<4")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because anyio was not found in the package registry and you require anyio<4, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because anyio was not found in the package registry and you require anyio<4, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10087,15 +10087,15 @@ fn compile_constraints_incompatible_version() -> Result<()> {
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt"), @r###"
|
.arg("constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10115,15 +10115,15 @@ fn conflicting_url_markers() -> Result<()> {
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt"), @r###"
|
.arg("constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10269,15 +10269,15 @@ fn override_with_incompatible_constraint() -> Result<()> {
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt")
|
.arg("constraints.txt")
|
||||||
.arg("--override")
|
.arg("--override")
|
||||||
.arg("overrides.txt"), @r###"
|
.arg("overrides.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require anyio>=3.0.0 and anyio<3.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require anyio>=3.0.0 and anyio<3.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10926,16 +10926,16 @@ requires-python = ">=3.13"
|
||||||
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
|
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10978,16 +10978,16 @@ requires-python = ">=3.13"
|
||||||
|
|
||||||
uv_snapshot!(filters, context.pip_compile()
|
uv_snapshot!(filters, context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--python-version=3.11"), @r###"
|
.arg("--python-version=3.11"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -11126,16 +11126,16 @@ fn not_found_direct_url() -> Result<()> {
|
||||||
requirements_in.write_str("iniconfig @ https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl")?;
|
requirements_in.write_str("iniconfig @ https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl")?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl`
|
error: Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
├─▶ Failed to fetch: `https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl`
|
Caused by: Failed to fetch: `https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl`
|
||||||
╰─▶ HTTP status client error (404 Not Found) for url (https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl)
|
Caused by: HTTP status client error (404 Not Found) for url (https://files.pythonhosted.org/packages/ef/a6/fake/iniconfig-2.0.0-py3-none-any.whl)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -11166,16 +11166,16 @@ requires-python = ">=3.13"
|
||||||
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
|
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -12287,17 +12287,17 @@ requires-python = ">3.8"
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--override")
|
.arg("--override")
|
||||||
.arg("overrides.txt"), @r###"
|
.arg("overrides.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of anyio==0.0.0 and lib==0.0.0 depends on anyio==0.0.0, we can conclude that lib==0.0.0 cannot be used.
|
Caused by: Because there is no version of anyio==0.0.0 and lib==0.0.0 depends on anyio==0.0.0, we can conclude that lib==0.0.0 cannot be used.
|
||||||
And because only lib==0.0.0 is available and example==0.0.0 depends on lib, we can conclude that example==0.0.0 cannot be used.
|
And because only lib==0.0.0 is available and example==0.0.0 depends on lib, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Now constrain `anyio` to the local version.
|
// Now constrain `anyio` to the local version.
|
||||||
|
|
@ -12460,17 +12460,17 @@ fn compile_index_url_first_match_base() -> Result<()> {
|
||||||
.arg("--extra-index-url")
|
.arg("--extra-index-url")
|
||||||
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
|
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--no-deps"), @r###"
|
.arg("--no-deps"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of jinja2==3.1.0 and you require jinja2==3.1.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of jinja2==3.1.0 and you require jinja2==3.1.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `jinja2` was found on https://astral-sh.github.io/pytorch-mirror/whl/cpu, but not at the requested version (jinja2==3.1.0). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
hint: `jinja2` was found on https://astral-sh.github.io/pytorch-mirror/whl/cpu, but not at the requested version (jinja2==3.1.0). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -12494,17 +12494,17 @@ fn compile_index_url_first_match_marker() -> Result<()> {
|
||||||
.arg("--extra-index-url")
|
.arg("--extra-index-url")
|
||||||
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
|
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--no-deps"), @r###"
|
.arg("--no-deps"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of jinja2{sys_platform == 'linux'}==3.1.0 and you require jinja2{sys_platform == 'linux'}==3.1.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of jinja2{sys_platform == 'linux'}==3.1.0 and you require jinja2{sys_platform == 'linux'}==3.1.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `jinja2` was found on https://astral-sh.github.io/pytorch-mirror/whl/cpu, but not at the requested version (jinja2==3.1.0). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
hint: `jinja2` was found on https://astral-sh.github.io/pytorch-mirror/whl/cpu, but not at the requested version (jinja2==3.1.0). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -12527,15 +12527,15 @@ fn compile_index_url_first_match_all_versions() -> Result<()> {
|
||||||
.arg("--extra-index-url")
|
.arg("--extra-index-url")
|
||||||
.arg("https://test.pypi.org/simple")
|
.arg("https://test.pypi.org/simple")
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--no-deps"), @r###"
|
.arg("--no-deps"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there are no versions of pandas and you require pandas, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there are no versions of pandas and you require pandas, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -12912,15 +12912,15 @@ fn no_version_for_direct_dependency() -> Result<()> {
|
||||||
uv_snapshot!(context.filters(), context.pip_compile()
|
uv_snapshot!(context.filters(), context.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
// Must error before we make any network requests
|
// Must error before we make any network requests
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ you require pypyp ∅
|
Caused by: you require pypyp ∅
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13243,20 +13243,20 @@ fn git_source_missing_tag() -> Result<()> {
|
||||||
"#})?;
|
"#})?;
|
||||||
|
|
||||||
uv_snapshot!(filters, context.pip_compile()
|
uv_snapshot!(filters, context.pip_compile()
|
||||||
.arg("pyproject.toml"), @r###"
|
.arg("pyproject.toml"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `uv-public-pypackage @ git+https://github.com/astral-test/uv-public-pypackage@missing`
|
error: Failed to download and build `uv-public-pypackage @ git+https://github.com/astral-test/uv-public-pypackage@missing`
|
||||||
├─▶ Git operation failed
|
Caused by: Git operation failed
|
||||||
├─▶ failed to clone into: [CACHE_DIR]/git-v0/db/8dab139913c4b566
|
Caused by: failed to clone into: [CACHE_DIR]/git-v0/db/8dab139913c4b566
|
||||||
├─▶ failed to fetch tag `missing`
|
Caused by: failed to fetch tag `missing`
|
||||||
╰─▶ process didn't exit successfully: `git fetch --force --update-head-ok 'https://github.com/astral-test/uv-public-pypackage' '+refs/tags/missing:refs/remotes/origin/tags/missing'` (exit status: 128)
|
Caused by: process didn't exit successfully: `git fetch --force --update-head-ok 'https://github.com/astral-test/uv-public-pypackage' '+refs/tags/missing:refs/remotes/origin/tags/missing'` (exit status: 128)
|
||||||
--- stderr
|
--- stderr
|
||||||
fatal: couldn't find remote ref refs/tags/missing
|
fatal: couldn't find remote ref refs/tags/missing
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -13548,18 +13548,18 @@ fn no_binary_only_binary() -> Result<()> {
|
||||||
.pip_compile()
|
.pip_compile()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--only-binary")
|
.arg("--only-binary")
|
||||||
.arg(":all:"), @r###"
|
.arg(":all:"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only source-distribution>=0.0.1 is available and source-distribution==0.0.1 has no usable wheels, we can conclude that source-distribution<=0.0.1 cannot be used.
|
Caused by: Because only source-distribution>=0.0.1 is available and source-distribution==0.0.1 has no usable wheels, we can conclude that source-distribution<=0.0.1 cannot be used.
|
||||||
And because you require source-distribution<=0.0.1, we can conclude that your requirements are unsatisfiable.
|
And because you require source-distribution<=0.0.1, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Wheels are required for `source-distribution` because building from source is disabled for all packages (i.e., with `--no-build`)
|
hint: Wheels are required for `source-distribution` because building from source is disabled for all packages (i.e., with `--no-build`)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
uv_snapshot!(context
|
uv_snapshot!(context
|
||||||
|
|
@ -13633,17 +13633,17 @@ fn incompatible_build_constraint() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_compile()
|
uv_snapshot!(context.pip_compile()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--build-constraint")
|
.arg("--build-constraint")
|
||||||
.arg("build_constraints.txt"), @r###"
|
.arg("build_constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13703,17 +13703,17 @@ build-constraint-dependencies = [
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
uv_snapshot!(context.pip_compile()
|
uv_snapshot!(context.pip_compile()
|
||||||
.arg("pyproject.toml"), @r###"
|
.arg("pyproject.toml"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -13791,17 +13791,17 @@ build-constraint-dependencies = [
|
||||||
uv_snapshot!(context.pip_compile()
|
uv_snapshot!(context.pip_compile()
|
||||||
.arg("pyproject.toml")
|
.arg("pyproject.toml")
|
||||||
.arg("--build-constraint")
|
.arg("--build-constraint")
|
||||||
.arg("build_constraints.txt"), @r###"
|
.arg("build_constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// compatible setuptools version in pyproject.toml, incompatible in build_constraints.txt
|
// compatible setuptools version in pyproject.toml, incompatible in build_constraints.txt
|
||||||
|
|
@ -13830,17 +13830,17 @@ build-constraint-dependencies = [
|
||||||
uv_snapshot!(context.pip_compile()
|
uv_snapshot!(context.pip_compile()
|
||||||
.arg("pyproject.toml")
|
.arg("pyproject.toml")
|
||||||
.arg("--build-constraint")
|
.arg("--build-constraint")
|
||||||
.arg("build_constraints.txt"), @r###"
|
.arg("build_constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools==1 and setuptools>=40, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools==1 and setuptools>=40, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -14122,9 +14122,9 @@ fn compile_enumerate_no_versions() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.10.[X]) does not satisfy Python>=3.11,<4.0 and all versions of rooster-blue depend on Python>=3.11,<4.0, we can conclude that all versions of rooster-blue cannot be used.
|
Caused by: Because the current Python version (3.10.[X]) does not satisfy Python>=3.11,<4.0 and all versions of rooster-blue depend on Python>=3.11,<4.0, we can conclude that all versions of rooster-blue cannot be used.
|
||||||
And because you require rooster-blue, we can conclude that your requirements are unsatisfiable.
|
And because you require rooster-blue, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -14569,12 +14569,12 @@ fn unsupported_requires_python_dynamic_metadata() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version >= '3.10'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.10'):
|
||||||
╰─▶ Because source-distribution==0.0.3 requires Python >=3.10 and you require source-distribution{python_full_version >= '3.10'}==0.0.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because source-distribution==0.0.3 requires Python >=3.10 and you require source-distribution{python_full_version >= '3.10'}==0.0.3, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The source distribution for `source-distribution` (v0.0.3) does not include static metadata. Generating metadata for this package requires Python >=3.10, but Python 3.8.[X] is installed.
|
hint: The source distribution for `source-distribution` (v0.0.3) does not include static metadata. Generating metadata for this package requires Python >=3.10, but Python 3.8.[X] is installed.
|
||||||
|
|
||||||
hint: While the active Python version is 3.8, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
hint: While the active Python version is 3.8, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -14834,37 +14834,38 @@ fn compile_derivation_chain() -> Result<()> {
|
||||||
.chain([(r"/.*/src", "/[TMP]/src")])
|
.chain([(r"/.*/src", "/[TMP]/src")])
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
uv_snapshot!(filters, context.pip_compile().arg("pyproject.toml"), @r###"
|
uv_snapshot!(filters, context.pip_compile().arg("pyproject.toml"), @r#"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `child` (v0.1.0) depends on `wsgiref`
|
|
||||||
"###
|
hint: `wsgiref` (v0.1.2) was included because `child` (v0.1.0) depends on `wsgiref`
|
||||||
|
"#
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -14887,30 +14888,30 @@ fn invalid_platform() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of open3d are available:
|
Caused by: Because only the following versions of open3d are available:
|
||||||
open3d==0.8.0.0
|
open3d==0.8.0.0
|
||||||
open3d==0.9.0.0
|
open3d==0.9.0.0
|
||||||
open3d==0.10.0.0
|
open3d==0.10.0.0
|
||||||
open3d==0.10.0.1
|
open3d==0.10.0.1
|
||||||
open3d==0.11.0
|
open3d==0.11.0
|
||||||
open3d==0.11.1
|
open3d==0.11.1
|
||||||
open3d==0.11.2
|
open3d==0.11.2
|
||||||
open3d==0.12.0
|
open3d==0.12.0
|
||||||
open3d==0.13.0
|
open3d==0.13.0
|
||||||
open3d==0.14.1
|
open3d==0.14.1
|
||||||
open3d==0.15.1
|
open3d==0.15.1
|
||||||
open3d==0.15.2
|
open3d==0.15.2
|
||||||
open3d==0.16.0
|
open3d==0.16.0
|
||||||
open3d==0.16.1
|
open3d==0.16.1
|
||||||
open3d==0.17.0
|
open3d==0.17.0
|
||||||
open3d==0.18.0
|
open3d==0.18.0
|
||||||
and open3d<=0.15.2 has no wheels with a matching Python ABI tag (e.g., `cp310`), we can conclude that open3d<=0.15.2 cannot be used.
|
and open3d<=0.15.2 has no wheels with a matching Python ABI tag (e.g., `cp310`), we can conclude that open3d<=0.15.2 cannot be used.
|
||||||
And because open3d>=0.16.0 has no wheels with a matching platform tag (e.g., `manylinux_2_17_x86_64`) and you require open3d, we can conclude that your requirements are unsatisfiable.
|
And because open3d>=0.16.0 has no wheels with a matching platform tag (e.g., `manylinux_2_17_x86_64`) and you require open3d, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: You require CPython 3.10 (`cp310`), but we only found wheels for `open3d` (v0.15.2) with the following Python ABI tags: `cp36m`, `cp37m`, `cp38`, `cp39`
|
hint: You require CPython 3.10 (`cp310`), but we only found wheels for `open3d` (v0.15.2) with the following Python ABI tags: `cp36m`, `cp37m`, `cp38`, `cp39`
|
||||||
|
|
||||||
hint: Wheels are available for `open3d` (v0.18.0) on the following platforms: `manylinux_2_27_aarch64`, `manylinux_2_27_x86_64`, `macosx_11_0_x86_64`, `macosx_13_0_arm64`, `win_amd64`
|
hint: Wheels are available for `open3d` (v0.18.0) on the following platforms: `manylinux_2_27_aarch64`, `manylinux_2_27_x86_64`, `macosx_11_0_x86_64`, `macosx_13_0_arm64`, `win_amd64`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -15018,10 +15019,10 @@ fn universal_conflicting_override_urls() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve dependencies for `anyio` (v4.3.0)
|
error: Failed to resolve dependencies for `anyio` (v4.3.0)
|
||||||
╰─▶ Requirements contain conflicting URLs for package `sniffio` in split `sys_platform == 'win32'`:
|
Caused by: Requirements contain conflicting URLs for package `sniffio` in split `sys_platform == 'win32'`:
|
||||||
- https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl
|
- https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl
|
||||||
- https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
|
- https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -17606,9 +17607,9 @@ fn incompatible_cuda() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because torchvision==0.16.0+cu121 depends on system:cuda==12.1 and torch==2.6.0+cu126 depends on system:cuda==12.6, we can conclude that torch==2.6.0+cu126 and torchvision==0.16.0+cu121 are incompatible.
|
Caused by: Because torchvision==0.16.0+cu121 depends on system:cuda==12.1 and torch==2.6.0+cu126 depends on system:cuda==12.6, we can conclude that torch==2.6.0+cu126 and torchvision==0.16.0+cu121 are incompatible.
|
||||||
And because you require torch==2.6.0+cu126 and torchvision==0.16.0+cu121, we can conclude that your requirements are unsatisfiable.
|
And because you require torch==2.6.0+cu126 and torchvision==0.16.0+cu121, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -17865,8 +17866,8 @@ fn credentials_from_subdirectory() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the package registry and foo depends on iniconfig, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the package registry and foo depends on iniconfig, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context
|
uv_snapshot!(context.filters(), context
|
||||||
|
|
|
||||||
|
|
@ -74,11 +74,11 @@ fn compatible_python_incompatible_override() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The requested Python version 3.9 is not available; 3.11.[X] will be used to build dependencies instead.
|
warning: The requested Python version 3.9 is not available; 3.11.[X] will be used to build dependencies instead.
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the requested Python version (>=3.9) does not satisfy Python>=3.10 and package-a==1.0.0 depends on Python>=3.10, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because the requested Python version (>=3.9) does not satisfy Python>=3.10 and package-a==1.0.0 depends on Python>=3.10, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `--python-version` value (>=3.9) includes Python versions that are not supported by your dependencies (e.g., package-a==1.0.0 only supports >=3.10). Consider using a higher `--python-version` value.
|
hint: The `--python-version` value (>=3.9) includes Python versions that are not supported by your dependencies (e.g., package-a==1.0.0 only supports >=3.10). Consider using a higher `--python-version` value.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -383,11 +383,11 @@ fn python_patch_override_no_patch() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the requested Python version (>=3.9) does not satisfy Python>=3.9.4 and package-a==1.0.0 depends on Python>=3.9.4, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because the requested Python version (>=3.9) does not satisfy Python>=3.9.4 and package-a==1.0.0 depends on Python>=3.9.4, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `--python-version` value (>=3.9) includes Python versions that are not supported by your dependencies (e.g., package-a==1.0.0 only supports >=3.9.4). Consider using a higher `--python-version` value.
|
hint: The `--python-version` value (>=3.9) includes Python versions that are not supported by your dependencies (e.g., package-a==1.0.0 only supports >=3.9.4). Consider using a higher `--python-version` value.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -51,8 +51,8 @@ fn requires_exact_version_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of package-a==2.0.0 and you require package-a==2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of package-a==2.0.0 and you require package-a==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("requires_exact_version_does_not_exist_a");
|
context.assert_not_installed("requires_exact_version_does_not_exist_a");
|
||||||
|
|
@ -87,8 +87,8 @@ fn requires_greater_version_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a<=1.0.0 is available and you require package-a>1.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a<=1.0.0 is available and you require package-a>1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("requires_greater_version_does_not_exist_a");
|
context.assert_not_installed("requires_greater_version_does_not_exist_a");
|
||||||
|
|
@ -124,8 +124,8 @@ fn requires_less_version_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a>=2.0.0 is available and you require package-a<2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a>=2.0.0 is available and you require package-a<2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("requires_less_version_does_not_exist_a");
|
context.assert_not_installed("requires_less_version_does_not_exist_a");
|
||||||
|
|
@ -157,8 +157,8 @@ fn requires_package_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a was not found in the package registry and you require package-a, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because package-a was not found in the package registry and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("requires_package_does_not_exist_a");
|
context.assert_not_installed("requires_package_does_not_exist_a");
|
||||||
|
|
@ -194,9 +194,9 @@ fn transitive_requires_package_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-b was not found in the package registry and package-a==1.0.0 depends on package-b, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because package-b was not found in the package registry and package-a==1.0.0 depends on package-b, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("transitive_requires_package_does_not_exist_a");
|
context.assert_not_installed("transitive_requires_package_does_not_exist_a");
|
||||||
|
|
@ -281,27 +281,27 @@ fn dependency_excludes_non_contiguous_range_of_compatible_versions() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available:
|
Caused by: Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available:
|
||||||
package-a==1.0.0
|
package-a==1.0.0
|
||||||
package-a>=2.0.0
|
package-a>=2.0.0
|
||||||
we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
||||||
And because only package-a<=3.0.0 is available, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1)
|
And because only package-a<=3.0.0 is available, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1)
|
||||||
|
|
||||||
Because only the following versions of package-c are available:
|
Because only the following versions of package-c are available:
|
||||||
package-c==1.0.0
|
package-c==1.0.0
|
||||||
package-c==2.0.0
|
package-c==2.0.0
|
||||||
and package-c==1.0.0 depends on package-a<2.0.0, we can conclude that package-c<2.0.0 depends on package-a<2.0.0.
|
and package-c==1.0.0 depends on package-a<2.0.0, we can conclude that package-c<2.0.0 depends on package-a<2.0.0.
|
||||||
And because package-c==2.0.0 depends on package-a>=3.0.0, we can conclude that all versions of package-c depend on one of:
|
And because package-c==2.0.0 depends on package-a>=3.0.0, we can conclude that all versions of package-c depend on one of:
|
||||||
package-a<2.0.0
|
package-a<2.0.0
|
||||||
package-a>=3.0.0
|
package-a>=3.0.0
|
||||||
|
|
||||||
And because we know from (1) that package-a<2.0.0 depends on package-b==1.0.0, we can conclude that package-a!=3.0.0, package-b!=1.0.0, all versions of package-c are incompatible.
|
And because we know from (1) that package-a<2.0.0 depends on package-b==1.0.0, we can conclude that package-a!=3.0.0, package-b!=1.0.0, all versions of package-c are incompatible.
|
||||||
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all versions of package-c depend on one of:
|
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all versions of package-c depend on one of:
|
||||||
package-b<=1.0.0
|
package-b<=1.0.0
|
||||||
package-b>=3.0.0
|
package-b>=3.0.0
|
||||||
|
|
||||||
And because you require package-b>=2.0.0,<3.0.0 and package-c, we can conclude that your requirements are unsatisfiable.
|
And because you require package-b>=2.0.0,<3.0.0 and package-c, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Only the `2.x` versions of `a` are available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`, but all available versions of `c` exclude that range of `a` so resolution fails.
|
// Only the `2.x` versions of `a` are available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`, but all available versions of `c` exclude that range of `a` so resolution fails.
|
||||||
|
|
@ -384,27 +384,27 @@ fn dependency_excludes_range_of_compatible_versions() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available:
|
Caused by: Because package-a==1.0.0 depends on package-b==1.0.0 and only the following versions of package-a are available:
|
||||||
package-a==1.0.0
|
package-a==1.0.0
|
||||||
package-a>=2.0.0
|
package-a>=2.0.0
|
||||||
we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
||||||
And because only package-a<=3.0.0 is available, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1)
|
And because only package-a<=3.0.0 is available, we can conclude that package-a<2.0.0 depends on package-b==1.0.0. (1)
|
||||||
|
|
||||||
Because only the following versions of package-c are available:
|
Because only the following versions of package-c are available:
|
||||||
package-c==1.0.0
|
package-c==1.0.0
|
||||||
package-c==2.0.0
|
package-c==2.0.0
|
||||||
and package-c==1.0.0 depends on package-a<2.0.0, we can conclude that package-c<2.0.0 depends on package-a<2.0.0.
|
and package-c==1.0.0 depends on package-a<2.0.0, we can conclude that package-c<2.0.0 depends on package-a<2.0.0.
|
||||||
And because package-c==2.0.0 depends on package-a>=3.0.0, we can conclude that all versions of package-c depend on one of:
|
And because package-c==2.0.0 depends on package-a>=3.0.0, we can conclude that all versions of package-c depend on one of:
|
||||||
package-a<2.0.0
|
package-a<2.0.0
|
||||||
package-a>=3.0.0
|
package-a>=3.0.0
|
||||||
|
|
||||||
And because we know from (1) that package-a<2.0.0 depends on package-b==1.0.0, we can conclude that package-a!=3.0.0, package-b!=1.0.0, all versions of package-c are incompatible.
|
And because we know from (1) that package-a<2.0.0 depends on package-b==1.0.0, we can conclude that package-a!=3.0.0, package-b!=1.0.0, all versions of package-c are incompatible.
|
||||||
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all versions of package-c depend on one of:
|
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all versions of package-c depend on one of:
|
||||||
package-b<=1.0.0
|
package-b<=1.0.0
|
||||||
package-b>=3.0.0
|
package-b>=3.0.0
|
||||||
|
|
||||||
And because you require package-b>=2.0.0,<3.0.0 and package-c, we can conclude that your requirements are unsatisfiable.
|
And because you require package-b>=2.0.0,<3.0.0 and package-c, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Only the `2.x` versions of `a` are available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`, but all available versions of `c` exclude that range of `a` so resolution fails.
|
// Only the `2.x` versions of `a` are available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`, but all available versions of `c` exclude that range of `a` so resolution fails.
|
||||||
|
|
@ -457,23 +457,23 @@ fn excluded_only_compatible_version() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of package-a are available:
|
Caused by: Because only the following versions of package-a are available:
|
||||||
package-a==1.0.0
|
package-a==1.0.0
|
||||||
package-a==2.0.0
|
package-a==2.0.0
|
||||||
package-a==3.0.0
|
package-a==3.0.0
|
||||||
and package-a==1.0.0 depends on package-b==1.0.0, we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
and package-a==1.0.0 depends on package-b==1.0.0, we can conclude that package-a<2.0.0 depends on package-b==1.0.0.
|
||||||
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all of:
|
And because package-a==3.0.0 depends on package-b==3.0.0, we can conclude that all of:
|
||||||
package-a<2.0.0
|
package-a<2.0.0
|
||||||
package-a>2.0.0
|
package-a>2.0.0
|
||||||
depend on one of:
|
depend on one of:
|
||||||
package-b==1.0.0
|
package-b==1.0.0
|
||||||
package-b==3.0.0
|
package-b==3.0.0
|
||||||
|
|
||||||
And because you require one of:
|
And because you require one of:
|
||||||
package-a<2.0.0
|
package-a<2.0.0
|
||||||
package-a>2.0.0
|
package-a>2.0.0
|
||||||
and package-b>=2.0.0,<3.0.0, we can conclude that your requirements are unsatisfiable.
|
and package-b>=2.0.0,<3.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Only `a==1.2.0` is available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`. The user has excluded that version of `a` so resolution fails.
|
// Only `a==1.2.0` is available since `a==1.0.0` and `a==3.0.0` require incompatible versions of `b`. The user has excluded that version of `a` so resolution fails.
|
||||||
|
|
@ -509,11 +509,11 @@ fn excluded_only_version() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and you require one of:
|
Caused by: Because only package-a==1.0.0 is available and you require one of:
|
||||||
package-a<1.0.0
|
package-a<1.0.0
|
||||||
package-a>1.0.0
|
package-a>1.0.0
|
||||||
we can conclude that your requirements are unsatisfiable.
|
we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Only `a==1.0.0` is available but the user excluded it.
|
// Only `a==1.0.0` is available but the user excluded it.
|
||||||
|
|
@ -724,10 +724,10 @@ fn extra_incompatible_with_extra() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a[extra-b]==1.0.0 is available and package-a[extra-b]==1.0.0 depends on package-b==1.0.0, we can conclude that all versions of package-a[extra-b] depend on package-b==1.0.0.
|
Caused by: Because only package-a[extra-b]==1.0.0 is available and package-a[extra-b]==1.0.0 depends on package-b==1.0.0, we can conclude that all versions of package-a[extra-b] depend on package-b==1.0.0.
|
||||||
And because package-a[extra-c]==1.0.0 depends on package-b==2.0.0 and only package-a[extra-c]==1.0.0 is available, we can conclude that all versions of package-a[extra-b] and all versions of package-a[extra-c] are incompatible.
|
And because package-a[extra-c]==1.0.0 depends on package-b==2.0.0 and only package-a[extra-c]==1.0.0 is available, we can conclude that all versions of package-a[extra-b] and all versions of package-a[extra-c] are incompatible.
|
||||||
And because you require package-a[extra-b] and package-a[extra-c], we can conclude that your requirements are unsatisfiable.
|
And because you require package-a[extra-b] and package-a[extra-c], we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Because both `extra_b` and `extra_c` are requested and they require incompatible versions of `b`, `a` cannot be installed.
|
// Because both `extra_b` and `extra_c` are requested and they require incompatible versions of `b`, `a` cannot be installed.
|
||||||
|
|
@ -772,9 +772,9 @@ fn extra_incompatible_with_root() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a[extra]==1.0.0 is available and package-a[extra]==1.0.0 depends on package-b==1.0.0, we can conclude that all versions of package-a[extra] depend on package-b==1.0.0.
|
Caused by: Because only package-a[extra]==1.0.0 is available and package-a[extra]==1.0.0 depends on package-b==1.0.0, we can conclude that all versions of package-a[extra] depend on package-b==1.0.0.
|
||||||
And because you require package-a[extra] and package-b==2.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a[extra] and package-b==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Because the user requested `b==2.0.0` but the requested extra requires `b==1.0.0`, the dependencies cannot be satisfied.
|
// Because the user requested `b==2.0.0` but the requested extra requires `b==1.0.0`, the dependencies cannot be satisfied.
|
||||||
|
|
@ -951,8 +951,8 @@ fn direct_incompatible_versions() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require package-a==1.0.0 and package-a==2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require package-a==1.0.0 and package-a==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("direct_incompatible_versions_a");
|
context.assert_not_installed("direct_incompatible_versions_a");
|
||||||
|
|
@ -991,9 +991,9 @@ fn transitive_incompatible_versions() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-a==1.0.0 depends on package-b==1.0.0 and package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because package-a==1.0.0 depends on package-b==1.0.0 and package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("transitive_incompatible_versions_a");
|
context.assert_not_installed("transitive_incompatible_versions_a");
|
||||||
|
|
@ -1035,9 +1035,9 @@ fn transitive_incompatible_with_root_version() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that all versions of package-a depend on package-b==2.0.0.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that all versions of package-a depend on package-b==2.0.0.
|
||||||
And because you require package-a and package-b==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("transitive_incompatible_with_root_version_a");
|
context.assert_not_installed("transitive_incompatible_with_root_version_a");
|
||||||
|
|
@ -1084,10 +1084,10 @@ fn transitive_incompatible_with_transitive() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-c==1.0.0, we can conclude that all versions of package-a depend on package-c==1.0.0.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-c==1.0.0, we can conclude that all versions of package-a depend on package-c==1.0.0.
|
||||||
And because package-b==1.0.0 depends on package-c==2.0.0 and only package-b==1.0.0 is available, we can conclude that all versions of package-a and all versions of package-b are incompatible.
|
And because package-b==1.0.0 depends on package-c==2.0.0 and only package-b==1.0.0 is available, we can conclude that all versions of package-a and all versions of package-b are incompatible.
|
||||||
And because you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("transitive_incompatible_with_transitive_a");
|
context.assert_not_installed("transitive_incompatible_with_transitive_a");
|
||||||
|
|
@ -1162,8 +1162,8 @@ fn local_greater_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.2.3+foo is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a==1.2.3+foo is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("local_greater_than_a");
|
context.assert_not_installed("local_greater_than_a");
|
||||||
|
|
@ -1237,8 +1237,8 @@ fn local_less_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.2.3+foo is available and you require package-a<1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a==1.2.3+foo is available and you require package-a<1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("local_less_than_a");
|
context.assert_not_installed("local_less_than_a");
|
||||||
|
|
@ -1454,9 +1454,9 @@ fn local_transitive_conflicting() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b==2.0.0+bar, we can conclude that all versions of package-a depend on package-b==2.0.0+bar.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b==2.0.0+bar, we can conclude that all versions of package-a depend on package-b==2.0.0+bar.
|
||||||
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("local_transitive_conflicting_a");
|
context.assert_not_installed("local_transitive_conflicting_a");
|
||||||
|
|
@ -1596,9 +1596,9 @@ fn local_transitive_greater_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b>2.0.0, we can conclude that all versions of package-a depend on package-b>2.0.0.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b>2.0.0, we can conclude that all versions of package-a depend on package-b>2.0.0.
|
||||||
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("local_transitive_greater_than_a");
|
context.assert_not_installed("local_transitive_greater_than_a");
|
||||||
|
|
@ -1690,9 +1690,9 @@ fn local_transitive_less_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b<2.0.0, we can conclude that all versions of package-a depend on package-b<2.0.0.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-b<2.0.0, we can conclude that all versions of package-a depend on package-b<2.0.0.
|
||||||
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("local_transitive_less_than_a");
|
context.assert_not_installed("local_transitive_less_than_a");
|
||||||
|
|
@ -1856,8 +1856,8 @@ fn post_equal_not_available() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of package-a==1.2.3.post0 and you require package-a==1.2.3.post0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of package-a==1.2.3.post0 and you require package-a==1.2.3.post0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_equal_not_available_a");
|
context.assert_not_installed("post_equal_not_available_a");
|
||||||
|
|
@ -1971,8 +1971,8 @@ fn post_greater_than_post_not_available() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a<=1.2.3.post1 is available and you require package-a>=1.2.3.post3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a<=1.2.3.post1 is available and you require package-a>=1.2.3.post3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_greater_than_post_not_available_a");
|
context.assert_not_installed("post_greater_than_post_not_available_a");
|
||||||
|
|
@ -2045,8 +2045,8 @@ fn post_greater_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.2.3.post1 is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a==1.2.3.post1 is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_greater_than_a");
|
context.assert_not_installed("post_greater_than_a");
|
||||||
|
|
@ -2080,8 +2080,8 @@ fn post_less_than_or_equal() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.2.3.post1 is available and you require package-a<=1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a==1.2.3.post1 is available and you require package-a<=1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_less_than_or_equal_a");
|
context.assert_not_installed("post_less_than_or_equal_a");
|
||||||
|
|
@ -2115,8 +2115,8 @@ fn post_less_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.2.3.post1 is available and you require package-a<1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a==1.2.3.post1 is available and you require package-a<1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_less_than_a");
|
context.assert_not_installed("post_less_than_a");
|
||||||
|
|
@ -2151,8 +2151,8 @@ fn post_local_greater_than_post() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a<=1.2.3.post1+local is available and you require package-a>=1.2.3.post2, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a<=1.2.3.post1+local is available and you require package-a>=1.2.3.post2, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_local_greater_than_post_a");
|
context.assert_not_installed("post_local_greater_than_post_a");
|
||||||
|
|
@ -2187,8 +2187,8 @@ fn post_local_greater_than() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a<=1.2.3.post1+local is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a<=1.2.3.post1+local is available and you require package-a>1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_local_greater_than_a");
|
context.assert_not_installed("post_local_greater_than_a");
|
||||||
|
|
@ -2222,8 +2222,8 @@ fn post_simple() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of package-a==1.2.3 and you require package-a==1.2.3, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of package-a==1.2.3 and you require package-a==1.2.3, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("post_simple_a");
|
context.assert_not_installed("post_simple_a");
|
||||||
|
|
@ -2382,10 +2382,10 @@ fn package_only_prereleases_in_range() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a<=0.1.0 is available and you require package-a>0.1.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because only package-a<=0.1.0 is available and you require package-a>0.1.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Pre-releases are available for `package-a` in the requested range (e.g., 1.0.0a1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
hint: Pre-releases are available for `package-a` in the requested range (e.g., 1.0.0a1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since there are stable versions of `a` available, prerelease versions should not be selected without explicit opt-in.
|
// Since there are stable versions of `a` available, prerelease versions should not be selected without explicit opt-in.
|
||||||
|
|
@ -2871,11 +2871,11 @@ fn transitive_package_only_prereleases_in_range() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-b<=0.1 is available and package-a==0.1.0 depends on package-b>0.1, we can conclude that package-a==0.1.0 cannot be used.
|
Caused by: Because only package-b<=0.1 is available and package-a==0.1.0 depends on package-b>0.1, we can conclude that package-a==0.1.0 cannot be used.
|
||||||
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Pre-releases are available for `package-b` in the requested range (e.g., 1.0.0a1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
hint: Pre-releases are available for `package-b` in the requested range (e.g., 1.0.0a1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since there are stable versions of `b` available, the prerelease version should not be selected without explicit opt-in. The available version is excluded by the range requested by the user.
|
// Since there are stable versions of `b` available, the prerelease version should not be selected without explicit opt-in. The available version is excluded by the range requested by the user.
|
||||||
|
|
@ -2994,24 +2994,24 @@ fn transitive_prerelease_and_stable_dependency_many_versions_holes() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of package-c are available:
|
Caused by: Because only the following versions of package-c are available:
|
||||||
package-c<=1.0.0
|
package-c<=1.0.0
|
||||||
package-c>=2.0.0a5,<=2.0.0a7
|
package-c>=2.0.0a5,<=2.0.0a7
|
||||||
package-c==2.0.0b1
|
package-c==2.0.0b1
|
||||||
package-c>=2.0.0b5
|
package-c>=2.0.0b5
|
||||||
and package-a==1.0.0 depends on one of:
|
and package-a==1.0.0 depends on one of:
|
||||||
package-c>1.0.0,<2.0.0a5
|
package-c>1.0.0,<2.0.0a5
|
||||||
package-c>2.0.0a7,<2.0.0b1
|
package-c>2.0.0a7,<2.0.0b1
|
||||||
package-c>2.0.0b1,<2.0.0b5
|
package-c>2.0.0b1,<2.0.0b5
|
||||||
we can conclude that package-a==1.0.0 cannot be used.
|
we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `package-c` was requested with a pre-release marker (e.g., all of:
|
hint: `package-c` was requested with a pre-release marker (e.g., all of:
|
||||||
package-c>1.0.0,<2.0.0a5
|
package-c>1.0.0,<2.0.0a5
|
||||||
package-c>2.0.0a7,<2.0.0b1
|
package-c>2.0.0a7,<2.0.0b1
|
||||||
package-c>2.0.0b1,<2.0.0b5
|
package-c>2.0.0b1,<2.0.0b5
|
||||||
), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
||||||
|
|
@ -3089,13 +3089,13 @@ fn transitive_prerelease_and_stable_dependency_many_versions() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-c>=2.0.0b1, we can conclude that all versions of package-a depend on package-c>=2.0.0b1.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 depends on package-c>=2.0.0b1, we can conclude that all versions of package-a depend on package-c>=2.0.0b1.
|
||||||
And because only package-c<2.0.0b1 is available, we can conclude that all versions of package-a depend on package-c>3.0.0.
|
And because only package-c<2.0.0b1 is available, we can conclude that all versions of package-a depend on package-c>3.0.0.
|
||||||
And because package-b==1.0.0 depends on package-c and only package-b==1.0.0 is available, we can conclude that all versions of package-a and all versions of package-b are incompatible.
|
And because package-b==1.0.0 depends on package-c and only package-b==1.0.0 is available, we can conclude that all versions of package-a and all versions of package-b are incompatible.
|
||||||
And because you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `package-c` was requested with a pre-release marker (e.g., package-c>=2.0.0b1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
hint: `package-c` was requested with a pre-release marker (e.g., package-c>=2.0.0b1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
||||||
|
|
@ -3213,11 +3213,11 @@ fn transitive_prerelease_and_stable_dependency() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of package-c==2.0.0b1 and package-a==1.0.0 depends on package-c==2.0.0b1, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because there is no version of package-c==2.0.0b1 and package-a==1.0.0 depends on package-c==2.0.0b1, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: `package-c` was requested with a pre-release marker (e.g., package-c==2.0.0b1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
hint: `package-c` was requested with a pre-release marker (e.g., package-c==2.0.0b1), but pre-releases weren't enabled (try: `--prerelease=allow`)
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
// Since the user did not explicitly opt-in to a prerelease, it cannot be selected.
|
||||||
|
|
@ -3307,20 +3307,20 @@ fn python_greater_than_current_excluded() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.9.[X]) does not satisfy Python>=3.10 and package-a==2.0.0 depends on Python>=3.10, we can conclude that package-a==2.0.0 cannot be used.
|
Caused by: Because the current Python version (3.9.[X]) does not satisfy Python>=3.10 and package-a==2.0.0 depends on Python>=3.10, we can conclude that package-a==2.0.0 cannot be used.
|
||||||
And because only the following versions of package-a are available:
|
And because only the following versions of package-a are available:
|
||||||
package-a<=2.0.0
|
package-a<=2.0.0
|
||||||
package-a==3.0.0
|
package-a==3.0.0
|
||||||
package-a==4.0.0
|
package-a==4.0.0
|
||||||
we can conclude that package-a>=2.0.0,<3.0.0 cannot be used. (1)
|
we can conclude that package-a>=2.0.0,<3.0.0 cannot be used. (1)
|
||||||
|
|
||||||
Because the current Python version (3.9.[X]) does not satisfy Python>=3.11 and package-a==3.0.0 depends on Python>=3.11, we can conclude that package-a==3.0.0 cannot be used.
|
Because the current Python version (3.9.[X]) does not satisfy Python>=3.11 and package-a==3.0.0 depends on Python>=3.11, we can conclude that package-a==3.0.0 cannot be used.
|
||||||
And because we know from (1) that package-a>=2.0.0,<3.0.0 cannot be used, we can conclude that package-a>=2.0.0,<4.0.0 cannot be used. (2)
|
And because we know from (1) that package-a>=2.0.0,<3.0.0 cannot be used, we can conclude that package-a>=2.0.0,<4.0.0 cannot be used. (2)
|
||||||
|
|
||||||
Because the current Python version (3.9.[X]) does not satisfy Python>=3.12 and package-a==4.0.0 depends on Python>=3.12, we can conclude that package-a==4.0.0 cannot be used.
|
Because the current Python version (3.9.[X]) does not satisfy Python>=3.12 and package-a==4.0.0 depends on Python>=3.12, we can conclude that package-a==4.0.0 cannot be used.
|
||||||
And because we know from (2) that package-a>=2.0.0,<4.0.0 cannot be used, we can conclude that package-a>=2.0.0 cannot be used.
|
And because we know from (2) that package-a>=2.0.0,<4.0.0 cannot be used, we can conclude that package-a>=2.0.0 cannot be used.
|
||||||
And because you require package-a>=2.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a>=2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("python_greater_than_current_excluded_a");
|
context.assert_not_installed("python_greater_than_current_excluded_a");
|
||||||
|
|
@ -3377,8 +3377,8 @@ fn python_greater_than_current_many() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because there is no version of package-a==1.0.0 and you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there is no version of package-a==1.0.0 and you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("python_greater_than_current_many_a");
|
context.assert_not_installed("python_greater_than_current_many_a");
|
||||||
|
|
@ -3414,9 +3414,9 @@ fn python_greater_than_current_patch() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.13) does not satisfy Python>=3.13.2 and package-a==1.0.0 depends on Python>=3.13.2, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because the current Python version (3.13) does not satisfy Python>=3.13.2 and package-a==1.0.0 depends on Python>=3.13.2, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("python_greater_than_current_patch_a");
|
context.assert_not_installed("python_greater_than_current_patch_a");
|
||||||
|
|
@ -3451,9 +3451,9 @@ fn python_greater_than_current() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.9.[X]) does not satisfy Python>=3.10 and package-a==1.0.0 depends on Python>=3.10, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because the current Python version (3.9.[X]) does not satisfy Python>=3.10 and package-a==1.0.0 depends on Python>=3.10, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("python_greater_than_current_a");
|
context.assert_not_installed("python_greater_than_current_a");
|
||||||
|
|
@ -3526,9 +3526,9 @@ fn python_version_does_not_exist() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.30 and package-a==1.0.0 depends on Python>=3.30, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.30 and package-a==1.0.0 depends on Python>=3.30, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("python_version_does_not_exist_a");
|
context.assert_not_installed("python_version_does_not_exist_a");
|
||||||
|
|
@ -3641,11 +3641,11 @@ fn no_sdist_no_wheels_with_matching_abi() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python ABI tag (e.g., `cp312`), we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python ABI tag (e.g., `cp312`), we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: You require CPython 3.12 (`cp312`), but we only found wheels for `package-a` (v1.0.0) with the following Python ABI tag: `graalpy240_310_native`
|
hint: You require CPython 3.12 (`cp312`), but we only found wheels for `package-a` (v1.0.0) with the following Python ABI tag: `graalpy240_310_native`
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("no_sdist_no_wheels_with_matching_abi_a");
|
context.assert_not_installed("no_sdist_no_wheels_with_matching_abi_a");
|
||||||
|
|
@ -3680,11 +3680,11 @@ fn no_sdist_no_wheels_with_matching_platform() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching platform tag (e.g., `manylinux_2_17_x86_64`), we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching platform tag (e.g., `manylinux_2_17_x86_64`), we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Wheels are available for `package-a` (v1.0.0) on the following platform: `macosx_10_0_ppc64`
|
hint: Wheels are available for `package-a` (v1.0.0) on the following platform: `macosx_10_0_ppc64`
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("no_sdist_no_wheels_with_matching_platform_a");
|
context.assert_not_installed("no_sdist_no_wheels_with_matching_platform_a");
|
||||||
|
|
@ -3719,11 +3719,11 @@ fn no_sdist_no_wheels_with_matching_python() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python implementation tag (e.g., `cp312`), we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python implementation tag (e.g., `cp312`), we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: You require CPython 3.12 (`cp312`), but we only found wheels for `package-a` (v1.0.0) with the following Python implementation tag: `graalpy310`
|
hint: You require CPython 3.12 (`cp312`), but we only found wheels for `package-a` (v1.0.0) with the following Python implementation tag: `graalpy310`
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("no_sdist_no_wheels_with_matching_python_a");
|
context.assert_not_installed("no_sdist_no_wheels_with_matching_python_a");
|
||||||
|
|
@ -3759,11 +3759,11 @@ fn no_wheels_no_build() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no usable wheels, we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 has no usable wheels, we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Wheels are required for `package-a` because building from source is disabled for `package-a` (i.e., with `--no-build-package package-a`)
|
hint: Wheels are required for `package-a` because building from source is disabled for `package-a` (i.e., with `--no-build-package package-a`)
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("no_wheels_no_build_a");
|
context.assert_not_installed("no_wheels_no_build_a");
|
||||||
|
|
@ -3869,11 +3869,11 @@ fn only_wheels_no_binary() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no source distribution, we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 has no source distribution, we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: A source distribution is required for `package-a` because using pre-built wheels is disabled for `package-a` (i.e., with `--no-binary-package package-a`)
|
hint: A source distribution is required for `package-a` because using pre-built wheels is disabled for `package-a` (i.e., with `--no-binary-package package-a`)
|
||||||
");
|
");
|
||||||
|
|
||||||
context.assert_not_installed("only_wheels_no_binary_a");
|
context.assert_not_installed("only_wheels_no_binary_a");
|
||||||
|
|
@ -3978,12 +3978,12 @@ fn package_only_yanked_in_range() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of package-a are available:
|
Caused by: Because only the following versions of package-a are available:
|
||||||
package-a<=0.1.0
|
package-a<=0.1.0
|
||||||
package-a==1.0.0
|
package-a==1.0.0
|
||||||
and package-a==1.0.0 was yanked (reason: Yanked for testing), we can conclude that package-a>0.1.0 cannot be used.
|
and package-a==1.0.0 was yanked (reason: Yanked for testing), we can conclude that package-a>0.1.0 cannot be used.
|
||||||
And because you require package-a>0.1.0, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a>0.1.0, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since there are other versions of `a` available, yanked versions should not be selected without explicit opt-in.
|
// Since there are other versions of `a` available, yanked versions should not be selected without explicit opt-in.
|
||||||
|
|
@ -4018,9 +4018,9 @@ fn package_only_yanked() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 was yanked (reason: Yanked for testing), we can conclude that all versions of package-a cannot be used.
|
Caused by: Because only package-a==1.0.0 is available and package-a==1.0.0 was yanked (reason: Yanked for testing), we can conclude that all versions of package-a cannot be used.
|
||||||
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Yanked versions should not be installed, even if they are the only one available.
|
// Yanked versions should not be installed, even if they are the only one available.
|
||||||
|
|
@ -4193,13 +4193,13 @@ fn transitive_package_only_yanked_in_range() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only the following versions of package-b are available:
|
Caused by: Because only the following versions of package-b are available:
|
||||||
package-b<=0.1
|
package-b<=0.1
|
||||||
package-b==1.0.0
|
package-b==1.0.0
|
||||||
and package-b==1.0.0 was yanked (reason: Yanked for testing), we can conclude that package-b>0.1 cannot be used.
|
and package-b==1.0.0 was yanked (reason: Yanked for testing), we can conclude that package-b>0.1 cannot be used.
|
||||||
And because package-a==0.1.0 depends on package-b>0.1, we can conclude that package-a==0.1.0 cannot be used.
|
And because package-a==0.1.0 depends on package-b>0.1, we can conclude that package-a==0.1.0 cannot be used.
|
||||||
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Yanked versions should not be installed, even if they are the only valid version in a range.
|
// Yanked versions should not be installed, even if they are the only valid version in a range.
|
||||||
|
|
@ -4238,10 +4238,10 @@ fn transitive_package_only_yanked() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only package-b==1.0.0 is available and package-b==1.0.0 was yanked (reason: Yanked for testing), we can conclude that all versions of package-b cannot be used.
|
Caused by: Because only package-b==1.0.0 is available and package-b==1.0.0 was yanked (reason: Yanked for testing), we can conclude that all versions of package-b cannot be used.
|
||||||
And because package-a==0.1.0 depends on package-b, we can conclude that package-a==0.1.0 cannot be used.
|
And because package-a==0.1.0 depends on package-b, we can conclude that package-a==0.1.0 cannot be used.
|
||||||
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Yanked versions should not be installed, even if they are the only one available.
|
// Yanked versions should not be installed, even if they are the only one available.
|
||||||
|
|
@ -4358,9 +4358,9 @@ fn transitive_yanked_and_unyanked_dependency() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because package-c==2.0.0 was yanked (reason: Yanked for testing) and package-a==1.0.0 depends on package-c==2.0.0, we can conclude that package-a==1.0.0 cannot be used.
|
Caused by: Because package-c==2.0.0 was yanked (reason: Yanked for testing) and package-a==1.0.0 depends on package-c==2.0.0, we can conclude that package-a==1.0.0 cannot be used.
|
||||||
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Since the user did not explicitly select the yanked version, it cannot be used.
|
// Since the user did not explicitly select the yanked version, it cannot be used.
|
||||||
|
|
|
||||||
|
|
@ -951,17 +951,17 @@ fn install_no_index() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--no-index")
|
.arg("--no-index")
|
||||||
.arg("--strict"), @r###"
|
.arg("--strict"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the provided package locations and you require iniconfig==2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the provided package locations and you require iniconfig==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
context.assert_command("import iniconfig").failure();
|
context.assert_command("import iniconfig").failure();
|
||||||
|
|
@ -1000,17 +1000,17 @@ fn install_no_index_cached() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--no-index")
|
.arg("--no-index")
|
||||||
.arg("--strict"), @r###"
|
.arg("--strict"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because iniconfig was not found in the provided package locations and you require iniconfig==2.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because iniconfig was not found in the provided package locations and you require iniconfig==2.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
hint: Packages were unavailable because index lookups were disabled and no additional package locations were provided (try: `--find-links <uri>`)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
context.assert_command("import iniconfig").failure();
|
context.assert_command("import iniconfig").failure();
|
||||||
|
|
@ -1290,11 +1290,11 @@ fn mismatched_name() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because foo has an invalid package format and you require foo, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because foo has an invalid package format and you require foo, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The structure of `foo` was invalid
|
hint: The structure of `foo` was invalid
|
||||||
Caused by: The .dist-info directory tomli-2.0.1 does not start with the normalized package name: foo
|
Caused by: The .dist-info directory tomli-2.0.1 does not start with the normalized package name: foo
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -1947,15 +1947,15 @@ fn duplicate_package_overlap() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--strict"), @r###"
|
.arg("--strict"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require markupsafe==2.1.3 and markupsafe==2.1.2, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require markupsafe==2.1.3 and markupsafe==2.1.2, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2628,12 +2628,12 @@ fn incompatible_wheel() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because foo has an invalid package format and you require foo, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because foo has an invalid package format and you require foo, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The structure of `foo` was invalid
|
hint: The structure of `foo` was invalid
|
||||||
Caused by: Failed to read from zip file
|
Caused by: Failed to read from zip file
|
||||||
Caused by: unable to locate the end of central directory record
|
Caused by: unable to locate the end of central directory record
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -2775,17 +2775,17 @@ fn find_links_offline_no_match() -> Result<()> {
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--offline")
|
.arg("--offline")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg(context.workspace_root.join("test/links/")), @r###"
|
.arg(context.workspace_root.join("test/links/")), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because numpy was not found in the cache and you require numpy, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because numpy was not found in the cache and you require numpy, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2900,17 +2900,17 @@ fn offline() -> Result<()> {
|
||||||
// Install with `--offline` with an empty cache.
|
// Install with `--offline` with an empty cache.
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.in")
|
.arg("requirements.in")
|
||||||
.arg("--offline"), @r###"
|
.arg("--offline"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because black was not found in the cache and you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because black was not found in the cache and you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Populate the cache.
|
// Populate the cache.
|
||||||
|
|
@ -2991,15 +2991,15 @@ fn incompatible_constraint() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--constraint")
|
.arg("--constraint")
|
||||||
.arg("constraints.txt"), @r###"
|
.arg("constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require anyio==3.7.0 and anyio==3.6.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require anyio==3.7.0 and anyio==3.6.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3088,15 +3088,15 @@ fn repeat_requirement_incompatible() -> Result<()> {
|
||||||
requirements_in.write_str("anyio<4.0.0\nanyio==4.0.0")?;
|
requirements_in.write_str("anyio<4.0.0\nanyio==4.0.0")?;
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because you require anyio<4.0.0 and anyio==4.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require anyio<4.0.0 and anyio==4.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -3386,16 +3386,16 @@ requires-python = ">=3.13"
|
||||||
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
|
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_sync()
|
uv_snapshot!(context.filters(), context.pip_sync()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3426,16 +3426,16 @@ requires-python = ">=3.13"
|
||||||
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
|
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_sync()
|
uv_snapshot!(context.filters(), context.pip_sync()
|
||||||
.arg("requirements.in"), @r###"
|
.arg("requirements.in"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
Caused by: Because the current Python version (3.12.[X]) does not satisfy Python>=3.13 and example==0.0.0 depends on Python>=3.13, we can conclude that example==0.0.0 cannot be used.
|
||||||
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3600,22 +3600,22 @@ fn require_hashes_wheel_no_binary() -> Result<()> {
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--no-binary")
|
.arg("--no-binary")
|
||||||
.arg(":all:")
|
.arg(":all:")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download and build `anyio==4.0.0`
|
error: Failed to download and build `anyio==4.0.0`
|
||||||
╰─▶ Hash mismatch for `anyio==4.0.0`
|
Caused by: Hash mismatch for `anyio==4.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3692,22 +3692,22 @@ fn require_hashes_source_only_binary() -> Result<()> {
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--only-binary")
|
.arg("--only-binary")
|
||||||
.arg(":all:")
|
.arg(":all:")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio==4.0.0`
|
error: Failed to download `anyio==4.0.0`
|
||||||
╰─▶ Hash mismatch for `anyio==4.0.0`
|
Caused by: Hash mismatch for `anyio==4.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3724,22 +3724,22 @@ fn require_hashes_wrong_digest() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio==4.0.0`
|
error: Failed to download `anyio==4.0.0`
|
||||||
╰─▶ Hash mismatch for `anyio==4.0.0`
|
Caused by: Hash mismatch for `anyio==4.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3756,22 +3756,22 @@ fn require_hashes_wrong_algorithm() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio==4.0.0`
|
error: Failed to download `anyio==4.0.0`
|
||||||
╰─▶ Hash mismatch for `anyio==4.0.0`
|
Caused by: Hash mismatch for `anyio==4.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha512:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha512:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha512:f30761c1e8725b49c498273b90dba4b05c0fd157811994c806183062cb6647e773364ce45f0e1ff0b10e32fe6d0232ea5ad39476ccf37109d6b49603a09c11c2
|
sha512:f30761c1e8725b49c498273b90dba4b05c0fd157811994c806183062cb6647e773364ce45f0e1ff0b10e32fe6d0232ea5ad39476ccf37109d6b49603a09c11c2
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3827,21 +3827,21 @@ fn require_hashes_source_url() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
error: Failed to download and build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
╰─▶ Hash mismatch for `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
Caused by: Hash mismatch for `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
|
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3858,21 +3858,21 @@ fn require_hashes_source_url_mismatch() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
error: Failed to download and build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
╰─▶ Hash mismatch for `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
Caused by: Hash mismatch for `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
|
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3928,22 +3928,22 @@ fn require_hashes_wheel_url() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
error: Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
╰─▶ Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Sync a new dependency and include the wrong hash for anyio. Verify that we reuse anyio
|
// Sync a new dependency and include the wrong hash for anyio. Verify that we reuse anyio
|
||||||
|
|
@ -3982,22 +3982,22 @@ fn require_hashes_wheel_url_mismatch() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
error: Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
╰─▶ Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4015,15 +4015,15 @@ fn require_hashes_git() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `anyio @ git+https://github.com/agronholm/anyio@4a23745badf5bf5ef7928f1e346e9986bd696d82`
|
error: Failed to download and build `anyio @ git+https://github.com/agronholm/anyio@4a23745badf5bf5ef7928f1e346e9986bd696d82`
|
||||||
╰─▶ Hash-checking is not supported for Git repositories: `anyio @ git+https://github.com/agronholm/anyio@4a23745badf5bf5ef7928f1e346e9986bd696d82`
|
Caused by: Hash-checking is not supported for Git repositories: `anyio @ git+https://github.com/agronholm/anyio@4a23745badf5bf5ef7928f1e346e9986bd696d82`
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4045,15 +4045,15 @@ fn require_hashes_source_tree() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_sync()
|
uv_snapshot!(context.filters(), context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `black @ file://[WORKSPACE]/test/packages/black_editable`
|
error: Failed to build `black @ file://[WORKSPACE]/test/packages/black_editable`
|
||||||
╰─▶ Hash-checking is not supported for local directories: `black @ file://[WORKSPACE]/test/packages/black_editable`
|
Caused by: Hash-checking is not supported for local directories: `black @ file://[WORKSPACE]/test/packages/black_editable`
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4090,22 +4090,22 @@ fn require_hashes_re_download() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio==4.0.0`
|
error: Failed to download `anyio==4.0.0`
|
||||||
╰─▶ Hash mismatch for `anyio==4.0.0`
|
Caused by: Hash mismatch for `anyio==4.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Reinstall with `--require-hashes`, and the right hash.
|
// Reinstall with `--require-hashes`, and the right hash.
|
||||||
|
|
@ -4181,22 +4181,22 @@ fn require_hashes_wheel_path_mismatch() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_sync()
|
uv_snapshot!(context.filters(), context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to read `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
|
error: Failed to read `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
|
||||||
╰─▶ Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
|
Caused by: Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:a34996d4bd5abb2336e14ff0a2d22b92cfd0f0ed344e6883041ce01953276a13
|
sha256:a34996d4bd5abb2336e14ff0a2d22b92cfd0f0ed344e6883041ce01953276a13
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4250,21 +4250,21 @@ fn require_hashes_source_path_mismatch() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.pip_sync()
|
uv_snapshot!(context.filters(), context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
|
error: Failed to build `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
|
||||||
╰─▶ Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
|
Caused by: Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:89fa05cffa7f457658373b85de302d24d0c205ceda2819a8739e324b75e9430b
|
sha256:89fa05cffa7f457658373b85de302d24d0c205ceda2819a8739e324b75e9430b
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4457,22 +4457,22 @@ fn require_hashes_repeated_hash() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--reinstall"), @r###"
|
.arg("--reinstall"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
error: Failed to download `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
╰─▶ Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
md5:520d85e19168705cdf0223621b18831a
|
md5:520d85e19168705cdf0223621b18831a
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
md5:420d85e19168705cdf0223621b18831a
|
md5:420d85e19168705cdf0223621b18831a
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4588,22 +4588,22 @@ fn require_hashes_find_links_no_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/no-hash/simple-html/example-a-961b4c22/index.html"), @r###"
|
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/no-hash/simple-html/example-a-961b4c22/index.html"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:123
|
sha256:123
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Third, use the hash from the source distribution. This will actually fail, when it _could_
|
// Third, use the hash from the source distribution. This will actually fail, when it _could_
|
||||||
|
|
@ -4617,22 +4617,22 @@ fn require_hashes_find_links_no_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/no-hash/simple-html/example-a-961b4c22/index.html"), @r###"
|
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/no-hash/simple-html/example-a-961b4c22/index.html"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Fourth, use the hash from the source distribution, and disable wheels. This should succeed.
|
// Fourth, use the hash from the source distribution, and disable wheels. This should succeed.
|
||||||
|
|
@ -4707,22 +4707,22 @@ fn require_hashes_find_links_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r###"
|
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:123
|
sha256:123
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Second, request the invalid hash, that the registry _thinks_ is correct. We should reject it.
|
// Second, request the invalid hash, that the registry _thinks_ is correct. We should reject it.
|
||||||
|
|
@ -4735,22 +4735,22 @@ fn require_hashes_find_links_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r###"
|
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
|
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Third, request the correct hash, that the registry _thinks_ is correct. We should accept
|
// Third, request the correct hash, that the registry _thinks_ is correct. We should accept
|
||||||
|
|
@ -4815,23 +4815,23 @@ fn require_hashes_find_links_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r###"
|
.arg("https://raw.githubusercontent.com/astral-test/astral-test-hash/main/invalid-hash/simple-html/example-a-961b4c22/index.html"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download and build `example-a-961b4c22==1.0.0`
|
error: Failed to download and build `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
|
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4881,15 +4881,15 @@ fn require_hashes_registry_valid_hash() -> Result<()> {
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--find-links")
|
.arg("--find-links")
|
||||||
.arg("https://astral-test.github.io/astral-test-hash/valid-hash/simple-html/"), @r###"
|
.arg("https://astral-test.github.io/astral-test-hash/valid-hash/simple-html/"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because example-a-961b4c22 was not found in the package registry and you require example-a-961b4c22==1.0.0, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because example-a-961b4c22 was not found in the package registry and you require example-a-961b4c22==1.0.0, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -4910,22 +4910,22 @@ fn require_hashes_registry_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--index-url")
|
.arg("--index-url")
|
||||||
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r###"
|
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:123
|
sha256:123
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Second, request the invalid hash, that the registry _thinks_ is correct. We should reject it.
|
// Second, request the invalid hash, that the registry _thinks_ is correct. We should reject it.
|
||||||
|
|
@ -4939,22 +4939,22 @@ fn require_hashes_registry_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--index-url")
|
.arg("--index-url")
|
||||||
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r###"
|
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `example-a-961b4c22==1.0.0`
|
error: Failed to download `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
|
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Third, request the correct hash, that the registry _thinks_ is correct. We should accept
|
// Third, request the correct hash, that the registry _thinks_ is correct. We should accept
|
||||||
|
|
@ -5022,23 +5022,23 @@ fn require_hashes_registry_invalid_hash() -> Result<()> {
|
||||||
.arg("--reinstall")
|
.arg("--reinstall")
|
||||||
.arg("--require-hashes")
|
.arg("--require-hashes")
|
||||||
.arg("--index-url")
|
.arg("--index-url")
|
||||||
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r###"
|
.arg("https://astral-test.github.io/astral-test-hash/invalid-hash/simple-html/"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download and build `example-a-961b4c22==1.0.0`
|
error: Failed to download and build `example-a-961b4c22==1.0.0`
|
||||||
╰─▶ Hash mismatch for `example-a-961b4c22==1.0.0`
|
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
|
||||||
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
|
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -5106,22 +5106,22 @@ fn require_hashes_url_invalid() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
error: Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
||||||
╰─▶ Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
Caused by: Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -5138,22 +5138,22 @@ fn require_hashes_url_ignore() -> Result<()> {
|
||||||
|
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--require-hashes"), @r###"
|
.arg("--require-hashes"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
error: Failed to download `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
||||||
╰─▶ Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
Caused by: Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl#sha256=b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -5549,18 +5549,18 @@ fn incompatible_build_constraint() -> Result<()> {
|
||||||
uv_snapshot!(context.pip_sync()
|
uv_snapshot!(context.pip_sync()
|
||||||
.arg("requirements.txt")
|
.arg("requirements.txt")
|
||||||
.arg("--build-constraint")
|
.arg("--build-constraint")
|
||||||
.arg("build_constraints.txt"), @r###"
|
.arg("build_constraints.txt"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -414,15 +414,15 @@ fn run_pep723_script() -> Result<()> {
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
// Running a script with `--group` should warn.
|
// Running a script with `--group` should warn.
|
||||||
uv_snapshot!(context.filters(), context.run().arg("--group").arg("foo").arg("main.py"), @r###"
|
uv_snapshot!(context.filters(), context.run().arg("--group").arg("foo").arg("main.py"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving script dependencies:
|
error: No solution found when resolving script dependencies:
|
||||||
╰─▶ Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// If the script can't be resolved, we should reference the script.
|
// If the script can't be resolved, we should reference the script.
|
||||||
let test_script = context.temp_dir.child("main.py");
|
let test_script = context.temp_dir.child("main.py");
|
||||||
|
|
@ -436,15 +436,15 @@ fn run_pep723_script() -> Result<()> {
|
||||||
"#
|
"#
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.run().arg("--no-project").arg("main.py"), @r###"
|
uv_snapshot!(context.filters(), context.run().arg("--no-project").arg("main.py"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving script dependencies:
|
error: No solution found when resolving script dependencies:
|
||||||
╰─▶ Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// If the script contains an unclosed PEP 723 tag, we should error.
|
// If the script contains an unclosed PEP 723 tag, we should error.
|
||||||
let test_script = context.temp_dir.child("main.py");
|
let test_script = context.temp_dir.child("main.py");
|
||||||
|
|
@ -786,17 +786,17 @@ fn run_pep723_script_build_constraints() -> Result<()> {
|
||||||
"#
|
"#
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.run().arg("main.py"), @r###"
|
uv_snapshot!(context.filters(), context.run().arg("main.py"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Compatible build constraints.
|
// Compatible build constraints.
|
||||||
test_script.write_str(indoc! { r#"
|
test_script.write_str(indoc! { r#"
|
||||||
|
|
@ -1256,7 +1256,7 @@ fn run_with() -> Result<()> {
|
||||||
");
|
");
|
||||||
|
|
||||||
// If the dependencies can't be resolved, we should reference `--with`.
|
// If the dependencies can't be resolved, we should reference `--with`.
|
||||||
uv_snapshot!(context.filters(), context.run().arg("--with").arg("add").arg("main.py"), @r###"
|
uv_snapshot!(context.filters(), context.run().arg("--with").arg("add").arg("main.py"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -1264,9 +1264,9 @@ fn run_with() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
Audited 2 packages in [TIME]
|
Audited 2 packages in [TIME]
|
||||||
× No solution found when resolving `--with` dependencies:
|
error: No solution found when resolving `--with` dependencies:
|
||||||
╰─▶ Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -1608,10 +1608,10 @@ fn run_with_build_constraints() -> Result<()> {
|
||||||
+ idna==3.6
|
+ idna==3.6
|
||||||
+ sniffio==1.3.1
|
+ sniffio==1.3.1
|
||||||
+ typing-extensions==4.10.0
|
+ typing-extensions==4.10.0
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Change the build constraint to be compatible with `requests==1.2`.
|
// Change the build constraint to be compatible with `requests==1.2`.
|
||||||
|
|
@ -1940,7 +1940,7 @@ fn run_with_editable() -> Result<()> {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// If invalid, we should reference `--with-editable`.
|
// If invalid, we should reference `--with-editable`.
|
||||||
uv_snapshot!(context.filters(), context.run().arg("--with-editable").arg("./foo").arg("main.py"), @r###"
|
uv_snapshot!(context.filters(), context.run().arg("--with-editable").arg("./foo").arg("main.py"), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -1948,9 +1948,9 @@ fn run_with_editable() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 3 packages in [TIME]
|
Resolved 3 packages in [TIME]
|
||||||
Audited 3 packages in [TIME]
|
Audited 3 packages in [TIME]
|
||||||
× Failed to resolve `--with` requirement
|
error: Failed to resolve `--with` requirement
|
||||||
╰─▶ Distribution not found at: file://[TEMP_DIR]/foo
|
Caused by: Distribution not found at: file://[TEMP_DIR]/foo
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -775,12 +775,12 @@ fn group_requires_python_useful_defaults() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
|
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
|
||||||
Creating virtual environment at: .venv
|
Creating virtual environment at: .venv
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
||||||
╰─▶ Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
Caused by: Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
||||||
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
||||||
And because pharaohs-tomp:dev depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:dev, we can conclude that your project's requirements are unsatisfiable.
|
And because pharaohs-tomp:dev depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:dev, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
||||||
");
|
");
|
||||||
|
|
||||||
// Running `uv sync` should always fail, as now sphinx is involved
|
// Running `uv sync` should always fail, as now sphinx is involved
|
||||||
|
|
@ -790,12 +790,12 @@ fn group_requires_python_useful_defaults() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
||||||
╰─▶ Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
Caused by: Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
||||||
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
||||||
And because pharaohs-tomp:dev depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:dev, we can conclude that your project's requirements are unsatisfiable.
|
And because pharaohs-tomp:dev depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:dev, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding group requires python should fix it
|
// Adding group requires python should fix it
|
||||||
|
|
@ -919,12 +919,12 @@ fn group_requires_python_useful_non_defaults() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
|
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
|
||||||
Creating virtual environment at: .venv
|
Creating virtual environment at: .venv
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
||||||
╰─▶ Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
Caused by: Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
||||||
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
||||||
And because pharaohs-tomp:mygroup depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:mygroup, we can conclude that your project's requirements are unsatisfiable.
|
And because pharaohs-tomp:mygroup depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:mygroup, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
||||||
");
|
");
|
||||||
|
|
||||||
// Running `uv sync --group mygroup` should definitely fail, as now sphinx is involved
|
// Running `uv sync --group mygroup` should definitely fail, as now sphinx is involved
|
||||||
|
|
@ -935,12 +935,12 @@ fn group_requires_python_useful_non_defaults() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
|
||||||
╰─▶ Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
Caused by: Because the requested Python version (>=3.8) does not satisfy Python>=3.9 and sphinx==7.2.6 depends on Python>=3.9, we can conclude that sphinx==7.2.6 cannot be used.
|
||||||
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
And because only sphinx<=7.2.6 is available, we can conclude that sphinx>=7.2.6 cannot be used.
|
||||||
And because pharaohs-tomp:mygroup depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:mygroup, we can conclude that your project's requirements are unsatisfiable.
|
And because pharaohs-tomp:mygroup depends on sphinx>=7.2.6 and your project requires pharaohs-tomp:mygroup, we can conclude that your project's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
hint: The `requires-python` value (>=3.8) includes Python versions that are not supported by your dependencies (e.g., sphinx==7.2.6 only supports >=3.9). Consider using a more restrictive `requires-python` value (like >=3.9).
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding group requires python should fix it
|
// Adding group requires python should fix it
|
||||||
|
|
@ -1509,22 +1509,23 @@ fn sync_build_isolation_package() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 8, in <module>
|
File "<string>", line 8, in <module>
|
||||||
ModuleNotFoundError: No module named 'hatchling'
|
ModuleNotFoundError: No module named 'hatchling'
|
||||||
|
|
||||||
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
||||||
|
|
||||||
[tool.uv.extra-build-dependencies]
|
[tool.uv.extra-build-dependencies]
|
||||||
source-distribution = ["hatchling"]
|
source-distribution = ["hatchling"]
|
||||||
|
|
||||||
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
||||||
help: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
|
|
||||||
|
hint: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Install `hatchling` for `source-distribution`.
|
// Install `hatchling` for `source-distribution`.
|
||||||
|
|
@ -1597,22 +1598,23 @@ fn sync_build_isolation_package_order() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 8, in <module>
|
File "<string>", line 8, in <module>
|
||||||
ModuleNotFoundError: No module named 'hatchling'
|
ModuleNotFoundError: No module named 'hatchling'
|
||||||
|
|
||||||
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
||||||
|
|
||||||
[tool.uv.extra-build-dependencies]
|
[tool.uv.extra-build-dependencies]
|
||||||
source-distribution = ["hatchling"]
|
source-distribution = ["hatchling"]
|
||||||
|
|
||||||
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
||||||
help: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
|
|
||||||
|
hint: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Add `hatchling`.
|
// Add `hatchling`.
|
||||||
|
|
@ -1767,22 +1769,23 @@ fn sync_build_isolation_extra() -> Result<()> {
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
Prepared [N] packages in [TIME]
|
Prepared [N] packages in [TIME]
|
||||||
Installed [N] packages in [TIME]
|
Installed [N] packages in [TIME]
|
||||||
× Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 8, in <module>
|
File "<string>", line 8, in <module>
|
||||||
ModuleNotFoundError: No module named 'hatchling'
|
ModuleNotFoundError: No module named 'hatchling'
|
||||||
|
|
||||||
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
hint: This error likely indicates that `source-distribution` depends on `hatchling`, but doesn't declare it as a build dependency. If `source-distribution` is a first-party package, consider adding `hatchling` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
||||||
|
|
||||||
[tool.uv.extra-build-dependencies]
|
[tool.uv.extra-build-dependencies]
|
||||||
source-distribution = ["hatchling"]
|
source-distribution = ["hatchling"]
|
||||||
|
|
||||||
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
|
||||||
help: `source-distribution` was included because `project[compile]` (v0.1.0) depends on `source-distribution`
|
|
||||||
|
hint: `source-distribution` was included because `project[compile]` (v0.1.0) depends on `source-distribution`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Running `uv sync` with `--all-extras` should succeed, because we install the build dependencies
|
// Running `uv sync` with `--all-extras` should succeed, because we install the build dependencies
|
||||||
|
|
@ -1909,15 +1912,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Missing `anyio` module
|
Missing `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding `extra-build-dependencies` should solve the issue
|
// Adding `extra-build-dependencies` should solve the issue
|
||||||
|
|
@ -1987,15 +1991,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Missing `anyio` module
|
Missing `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Write a test package that arbitrarily bans `anyio` at build time
|
// Write a test package that arbitrarily bans `anyio` at build time
|
||||||
|
|
@ -2056,15 +2061,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `bad-child @ file://[TEMP_DIR]/bad_child`
|
error: Failed to build `bad-child @ file://[TEMP_DIR]/bad_child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Found `anyio` module
|
Found `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `bad-child` was included because `parent` (v0.1.0) depends on `bad-child`
|
|
||||||
|
hint: `bad-child` was included because `parent` (v0.1.0) depends on `bad-child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// But `anyio` is not provided to `bad_child` if scoped to `child`
|
// But `anyio` is not provided to `bad_child` if scoped to `child`
|
||||||
|
|
@ -2151,14 +2157,14 @@ fn sync_extra_build_dependencies_setuptools_legacy() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Missing `anyio` module
|
Missing `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding `extra-build-dependencies` should solve the issue
|
// Adding `extra-build-dependencies` should solve the issue
|
||||||
|
|
@ -2257,15 +2263,16 @@ fn sync_extra_build_dependencies_setuptools() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Missing `anyio` module
|
Missing `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding `extra-build-dependencies` should solve the issue
|
// Adding `extra-build-dependencies` should solve the issue
|
||||||
|
|
@ -2448,15 +2455,16 @@ fn sync_extra_build_dependencies_index() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 3.0 but got 4.3.0
|
Expected `anyio` version 3.0 but got 4.3.0
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Ensure that we're resolving to `4.3.0`, the "latest" on PyPI.
|
// Ensure that we're resolving to `4.3.0`, the "latest" on PyPI.
|
||||||
|
|
@ -2503,15 +2511,16 @@ fn sync_extra_build_dependencies_index() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 4.3 but got 3.5.0
|
Expected `anyio` version 4.3 but got 3.5.0
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.sync()
|
uv_snapshot!(context.filters(), context.sync()
|
||||||
|
|
@ -2601,15 +2610,16 @@ fn sync_extra_build_dependencies_sources_from_child() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Found system anyio instead of local anyio
|
Found system anyio instead of local anyio
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `project` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `project` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -2665,24 +2675,25 @@ fn sync_build_dependencies_module_error_hints() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 8, in <module>
|
File "<string>", line 8, in <module>
|
||||||
File "[TEMP_DIR]/child/build_backend.py", line 4, in <module>
|
File "[TEMP_DIR]/child/build_backend.py", line 4, in <module>
|
||||||
import anyio
|
import anyio
|
||||||
ModuleNotFoundError: No module named 'anyio'
|
ModuleNotFoundError: No module named 'anyio'
|
||||||
|
|
||||||
hint: This error likely indicates that `child@0.1.0` depends on `anyio`, but doesn't declare it as a build dependency. If `child` is a first-party package, consider adding `anyio` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
hint: This error likely indicates that `child@0.1.0` depends on `anyio`, but doesn't declare it as a build dependency. If `child` is a first-party package, consider adding `anyio` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
||||||
|
|
||||||
[tool.uv.extra-build-dependencies]
|
[tool.uv.extra-build-dependencies]
|
||||||
child = ["anyio"]
|
child = ["anyio"]
|
||||||
|
|
||||||
or `uv pip install anyio` into the environment and re-run with `--no-build-isolation`.
|
or `uv pip install anyio` into the environment and re-run with `--no-build-isolation`.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Adding `extra-build-dependencies` should solve the issue
|
// Adding `extra-build-dependencies` should solve the issue
|
||||||
|
|
@ -2733,24 +2744,25 @@ fn sync_build_dependencies_module_error_hints() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 8, in <module>
|
File "<string>", line 8, in <module>
|
||||||
File "[TEMP_DIR]/child/build_backend.py", line 5, in <module>
|
File "[TEMP_DIR]/child/build_backend.py", line 5, in <module>
|
||||||
import sklearn
|
import sklearn
|
||||||
ModuleNotFoundError: No module named 'sklearn'
|
ModuleNotFoundError: No module named 'sklearn'
|
||||||
|
|
||||||
hint: This error likely indicates that `child@0.1.0` depends on `scikit-learn`, but doesn't declare it as a build dependency. If `child` is a first-party package, consider adding `scikit-learn` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
hint: This error likely indicates that `child@0.1.0` depends on `scikit-learn`, but doesn't declare it as a build dependency. If `child` is a first-party package, consider adding `scikit-learn` to its `build-system.requires`. Otherwise, either add it to your `pyproject.toml` under:
|
||||||
|
|
||||||
[tool.uv.extra-build-dependencies]
|
[tool.uv.extra-build-dependencies]
|
||||||
child = ["scikit-learn"]
|
child = ["scikit-learn"]
|
||||||
|
|
||||||
or `uv pip install scikit-learn` into the environment and re-run with `--no-build-isolation`.
|
or `uv pip install scikit-learn` into the environment and re-run with `--no-build-isolation`.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Adding `extra-build-dependencies` should solve the issue
|
// Adding `extra-build-dependencies` should solve the issue
|
||||||
|
|
@ -5811,14 +5823,14 @@ fn sync_extra_build_dependencies_script() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
|
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Missing `anyio` module
|
Missing `anyio` module
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Add extra build dependencies to the script
|
// Add extra build dependencies to the script
|
||||||
|
|
@ -9507,30 +9519,31 @@ fn sync_derivation_chain() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -9570,30 +9583,31 @@ fn sync_derivation_chain_extra() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -9635,30 +9649,31 @@ fn sync_derivation_chain_group() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `wsgiref==0.1.2`
|
error: Failed to build `wsgiref==0.1.2`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<string>", line 14, in <module>
|
File "<string>", line 14, in <module>
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
|
||||||
return self._get_build_requires(config_settings, requirements=['wheel'])
|
return self._get_build_requires(config_settings, requirements=['wheel'])
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
|
||||||
self.run_setup()
|
self.run_setup()
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
|
||||||
super().run_setup(setup_script=setup_script)
|
super().run_setup(setup_script=setup_script)
|
||||||
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
|
||||||
exec(code, locals())
|
exec(code, locals())
|
||||||
File "<string>", line 5, in <module>
|
File "<string>", line 5, in <module>
|
||||||
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
|
||||||
print "Setuptools version",version,"or greater has been installed."
|
print "Setuptools version",version,"or greater has been installed."
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
|
|
||||||
|
hint: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10103,9 +10118,10 @@ fn mismatched_name_self_editable() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `foo @ file://[TEMP_DIR]/`
|
error: Failed to build `foo @ file://[TEMP_DIR]/`
|
||||||
╰─▶ Package metadata name `project` does not match given name `foo`
|
Caused by: Package metadata name `project` does not match given name `foo`
|
||||||
help: `foo` was included because `project` (v0.1.0) depends on `foo`
|
|
||||||
|
hint: `foo` was included because `project` (v0.1.0) depends on `foo`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10156,8 +10172,8 @@ fn mismatched_name_cached_wheel() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `foo @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
error: Failed to download and build `foo @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
||||||
╰─▶ Package metadata name `iniconfig` does not match given name `foo`
|
Caused by: Package metadata name `iniconfig` does not match given name `foo`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10429,15 +10445,16 @@ fn url_hash_mismatch() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to download and build `iniconfig @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
error: Failed to download and build `iniconfig @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
||||||
╰─▶ Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
Caused by: Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
|
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
|
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
|
||||||
help: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
|
|
||||||
|
hint: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -10502,15 +10519,16 @@ fn path_hash_mismatch() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 2 packages in [TIME]
|
Resolved 2 packages in [TIME]
|
||||||
× Failed to build `iniconfig @ file://[TEMP_DIR]/iniconfig-2.0.0.tar.gz`
|
error: Failed to build `iniconfig @ file://[TEMP_DIR]/iniconfig-2.0.0.tar.gz`
|
||||||
╰─▶ Hash mismatch for `iniconfig @ file://[TEMP_DIR]/iniconfig-2.0.0.tar.gz`
|
Caused by: Hash mismatch for `iniconfig @ file://[TEMP_DIR]/iniconfig-2.0.0.tar.gz`
|
||||||
|
|
||||||
Expected:
|
Expected:
|
||||||
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
|
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
|
||||||
|
|
||||||
Computed:
|
Computed:
|
||||||
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
|
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
|
||||||
help: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
|
|
||||||
|
hint: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -11263,10 +11281,10 @@ fn sync_script_with_incompatible_build_constraints() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
|
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -11298,9 +11316,9 @@ fn unsupported_git_scheme() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
Creating virtual environment at: .venv
|
Creating virtual environment at: .venv
|
||||||
× Failed to build `foo @ file://[TEMP_DIR]/`
|
error: Failed to build `foo @ file://[TEMP_DIR]/`
|
||||||
├─▶ Failed to parse entry: `foo`
|
Caused by: Failed to parse entry: `foo`
|
||||||
╰─▶ Unsupported Git URL scheme `c:` in `c:/home/ferris/projects/foo` (expected one of `https:`, `ssh:`, or `file:`)
|
Caused by: Unsupported Git URL scheme `c:` in `c:/home/ferris/projects/foo` (expected one of `https:`, `ssh:`, or `file:`)
|
||||||
");
|
");
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -13474,15 +13492,16 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 3.0 but got 4.3.0
|
Expected `anyio` version 3.0 but got 4.3.0
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Now constrain the `anyio` build dependency to match the runtime
|
// Now constrain the `anyio` build dependency to match the runtime
|
||||||
|
|
@ -13542,15 +13561,16 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_wheel` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 4.0 but got 3.7.1
|
Expected `anyio` version 4.0 but got 3.7.1
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
uv_snapshot!(context.filters(), context.sync()
|
uv_snapshot!(context.filters(), context.sync()
|
||||||
|
|
@ -13625,11 +13645,12 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `child @ file://[TEMP_DIR]/child`
|
error: Failed to build `child @ file://[TEMP_DIR]/child`
|
||||||
├─▶ Failed to resolve requirements from `build-system.requires` and `extra-build-dependencies`
|
Caused by: Failed to resolve requirements from `build-system.requires` and `extra-build-dependencies`
|
||||||
├─▶ No solution found when resolving: `hatchling`, `anyio>3.8, <4.2`, `anyio==3.7.1 (index: https://pypi.org/simple)`
|
Caused by: No solution found when resolving: `hatchling`, `anyio>3.8, <4.2`, `anyio==3.7.1 (index: https://pypi.org/simple)`
|
||||||
╰─▶ Because you require anyio>3.8,<4.2 and anyio==3.7.1, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require anyio>3.8,<4.2 and anyio==3.7.1, we can conclude that your requirements are unsatisfiable.
|
||||||
help: `child` was included because `parent` (v0.1.0) depends on `child`
|
|
||||||
|
hint: `child` was included because `parent` (v0.1.0) depends on `child`
|
||||||
");
|
");
|
||||||
|
|
||||||
// Adding a version specifier should also fail
|
// Adding a version specifier should also fail
|
||||||
|
|
@ -13725,14 +13746,14 @@ fn sync_extra_build_variables() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `parent @ file://[TEMP_DIR]/`
|
error: Failed to build `parent @ file://[TEMP_DIR]/`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_editable` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_editable` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 3.0 but got 4.3.0
|
Expected `anyio` version 3.0 but got 4.3.0
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Set the variable in TOML (to an incorrect value).
|
// Set the variable in TOML (to an incorrect value).
|
||||||
|
|
@ -13758,14 +13779,14 @@ fn sync_extra_build_variables() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved [N] packages in [TIME]
|
Resolved [N] packages in [TIME]
|
||||||
× Failed to build `parent @ file://[TEMP_DIR]/`
|
error: Failed to build `parent @ file://[TEMP_DIR]/`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `build_backend.build_editable` failed (exit status: 1)
|
Caused by: Call to `build_backend.build_editable` failed (exit status: 1)
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
Expected `anyio` version 3.0 but got 4.3.0
|
Expected `anyio` version 3.0 but got 4.3.0
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Set the variable in TOML (to a correct value).
|
// Set the variable in TOML (to a correct value).
|
||||||
|
|
@ -13824,9 +13845,10 @@ fn reject_unmatched_runtime() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
warning: The `extra-build-dependencies` option is experimental and may change without warning. Pass `--preview-features extra-build-dependencies` to disable this warning.
|
||||||
× Failed to download and build `source-distribution==0.0.3`
|
error: Failed to download and build `source-distribution==0.0.3`
|
||||||
╰─▶ Extra build requirement `iniconfig` was declared with `match-runtime = true`, but `source-distribution` does not declare static metadata, making runtime-matching impossible
|
Caused by: Extra build requirement `iniconfig` was declared with `match-runtime = true`, but `source-distribution` does not declare static metadata, making runtime-matching impossible
|
||||||
help: `source-distribution` (v0.0.3) was included because `foo` (v0.1.0) depends on `source-distribution`
|
|
||||||
|
hint: `source-distribution` (v0.0.3) was included because `foo` (v0.1.0) depends on `source-distribution`
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -421,10 +421,10 @@ fn tool_install_with_incompatible_build_constraints() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
tool_dir
|
tool_dir
|
||||||
|
|
@ -1702,27 +1702,27 @@ fn tool_install_uninstallable() {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Resolved 1 package in [TIME]
|
Resolved 1 package in [TIME]
|
||||||
× Failed to build `pyenv==0.0.1`
|
error: Failed to build `pyenv==0.0.1`
|
||||||
├─▶ The build backend returned an error
|
Caused by: The build backend returned an error
|
||||||
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
|
||||||
|
|
||||||
[stdout]
|
[stdout]
|
||||||
running bdist_wheel
|
running bdist_wheel
|
||||||
running build
|
running build
|
||||||
installing to build/bdist.linux-x86_64/wheel
|
installing to build/bdist.linux-x86_64/wheel
|
||||||
running install
|
running install
|
||||||
|
|
||||||
[stderr]
|
[stderr]
|
||||||
# NOTE #
|
# NOTE #
|
||||||
We are sorry, but this package is not installable with pip.
|
We are sorry, but this package is not installable with pip.
|
||||||
|
|
||||||
Please read the installation instructions at:
|
Please read the installation instructions at:
|
||||||
|
|
||||||
https://github.com/pyenv/pyenv#installation
|
https://github.com/pyenv/pyenv#installation
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
hint: This usually indicates a problem with the package or the build environment.
|
hint: This usually indicates a problem with the package or the build environment.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Ensure the tool environment is not created.
|
// Ensure the tool environment is not created.
|
||||||
|
|
@ -3099,16 +3099,16 @@ fn tool_install_preserve_environment() {
|
||||||
.arg("packaging==0.0.1")
|
.arg("packaging==0.0.1")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
|
||||||
.env(EnvVars::PATH, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::PATH, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because black==24.1.1 depends on packaging>=22.0 and you require black==24.1.1, we can conclude that you require packaging>=22.0.
|
Caused by: Because black==24.1.1 depends on packaging>=22.0 and you require black==24.1.1, we can conclude that you require packaging>=22.0.
|
||||||
And because you require packaging==0.0.1, we can conclude that your requirements are unsatisfiable.
|
And because you require packaging==0.0.1, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
|
|
||||||
// Install `black`. The tool should already be installed, since we didn't remove the environment.
|
// Install `black`. The tool should already be installed, since we didn't remove the environment.
|
||||||
uv_snapshot!(context.filters(), context.tool_install()
|
uv_snapshot!(context.filters(), context.tool_install()
|
||||||
|
|
@ -4487,11 +4487,11 @@ fn tool_install_find_links() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because only basic-app==0.1 is available and basic-app==0.1 needs to be downloaded from a registry, we can conclude that all versions of basic-app cannot be used.
|
Caused by: Because only basic-app==0.1 is available and basic-app==0.1 needs to be downloaded from a registry, we can conclude that all versions of basic-app cannot be used.
|
||||||
And because you require basic-app, we can conclude that your requirements are unsatisfiable.
|
And because you require basic-app, we can conclude that your requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,15 +109,15 @@ fn tool_run_at_version() {
|
||||||
.arg("pytest@invalid")
|
.arg("pytest@invalid")
|
||||||
.arg("--version")
|
.arg("--version")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve tool requirement
|
error: Failed to resolve tool requirement
|
||||||
╰─▶ Distribution not found at: file://[TEMP_DIR]/invalid
|
Caused by: Distribution not found at: file://[TEMP_DIR]/invalid
|
||||||
"###);
|
");
|
||||||
|
|
||||||
let filters = context
|
let filters = context
|
||||||
.filters()
|
.filters()
|
||||||
|
|
@ -1809,15 +1809,15 @@ fn tool_run_with_editable() -> anyhow::Result<()> {
|
||||||
.arg("flask")
|
.arg("flask")
|
||||||
.arg("--version")
|
.arg("--version")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir
|
.env(EnvVars::UV_TOOL_DIR, tool_dir
|
||||||
.as_os_str()).env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.as_os_str()).env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to resolve `--with` requirement
|
error: Failed to resolve `--with` requirement
|
||||||
╰─▶ Distribution not found at: file://[TEMP_DIR]/foo
|
Caused by: Distribution not found at: file://[TEMP_DIR]/foo
|
||||||
"###);
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -1914,15 +1914,15 @@ fn tool_run_resolution_error() {
|
||||||
uv_snapshot!(context.filters(), context.tool_run()
|
uv_snapshot!(context.filters(), context.tool_run()
|
||||||
.arg("add")
|
.arg("add")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
|
||||||
"###);
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
@ -2238,8 +2238,8 @@ fn tool_run_python_at_version() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because cp311 was not found in the package registry and you require cp311, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because cp311 was not found in the package registry and you require cp311, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Bare versions don't work either. Again we interpret them as package names.
|
// Bare versions don't work either. Again we interpret them as package names.
|
||||||
|
|
@ -2251,8 +2251,8 @@ fn tool_run_python_at_version() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because 311 was not found in the package registry and you require 311, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because 311 was not found in the package registry and you require 311, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Request a version via `-p`
|
// Request a version via `-p`
|
||||||
|
|
@ -2833,48 +2833,51 @@ fn tool_run_verbose_hint() {
|
||||||
.arg("nonexistent-package-foo")
|
.arg("nonexistent-package-foo")
|
||||||
.arg("--verbose")
|
.arg("--verbose")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because nonexistent-package-foo was not found in the package registry and you require nonexistent-package-foo, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because nonexistent-package-foo was not found in the package registry and you require nonexistent-package-foo, we can conclude that your requirements are unsatisfiable.
|
||||||
help: You provided `--verbose` to `nonexistent-package-foo`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run --verbose nonexistent-package-foo`
|
|
||||||
"###);
|
hint: You provided `--verbose` to `nonexistent-package-foo`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run --verbose nonexistent-package-foo`
|
||||||
|
");
|
||||||
|
|
||||||
// Test with -v flag
|
// Test with -v flag
|
||||||
uv_snapshot!(context.filters(), context.tool_run()
|
uv_snapshot!(context.filters(), context.tool_run()
|
||||||
.arg("nonexistent-package-bar")
|
.arg("nonexistent-package-bar")
|
||||||
.arg("-v")
|
.arg("-v")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because nonexistent-package-bar was not found in the package registry and you require nonexistent-package-bar, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because nonexistent-package-bar was not found in the package registry and you require nonexistent-package-bar, we can conclude that your requirements are unsatisfiable.
|
||||||
help: You provided `-v` to `nonexistent-package-bar`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run -v nonexistent-package-bar`
|
|
||||||
"###);
|
hint: You provided `-v` to `nonexistent-package-bar`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run -v nonexistent-package-bar`
|
||||||
|
");
|
||||||
|
|
||||||
// Test with -vv flag
|
// Test with -vv flag
|
||||||
uv_snapshot!(context.filters(), context.tool_run()
|
uv_snapshot!(context.filters(), context.tool_run()
|
||||||
.arg("nonexistent-package-baz")
|
.arg("nonexistent-package-baz")
|
||||||
.arg("-vv")
|
.arg("-vv")
|
||||||
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
|
||||||
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
|
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because nonexistent-package-baz was not found in the package registry and you require nonexistent-package-baz, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because nonexistent-package-baz was not found in the package registry and you require nonexistent-package-baz, we can conclude that your requirements are unsatisfiable.
|
||||||
help: You provided `-vv` to `nonexistent-package-baz`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run -vv nonexistent-package-baz`
|
|
||||||
"###);
|
hint: You provided `-vv` to `nonexistent-package-baz`. Did you mean to provide it to `uv tool run`? e.g., `uv tool run -vv nonexistent-package-baz`
|
||||||
|
");
|
||||||
|
|
||||||
// Test for false positives
|
// Test for false positives
|
||||||
uv_snapshot!(context.filters(), context.tool_run()
|
uv_snapshot!(context.filters(), context.tool_run()
|
||||||
|
|
@ -2887,8 +2890,8 @@ fn tool_run_verbose_hint() {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because nonexistent-package-quux was not found in the package registry and you require nonexistent-package-quux, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because nonexistent-package-quux was not found in the package registry and you require nonexistent-package-quux, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2956,10 +2959,10 @@ fn tool_run_with_incompatible_build_constraints() -> Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× Failed to download and build `requests==1.2.0`
|
error: Failed to download and build `requests==1.2.0`
|
||||||
├─▶ Failed to resolve requirements from `setup.py` build
|
Caused by: Failed to resolve requirements from `setup.py` build
|
||||||
├─▶ No solution found when resolving: `setuptools>=40.8.0`
|
Caused by: No solution found when resolving: `setuptools>=40.8.0`
|
||||||
╰─▶ Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
|
Caused by: Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -3442,9 +3445,9 @@ fn tool_run_reresolve_python() -> anyhow::Result<()> {
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
× No solution found when resolving tool dependencies:
|
error: No solution found when resolving tool dependencies:
|
||||||
╰─▶ Because the current Python version (3.11.[X]) does not satisfy Python>=3.12 and foo==1.0.0 depends on Python>=3.12, we can conclude that foo==1.0.0 cannot be used.
|
Caused by: Because the current Python version (3.11.[X]) does not satisfy Python>=3.12 and foo==1.0.0 depends on Python>=3.12, we can conclude that foo==1.0.0 cannot be used.
|
||||||
And because only foo==1.0.0 is available and you require foo, we can conclude that your requirements are unsatisfiable.
|
And because only foo==1.0.0 is available and you require foo, we can conclude that your requirements are unsatisfiable.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Unless the discovered interpreter is compatible with the request
|
// Unless the discovered interpreter is compatible with the request
|
||||||
|
|
|
||||||
|
|
@ -1131,19 +1131,19 @@ fn workspace_inherit_sources() -> Result<()> {
|
||||||
library.child("src/__init__.py").touch()?;
|
library.child("src/__init__.py").touch()?;
|
||||||
|
|
||||||
// As-is, resolving should fail.
|
// As-is, resolving should fail.
|
||||||
uv_snapshot!(context.filters(), context.lock().arg("--offline").current_dir(&workspace), @r###"
|
uv_snapshot!(context.filters(), context.lock().arg("--offline").current_dir(&workspace), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because library was not found in the cache and leaf depends on library, we can conclude that leaf's requirements are unsatisfiable.
|
Caused by: Because library was not found in the cache and leaf depends on library, we can conclude that leaf's requirements are unsatisfiable.
|
||||||
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
|
|
||||||
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
hint: Packages were unavailable because the network was disabled. When the network is disabled, registry packages may only be read from the cache.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Update the leaf to include the source.
|
// Update the leaf to include the source.
|
||||||
|
|
@ -1358,9 +1358,9 @@ fn workspace_unsatisfiable_member_dependencies() -> Result<()> {
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because only httpx<=0.27.0 is available and leaf depends on httpx>9999, we can conclude that leaf's requirements are unsatisfiable.
|
Caused by: Because only httpx<=0.27.0 is available and leaf depends on httpx>9999, we can conclude that leaf's requirements are unsatisfiable.
|
||||||
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -1419,17 +1419,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting() -> Result<()> {
|
||||||
bar.child("src/__init__.py").touch()?;
|
bar.child("src/__init__.py").touch()?;
|
||||||
|
|
||||||
// Resolving should fail.
|
// Resolving should fail.
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because bar depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that bar and foo are incompatible.
|
Caused by: Because bar depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that bar and foo are incompatible.
|
||||||
And because your workspace requires bar and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires bar and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1502,17 +1502,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result<
|
||||||
bird.child("src/__init__.py").touch()?;
|
bird.child("src/__init__.py").touch()?;
|
||||||
|
|
||||||
// Resolving should fail.
|
// Resolving should fail.
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because bird depends on anyio==4.3.0 and knot depends on anyio==4.2.0, we can conclude that bird and knot are incompatible.
|
Caused by: Because bird depends on anyio==4.3.0 and knot depends on anyio==4.2.0, we can conclude that bird and knot are incompatible.
|
||||||
And because your workspace requires bird and knot, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires bird and knot, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1572,17 +1572,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_extra() -> Result<()>
|
||||||
bar.child("src/__init__.py").touch()?;
|
bar.child("src/__init__.py").touch()?;
|
||||||
|
|
||||||
// Resolving should fail.
|
// Resolving should fail.
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because bar[some-extra] depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that foo and bar[some-extra] are incompatible.
|
Caused by: Because bar[some-extra] depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that foo and bar[some-extra] are incompatible.
|
||||||
And because your workspace requires bar[some-extra] and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires bar[some-extra] and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
@ -1650,9 +1650,9 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
warning: The `tool.uv.dev-dependencies` field (used in `packages/bar/pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
|
warning: The `tool.uv.dev-dependencies` field (used in `packages/bar/pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× No solution found when resolving dependencies:
|
error: No solution found when resolving dependencies:
|
||||||
╰─▶ Because bar:dev depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that foo and bar:dev are incompatible.
|
Caused by: Because bar:dev depends on anyio==4.2.0 and foo depends on anyio==4.1.0, we can conclude that foo and bar:dev are incompatible.
|
||||||
And because your workspace requires bar:dev and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
And because your workspace requires bar:dev and foo, we can conclude that your workspace's requirements are unsatisfiable.
|
||||||
"
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -1714,17 +1714,17 @@ fn workspace_member_name_shadows_dependencies() -> Result<()> {
|
||||||
|
|
||||||
// We should fail
|
// We should fail
|
||||||
// TODO(zanieb): This error message is bad?
|
// TODO(zanieb): This error message is bad?
|
||||||
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r###"
|
uv_snapshot!(context.filters(), context.lock().current_dir(&workspace), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 1
|
exit_code: 1
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
|
||||||
× Failed to build `foo @ file://[TEMP_DIR]/workspace/packages/foo`
|
error: Failed to build `foo @ file://[TEMP_DIR]/workspace/packages/foo`
|
||||||
├─▶ Failed to parse entry: `anyio`
|
Caused by: Failed to parse entry: `anyio`
|
||||||
╰─▶ `anyio` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `anyio = { workspace = true }`)
|
Caused by: `anyio` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `anyio = { workspace = true }`)
|
||||||
"###
|
"
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue