Remove miette

This commit is contained in:
Zanie Blue 2025-12-12 11:51:24 -06:00
parent 6de869cc88
commit 633cf847fb
30 changed files with 2503 additions and 2501 deletions

34
Cargo.lock generated
View File

@ -2300,12 +2300,6 @@ dependencies = [
"once_cell",
]
[[package]]
name = "is_ci"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@ -2623,12 +2617,6 @@ checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
dependencies = [
"cfg-if",
"miette-derive",
"owo-colors",
"supports-color",
"supports-hyperlinks",
"supports-unicode",
"terminal_size",
"textwrap",
"unicode-width 0.1.14",
]
@ -4469,27 +4457,6 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
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]]
name = "svg"
version = "0.18.0"
@ -5437,7 +5404,6 @@ dependencies = [
"indoc",
"insta",
"itertools 0.14.0",
"miette",
"nix",
"open",
"owo-colors",

View File

@ -132,7 +132,6 @@ junction = { version = "1.2.0" }
mailparse = { version = "0.16.0" }
md-5 = { version = "0.10.6" }
memchr = { version = "2.7.4" }
miette = { version = "7.2.0", features = ["fancy-no-backtrace"] }
nanoid = { version = "0.4.0" }
nix = { version = "0.30.0", features = ["signal"] }
open = { version = "5.3.2" }

View File

@ -88,12 +88,23 @@ pub fn write_error_chain(
err.to_string().trim()
)?;
for source in iter::successors(err.source(), |&err| err.source()) {
writeln!(
&mut stream,
" {}: {}",
"Caused by".color(color).bold(),
source.to_string().trim()
)?;
let msg = source.to_string();
let mut lines = msg.lines();
if let Some(first) = lines.next() {
let padding = " ";
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(())
}

View File

@ -87,7 +87,6 @@ indicatif = { workspace = true }
indoc = { workspace = true }
itertools = { workspace = true }
h2 = { workspace = true }
miette = { workspace = true, features = ["fancy-no-backtrace"] }
open = { workspace = true }
owo-colors = { workspace = true }
petgraph = { workspace = true }

View File

@ -48,7 +48,7 @@ use crate::commands::ExitStatus;
use crate::commands::pip::operations;
use crate::commands::project::{ProjectError, find_requires_python};
use crate::commands::reporters::PythonDownloadReporter;
use crate::printer::Printer;
use crate::printer::{Printer, Stderr};
use crate::settings::ResolverSettings;
#[derive(Debug, Error)]
@ -385,15 +385,12 @@ async fn build_impl(
}
}
Err(err) => {
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
#[error("Failed to build `{source}`", source = source.cyan())]
#[diagnostic()]
#[derive(Debug, Error)]
#[error("Failed to build `{source}`")]
struct Diagnostic {
source: String,
#[source]
cause: anyhow::Error,
#[help]
help: Option<String>,
}
let help = if let Error::Extract(uv_extract::Error::Tar(err)) = &err {
@ -421,12 +418,19 @@ async fn build_impl(
None
};
let report = miette::Report::new(Diagnostic {
let diagnostic = Diagnostic {
source: source.to_string(),
cause: err.into(),
help,
});
anstream::eprint!("{report:?}");
};
let _ = uv_warnings::write_error_chain(
&diagnostic,
Stderr::Enabled,
"error",
owo_colors::AnsiColors::Red,
);
if let Some(help) = help {
let _ = writeln!(Stderr::Enabled, "\n{}: {help}", "hint".bold().cyan());
}
success = false;
}

View File

@ -1,8 +1,10 @@
use std::fmt::Write;
use std::str::FromStr;
use std::sync::{Arc, LazyLock};
use owo_colors::OwoColorize;
use rustc_hash::FxHashMap;
use thiserror::Error;
use version_ranges::Ranges;
use uv_distribution_types::{
@ -11,8 +13,10 @@ use uv_distribution_types::{
use uv_normalize::PackageName;
use uv_pep440::Version;
use uv_resolver::SentinelRange;
use uv_warnings::write_error_chain;
use crate::commands::pip;
use crate::printer::Stderr;
static SUGGESTIONS: LazyLock<FxHashMap<PackageName, PackageName>> = LazyLock::new(|| {
let suggestions: Vec<(String, String)> =
@ -77,7 +81,7 @@ impl OperationDiagnostic {
if let Some(context) = self.context {
no_solution_context(&err, context);
} else if let Some(hint) = self.hint {
no_solution_hint(err, hint);
no_solution_hint(err, &hint);
} else {
no_solution(&err);
}
@ -122,9 +126,14 @@ impl OperationDiagnostic {
}
pip::operations::Error::Requirements(err) => {
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"));
anstream::eprint!("{err:?}");
let _ = write_error_chain(
err.as_ref(),
Stderr::Enabled,
"error",
owo_colors::AnsiColors::Red,
);
None
} else {
Some(pip::operations::Error::Requirements(err))
@ -133,7 +142,7 @@ impl OperationDiagnostic {
pip::operations::Error::Resolve(uv_resolver::ResolveError::Client(err))
if !self.native_tls && err.is_ssl() =>
{
native_tls_hint(err);
native_tls_hint(&err);
None
}
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.
pub(crate) fn dist_error(
kind: DistErrorKind,
@ -153,16 +170,13 @@ pub(crate) fn dist_error(
cause: Arc<uv_distribution::Error>,
help: Option<String>,
) {
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
#[derive(Debug, Error)]
#[error("{kind} `{dist}`")]
#[diagnostic()]
struct Diagnostic {
kind: DistErrorKind,
dist: Box<Dist>,
#[source]
cause: Arc<uv_distribution::Error>,
#[help]
help: Option<String>,
}
let help = help.or_else(|| {
@ -184,13 +198,8 @@ pub(crate) fn dist_error(
}
})
});
let report = miette::Report::new(Diagnostic {
kind,
dist,
cause,
help,
});
anstream::eprint!("{report:?}");
let err = Diagnostic { kind, dist, cause };
show_error(&err, help.as_deref());
}
/// 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>,
help: Option<String>,
) {
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
#[derive(Debug, Error)]
#[error("{kind} `{dist}`")]
#[diagnostic()]
struct Diagnostic {
kind: DistErrorKind,
dist: Box<RequestedDist>,
#[source]
cause: Arc<uv_distribution::Error>,
#[help]
help: Option<String>,
}
let help = help.or_else(|| {
@ -232,13 +238,8 @@ pub(crate) fn requested_dist_error(
}
})
});
let report = miette::Report::new(Diagnostic {
kind,
dist,
cause,
help,
});
anstream::eprint!("{report:?}");
let err = Diagnostic { kind, dist, cause };
show_error(&err, help.as_deref());
}
/// Render an error in fetching a package's dependencies.
@ -249,16 +250,13 @@ pub(crate) fn dependencies_error(
chain: &DerivationChain,
help: Option<String>,
) {
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
#[error("Failed to resolve dependencies for `{}` ({})", name.cyan(), format!("v{version}").cyan())]
#[diagnostic()]
#[derive(Debug, Error)]
#[error("Failed to resolve dependencies for `{name}` (v{version})")]
struct Diagnostic {
name: PackageName,
version: Version,
#[source]
cause: Box<uv_resolver::ResolveError>,
#[help]
help: Option<String>,
}
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(),
version: version.clone(),
cause: error,
help,
});
anstream::eprint!("{report:?}");
};
show_error(&err, help.as_deref());
}
/// Render a [`uv_resolver::NoSolutionError`].
pub(crate) fn no_solution(err: &uv_resolver::NoSolutionError) {
let report = miette::Report::msg(format!("{err}")).context(err.header());
anstream::eprint!("{report:?}");
let err = anyhow::Error::msg(format!("{err}")).context(err.header().to_string());
let _ = write_error_chain(
err.as_ref(),
Stderr::Enabled,
"error",
owo_colors::AnsiColors::Red,
);
}
/// Render a [`uv_resolver::NoSolutionError`] with dedicated context.
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));
anstream::eprint!("{report:?}");
let err = anyhow::Error::msg(format!("{err}"))
.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.
pub(crate) fn no_solution_hint(err: Box<uv_resolver::NoSolutionError>, help: String) {
#[derive(Debug, miette::Diagnostic, thiserror::Error)]
pub(crate) fn no_solution_hint(err: Box<uv_resolver::NoSolutionError>, help: &str) {
#[derive(Debug, Error)]
#[error("{header}")]
#[diagnostic()]
struct Error {
struct HeaderError {
/// The header to render in the error message.
header: uv_resolver::NoSolutionHeader,
/// The underlying error.
#[source]
err: Box<uv_resolver::NoSolutionError>,
/// The help message to display.
#[help]
help: String,
}
let header = err.header();
let report = miette::Report::new(Error { header, err, help });
anstream::eprint!("{report:?}");
let err = HeaderError { header, err };
show_error(&err, Some(help));
}
/// Render a [`uv_resolver::NoSolutionError`] with a help message.
pub(crate) fn native_tls_hint(err: uv_client::Error) {
#[derive(Debug, miette::Diagnostic)]
#[diagnostic()]
struct Error {
/// The underlying error.
err: uv_client::Error,
/// 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:?}");
/// Render an SSL error with a hint about native TLS.
pub(crate) fn native_tls_hint(err: &uv_client::Error) {
let hint = format!(
"Consider enabling use of system TLS certificates with the `{}` command-line flag",
"--native-tls".green()
);
show_error(err, Some(&hint));
}
/// Format a [`DerivationChain`] as a human-readable error message.

View File

@ -4,7 +4,6 @@ use std::path::Path;
use std::path::PathBuf;
use std::str::FromStr;
use anstream::eprint;
use anyhow::{Context, bail};
use console::Term;
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::{Target, ToolRequest};
use crate::commands::{diagnostics, project::environment::CachedEnvironment};
use crate::printer::Printer;
use crate::printer::{Printer, Stderr};
use crate::settings::ResolverInstallerSettings;
use crate::settings::ResolverSettings;
@ -342,9 +341,13 @@ pub(crate) async fn run(
}
Err(ProjectError::Requirements(err)) => {
let err = miette::Report::msg(format!("{err}"))
.context("Failed to resolve `--with` requirement");
eprint!("{err:?}");
let err = anyhow::Error::from(err).context("Failed to resolve `--with` requirement");
let _ = uv_warnings::write_error_chain(
err.as_ref(),
Stderr::Enabled,
"error",
owo_colors::AnsiColors::Red,
);
return Ok(ExitStatus::Failure);
}
Err(err) => return Err(err.into()),

View File

@ -421,21 +421,6 @@ async fn run(mut cli: Cli) -> Result<ExitStatus> {
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.
uv_configuration::RAYON_PARALLELISM.store(globals.concurrency.installs, Ordering::Relaxed);

View File

@ -148,10 +148,10 @@ fn add_package_native_auth() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
"
);

View File

@ -67,10 +67,10 @@ fn branching_urls_overlapping() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to resolve dependencies for `a` (v0.1.0)
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/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
error: Failed to resolve dependencies for `a` (v0.1.0)
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/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
"
);
@ -135,11 +135,12 @@ fn root_package_splits_but_transitive_conflict() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to resolve dependencies for `b2` (v0.1.0)
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/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`
error: Failed to resolve dependencies for `b2` (v0.1.0)
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/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl
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 -----
----- stderr -----
× Failed to resolve dependencies for `a` (v0.1.0)
Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
- 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
error: Failed to resolve dependencies for `a` (v0.1.0)
Caused by: Requirements contain conflicting URLs for package `iniconfig` in split `python_full_version == '3.11.*'`:
- 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
"
);

View File

@ -92,16 +92,16 @@ fn build_basic() -> Result<()> {
fs_err::remove_dir_all(project.child("dist"))?;
// Error if there's nothing to build.
uv_snapshot!(&filters, context.build(), @r###"
uv_snapshot!(&filters, context.build(), @r"
success: false
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× 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
"###);
error: Failed to build `[TEMP_DIR]/`
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.
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());
// 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
exit_code: 2
----- stdout -----
----- stderr -----
× Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
Pass `--wheel` explicitly to build a wheel from a source distribution
"###);
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
Caused by: Pass `--wheel` explicitly to build a wheel from a source distribution
");
// 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
exit_code: 2
----- stdout -----
----- stderr -----
× Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
Building an `--sdist` from a source distribution is not supported
"###);
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0.tar.gz`
Caused by: Building an `--sdist` from a source distribution is not supported
");
// 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###"
@ -394,15 +394,15 @@ fn build_wheel_from_sdist() -> Result<()> {
.assert(predicate::path::is_file());
// 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
exit_code: 2
----- stdout -----
----- stderr -----
× 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`.
"###);
error: Failed to build `[TEMP_DIR]/project/dist/project-0.1.0-py3-none-any.whl`
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(())
}
@ -454,7 +454,7 @@ fn build_fail() -> Result<()> {
)?;
// Build the specified path.
uv_snapshot!(&filters, context.build().arg("project"), @r###"
uv_snapshot!(&filters, context.build().arg("project"), @r#"
success: false
exit_code: 2
----- stdout -----
@ -473,11 +473,11 @@ fn build_fail() -> Result<()> {
File "<string>", line 2
from setuptools import setup
IndentationError: unexpected indent
× Failed to build `[TEMP_DIR]/project`
The build backend returned an error
Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
hint: This usually indicates a problem with the package or the build environment.
"###);
error: Failed to build `[TEMP_DIR]/project`
Caused by: The build backend returned an error
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.
"#);
Ok(())
}
@ -790,7 +790,7 @@ fn build_all_with_failure() -> Result<()> {
)?;
// 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
exit_code: 2
----- stdout -----
@ -803,13 +803,13 @@ fn build_all_with_failure() -> Result<()> {
[PKG] Building wheel from source distribution...
Successfully built dist/member_a-0.1.0.tar.gz
Successfully built dist/member_a-0.1.0-py3-none-any.whl
× Failed to build `member-b @ [TEMP_DIR]/project/packages/member_b`
The build backend returned an error
Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
hint: This usually indicates a problem with the package or the build environment.
error: Failed to build `member-b @ [TEMP_DIR]/project/packages/member_b`
Caused by: The build backend returned an error
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.
Successfully built dist/project-0.1.0.tar.gz
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
@ -869,18 +869,18 @@ fn build_constraints() -> Result<()> {
.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
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/project`
Failed to resolve requirements from `build-system.requires`
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.
"###);
error: Failed to build `[TEMP_DIR]/project`
Caused by: Failed to resolve requirements from `build-system.requires`
Caused by: No solution found when resolving: `hatchling>=1.0`
Caused by: Because you require hatchling>=1.0 and hatchling==0.1.0, we can conclude that your requirements are unsatisfiable.
");
project
.child("dist")
@ -955,25 +955,25 @@ fn build_sha() -> Result<()> {
# 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
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/project`
Failed to install requirements from `build-system.requires`
Failed to download `hatchling==1.22.4`
Hash mismatch for `hatchling==1.22.4`
error: Failed to build `[TEMP_DIR]/project`
Caused by: Failed to install requirements from `build-system.requires`
Caused by: Failed to download `hatchling==1.22.4`
Caused by: Hash mismatch for `hatchling==1.22.4`
Expected:
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
Expected:
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
Computed:
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
"###);
Computed:
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
");
project
.child("dist")
@ -987,25 +987,25 @@ fn build_sha() -> Result<()> {
fs_err::remove_dir_all(project.child("dist"))?;
// 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
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/project`
Failed to install requirements from `build-system.requires`
Failed to download `hatchling==1.22.4`
Hash mismatch for `hatchling==1.22.4`
error: Failed to build `[TEMP_DIR]/project`
Caused by: Failed to install requirements from `build-system.requires`
Caused by: Failed to download `hatchling==1.22.4`
Caused by: Hash mismatch for `hatchling==1.22.4`
Expected:
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
Expected:
sha256:a248cb506794bececcddeddb1678bc722f9cfcacf02f98f7c0af6b9ed893caf2
sha256:e16da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
Computed:
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
"###);
Computed:
sha256:f56da5bfc396af7b29daa3164851dd04991c994083f56cb054b5003675caecdc
");
project
.child("dist")
@ -1022,18 +1022,18 @@ fn build_sha() -> Result<()> {
let constraints = project.child("constraints.txt");
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
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/project`
Failed to resolve requirements from `build-system.requires`
No solution found when resolving: `hatchling`
In `--require-hashes` mode, all requirements must be pinned upfront with `==`, but found: `hatchling`
"###);
error: Failed to build `[TEMP_DIR]/project`
Caused by: Failed to resolve requirements from `build-system.requires`
Caused by: No solution found when resolving: `hatchling`
Caused by: In `--require-hashes` mode, all requirements must be pinned upfront with `==`, but found: `hatchling`
");
project
.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.
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
exit_code: 2
----- stdout -----
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/project`
The build backend returned an error
Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
hint: This usually indicates a problem with the package or the build environment.
"###);
error: Failed to build `[TEMP_DIR]/project`
Caused by: The build backend returned an error
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.
");
Ok(())
}
@ -1787,15 +1787,15 @@ fn build_list_files_errors() -> Result<()> {
.arg(&anyio_local)
.arg("--out-dir")
.arg(context.temp_dir.join("output2"))
.arg("--list"), @r###"
.arg("--list"), @r"
success: false
exit_code: 2
----- stdout -----
----- stderr -----
× Failed to build `[WORKSPACE]/test/packages/anyio_local`
Can only use `--list` with the uv backend
"###);
error: Failed to build `[WORKSPACE]/test/packages/anyio_local`
Caused by: Can only use `--list` with the uv backend
");
Ok(())
}
@ -1820,16 +1820,16 @@ fn build_version_mismatch() -> Result<()> {
.arg(wrong_source_dist.path())
.arg("--wheel")
.arg("--out-dir")
.arg(context.temp_dir.path()), @r###"
.arg(context.temp_dir.path()), @r"
success: false
exit_code: 2
----- stdout -----
----- stderr -----
Building wheel from source distribution...
× 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
"###);
error: Failed to build `[TEMP_DIR]/anyio-1.2.3.tar.gz`
Caused by: The source distribution declares version 1.2.3, but the wheel declares version 4.3.0+foo
");
Ok(())
}
@ -2101,8 +2101,8 @@ fn force_pep517() -> Result<()> {
----- stderr -----
Building source distribution (uv build backend)...
× Failed to build `[TEMP_DIR]/`
Expected a Python module at: src/does_not_exist/__init__.py
error: Failed to build `[TEMP_DIR]/`
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"
@ -2113,10 +2113,10 @@ fn force_pep517() -> Result<()> {
----- stderr -----
Building source distribution...
Error: Missing source directory at: `src`
× Failed to build `[TEMP_DIR]/`
The build backend returned an error
Call to `uv_build.build_sdist` failed (exit status: 1)
hint: This usually indicates a problem with the package or the build environment.
error: Failed to build `[TEMP_DIR]/`
Caused by: The build backend returned an error
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.
");
Ok(())
@ -2171,11 +2171,12 @@ fn venv_included_in_sdist() -> Result<()> {
----- stderr -----
Building source distribution...
× Failed to build `[TEMP_DIR]/`
Invalid tar file
failed to unpack `[CACHE_DIR]/sdists-v9/[TMP]/python`
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.
error: Failed to build `[TEMP_DIR]/`
Caused by: Invalid tar file
Caused by: failed to unpack `[CACHE_DIR]/sdists-v9/[TMP]/python`
Caused by: symlink path `[PYTHON-3.12]` is absolute, but external symlinks are not allowed
hint: This file seems to be part of a virtual environment. Virtual environments must be excluded from source distributions.
");
Ok(())

View File

@ -1003,8 +1003,8 @@ fn error_on_relative_module_root_outside_project_root() -> Result<()> {
----- stderr -----
Building source distribution (uv build backend)...
× Failed to build `[TEMP_DIR]/`
Module root must be inside the project: ..
error: Failed to build `[TEMP_DIR]/`
Caused by: Module root must be inside the project: ..
");
uv_snapshot!(context.filters(), context.build().arg("--wheel"), @r"
@ -1014,8 +1014,8 @@ fn error_on_relative_module_root_outside_project_root() -> Result<()> {
----- stderr -----
Building wheel (uv build backend)...
× Failed to build `[TEMP_DIR]/`
Module root must be inside the project: ..
error: Failed to build `[TEMP_DIR]/`
Caused by: Module root must be inside the project: ..
");
Ok(())
@ -1058,8 +1058,8 @@ fn error_on_relative_data_dir_outside_project_root() -> Result<()> {
----- stderr -----
Building source distribution (uv build backend)...
× Failed to build `[TEMP_DIR]/project`
The path for the data directory headers must be inside the project: ../header
error: Failed to build `[TEMP_DIR]/project`
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"
@ -1069,8 +1069,8 @@ fn error_on_relative_data_dir_outside_project_root() -> Result<()> {
----- stderr -----
Building wheel (uv build backend)...
× Failed to build `[TEMP_DIR]/project`
The path for the data directory headers must be inside the project: ../header
error: Failed to build `[TEMP_DIR]/project`
Caused by: The path for the data directory headers must be inside the project: ../header
");
Ok(())
@ -1102,8 +1102,8 @@ fn venv_in_source_tree() {
----- stderr -----
Building source distribution (uv build backend)...
× 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
error: Failed to build `[TEMP_DIR]/`
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"
@ -1113,8 +1113,8 @@ fn venv_in_source_tree() {
----- stderr -----
Building wheel (uv build backend)...
× 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
error: Failed to build `[TEMP_DIR]/`
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 -----
Building source distribution (uv build backend)...
× Failed to build `[TEMP_DIR]/child`
Invalid metadata format in: child/pyproject.toml
TOML parse error at line 2, column 8
|
2 | name = 1
| ^
invalid type: integer `1`, expected a string
error: Failed to build `[TEMP_DIR]/child`
Caused by: Invalid metadata format in: child/pyproject.toml
Caused by: TOML parse error at line 2, column 8
|
2 | name = 1
| ^
invalid type: integer `1`, expected a string
");
Ok(())

View File

@ -317,12 +317,12 @@ fn prune_unzipped() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())

View File

@ -4473,16 +4473,17 @@ fn add_error() -> Result<()> {
dependencies = []
"#})?;
uv_snapshot!(context.filters(), context.add().arg("xyz"), @r###"
uv_snapshot!(context.filters(), context.add().arg("xyz"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"###);
error: No solution found when resolving dependencies:
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.
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###"
success: true
@ -8570,25 +8571,26 @@ fn fail_to_add_revert_project() -> Result<()> {
----- stderr -----
Resolved 3 packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
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: This usually indicates a problem with the package or the build environment.
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"))?;
@ -8672,25 +8674,26 @@ fn fail_to_edit_revert_project() -> Result<()> {
----- stderr -----
Resolved 3 packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
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: This usually indicates a problem with the package or the build environment.
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"))?;
@ -8782,28 +8785,29 @@ fn fail_to_add_revert_workspace_root() -> Result<()> {
----- stderr -----
Added `broken` to workspace members
Resolved 3 packages in [TIME]
× Failed to build `broken @ file://[TEMP_DIR]/broken`
The build backend returned an error
Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
error: Failed to build `broken @ file://[TEMP_DIR]/broken`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
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: This usually indicates a problem with the package or the build environment.
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"))?;
@ -8897,28 +8901,29 @@ fn fail_to_add_revert_workspace_member() -> Result<()> {
----- stderr -----
Added `broken` to workspace members
Resolved 4 packages in [TIME]
× Failed to build `broken @ file://[TEMP_DIR]/broken`
The build backend returned an error
Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
error: Failed to build `broken @ file://[TEMP_DIR]/broken`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta.build_editable` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 1, in <module>
ZeroDivisionError: division by zero
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: This usually indicates a problem with the package or the build environment.
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"))?;
@ -9622,18 +9627,19 @@ fn add_shadowed_name() -> Result<()> {
"#})?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"###);
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: 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.
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 -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of dagster-webserver are available:
dagster-webserver<=1.6.11
dagster-webserver==1.6.12
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 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.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of dagster-webserver are available:
dagster-webserver<=1.6.11
dagster-webserver==1.6.12
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 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.
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: 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: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
");
Ok(())
@ -9747,11 +9754,12 @@ fn add_warn_index_url() -> Result<()> {
----- stderr -----
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:
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.
error: No solution found when resolving dependencies:
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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
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: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
");
Ok(())
@ -12951,18 +12959,19 @@ fn add_with_build_constraints() -> Result<()> {
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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"###);
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
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");
pyproject_toml.write_str(indoc! {r#"
@ -13115,11 +13124,12 @@ fn add_full_url_in_keyring() -> Result<()> {
----- stderr -----
Keyring request for public@https://pypi-proxy.fly.dev/basic-auth/simple
Keyring request for public@pypi-proxy.fly.dev
× 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.
error: No solution found when resolving dependencies:
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).
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
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: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"
);
Ok(())
@ -13150,11 +13160,12 @@ fn add_stop_index_search_early_on_auth_failure() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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).
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
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: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"
);
Ok(())
@ -13231,11 +13242,12 @@ fn add_empty_ignore_error_codes() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
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: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"
);
Ok(())
@ -13270,9 +13282,10 @@ fn add_missing_package_on_pytorch() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
error: No solution found when resolving dependencies:
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.
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"
);
Ok(())
@ -13585,11 +13598,12 @@ fn add_auth_policy_never_with_env_var_credentials() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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).
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
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: 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 -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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).
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
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 -----
Keyring request for public@http://[LOCALHOST]/
Keyring request for public@[LOCALHOST]
× 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.
error: No solution found when resolving dependencies:
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).
help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
hint: An index URL (http://[LOCALHOST]/) could not be queried due to a lack of valid authentication credentials (401 Unauthorized).
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
"
);

View File

@ -969,16 +969,16 @@ fn requirements_txt_frozen() -> Result<()> {
// Remove the child `pyproject.toml`.
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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
Failed to parse entry: `child`
`child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `child`
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###"
success: true
@ -1355,18 +1355,18 @@ fn requirements_txt_ssh_git_username() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to download and build `uv-private-pypackage @ git+ssh://git@github.com/astral-test/uv-private-pypackage.git@d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
Git operation failed
failed to clone into: [PATH]
failed to fetch branch, tag, or commit `d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
process didn't exit successfully: [GIT_COMMAND_ERROR]
--- stderr
Load key "[TEMP_DIR]/fake_deploy_key": [ERROR]
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
error: Failed to download and build `uv-private-pypackage @ git+ssh://git@github.com/astral-test/uv-private-pypackage.git@d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
Caused by: Git operation failed
Caused by: failed to clone into: [PATH]
Caused by: failed to fetch branch, tag, or commit `d780faf0ac91257d4d5a4f0c5a0e4509608c0071`
Caused by: process didn't exit successfully: [GIT_COMMAND_ERROR]
--- stderr
Load key "[TEMP_DIR]/fake_deploy_key": [ERROR]
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Please make sure you have the correct access rights
and the repository exists.
"#);
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`.
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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
Failed to parse entry: `child`
`child` references a workspace in `tool.uv.sources` (e.g., `child = { workspace = true }`), but is not a workspace member
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `child`
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#"
success: true

View File

@ -2158,11 +2158,12 @@ fn lock_project_with_build_constraints() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
help: `requests` (v1.2.0) was included because `project` (v0.1.0) depends on `requests==1.2`
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
hint: `requests` (v1.2.0) was included because `project` (v0.1.0) depends on `requests==1.2`
");
Ok(())
@ -2935,9 +2936,9 @@ fn lock_conflicting_project_basic1() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project requires your project and project:foo, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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 now with the same group configuration, we tell uv about the
@ -3338,9 +3339,9 @@ fn lock_conflicting_workspace_members_depends_direct() -> Result<()> {
----- stderr -----
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):
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.
error: No solution found when resolving dependencies for split (included: example; excluded: subexample):
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.
");
Ok(())
@ -3635,10 +3636,10 @@ fn lock_conflicting_workspace_members_depends_transitive() -> Result<()> {
----- stderr -----
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):
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 your workspace requires example and indirection, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (included: example; excluded: subexample):
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 your workspace requires example and indirection, we can conclude that your workspace's requirements are unsatisfiable.
");
Ok(())
@ -4081,9 +4082,9 @@ fn lock_conflicting_mixed() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[project2] and project:project1, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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 now with the same extra/group configuration, we tell uv
@ -5217,24 +5218,24 @@ fn lock_requires_python() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because only the following versions of pygls are available:
pygls<=1.1.0
pygls==1.1.1
pygls==1.1.2
pygls==1.2.0
pygls==1.2.1
pygls==1.3.0
we can conclude that pygls>=1.1.0,<1.3.0 cannot be used. (1)
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.7' and python_full_version < '3.7.9'):
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:
pygls<=1.1.0
pygls==1.1.1
pygls==1.1.2
pygls==1.2.0
pygls==1.2.1
pygls==1.3.0
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.
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.
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 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).
@ -8227,16 +8228,17 @@ fn lock_invalid_hash() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to download `idna==3.6`
Hash mismatch for `idna==3.6`
error: Failed to download `idna==3.6`
Caused by: Hash mismatch for `idna==3.6`
Expected:
sha256:aecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca
sha256:d05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
Expected:
sha256:aecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca
sha256:d05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
Computed:
sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
help: `idna` (v3.6) was included because `project` (v0.1.0) depends on `anyio` (v3.7.0) which depends on `idna`
Computed:
sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
hint: `idna` (v3.6) was included because `project` (v0.1.0) depends on `anyio` (v3.7.0) which depends on `idna`
");
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
}
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
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 }`).
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `child`
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(())
}
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
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 }`)
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `child`
Caused by: `child` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `child = { workspace = true }`)
");
Ok(())
}
@ -9145,9 +9147,9 @@ fn lock_index_workspace_member() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your workspace requires child, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
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
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
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`
"###);
error: Failed to download `iniconfig==2.0.0`
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`
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)
hint: `iniconfig` (v2.0.0) was included because `foo` (v0.1.0) depends on `iniconfig`
");
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
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`
"###);
error: Failed to download `iniconfig==2.0.0`
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`
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)
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.
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.
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
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`
"###);
error: Failed to download `iniconfig==2.0.0`
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`
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)
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.
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 -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
@ -12663,10 +12668,10 @@ fn lock_editable() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to resolve dependencies for `workspace` (v0.1.0)
Requirements contain conflicting URLs for package `library` in all marker environments:
- file://[TEMP_DIR]/library
- file://[TEMP_DIR]/library (editable)
error: Failed to resolve dependencies for `workspace` (v0.1.0)
Caused by: Requirements contain conflicting URLs for package `library` in all marker environments:
- file://[TEMP_DIR]/library
- file://[TEMP_DIR]/library (editable)
");
Ok(())
@ -13309,8 +13314,8 @@ fn unconditional_overlapping_marker_disjoint_version_constraints() -> Result<()>
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -14081,18 +14086,18 @@ fn lock_add_member_with_build_system() -> Result<()> {
");
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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`.
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.
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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`.
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 Searching for a compatible version of project @ file://[TEMP_DIR]/ (<0.1.0 | >0.1.0)
DEBUG No compatible version found for: project
× 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.
error: No solution found when resolving dependencies:
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`
"#);
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###);
error: No solution found when resolving dependencies:
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();
@ -18272,16 +18277,16 @@ fn lock_named_index_cli() -> Result<()> {
)?;
// The package references a non-existent index.
uv_snapshot!(context.filters(), context.lock(), @r###"
uv_snapshot!(context.filters(), context.lock(), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
Failed to parse entry: `jinja2`
Package `jinja2` references an undeclared index: `pytorch`
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `jinja2`
Caused by: Package `jinja2` references an undeclared index: `pytorch`
");
// 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###"
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× Failed to build `b @ file://[TEMP_DIR]/b`
Failed to parse metadata from built wheel
TOML parse error at line 2, column 10
|
2 | [project.urls]
| ^^^^^^^
`pyproject.toml` is using the `[project]` table, but the required `project.name` field is not set
"###);
error: Failed to build `b @ file://[TEMP_DIR]/b`
Caused by: Failed to parse metadata from built wheel
Caused by: TOML parse error at line 2, column 10
|
2 | [project.urls]
| ^^^^^^^
`pyproject.toml` is using the `[project]` table, but the required `project.name` field is not set
");
Ok(())
}
@ -21196,10 +21201,10 @@ fn lock_keyring_explicit_always() -> Result<()> {
----- stderr -----
Keyring request for https://pypi-proxy.fly.dev/basic-auth/simple
Keyring request for pypi-proxy.fly.dev
× 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.
error: No solution found when resolving dependencies:
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
@ -22392,10 +22397,10 @@ fn lock_multiple_sources_index_overlapping_extras() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to resolve dependencies for `project` (v0.1.0)
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/cu124
error: Failed to resolve dependencies for `project` (v0.1.0)
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/cu124
");
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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"] }`).
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
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(())
}
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× 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"] }`).
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
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(())
}
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× 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"] }`).
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
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(())
}
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× 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"] }`).
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
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(())
}
@ -25781,30 +25786,31 @@ fn lock_derivation_chain_prod() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref==0.1.2`
"#);
Ok(())
@ -25838,30 +25844,31 @@ fn lock_derivation_chain_extra() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref>=0.1`
"#);
Ok(())
@ -25897,30 +25904,31 @@ fn lock_derivation_chain_group() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
"#);
Ok(())
@ -25967,30 +25975,31 @@ fn lock_derivation_chain_extended() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
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(())
@ -26017,17 +26026,18 @@ fn mismatched_name_self_editable() -> Result<()> {
)?;
// Running `uv sync` should generate a lockfile.
uv_snapshot!(context.filters(), context.sync(), @r###"
uv_snapshot!(context.filters(), context.sync(), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 2 packages in [TIME]
× Failed to build `foo @ file://[TEMP_DIR]/`
Package metadata name `project` does not match given name `foo`
help: `foo` was included because `project` (v0.1.0) depends on `foo`
"###);
error: Failed to build `foo @ file://[TEMP_DIR]/`
Caused by: Package metadata name `project` does not match given name `foo`
hint: `foo` was included because `project` (v0.1.0) depends on `foo`
");
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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `dummy @ file://[TEMP_DIR]/`
Building source distributions for `dummy` is disabled
"###);
error: Failed to build `dummy @ file://[TEMP_DIR]/`
Caused by: Building source distributions for `dummy` is disabled
");
Ok(())
}
@ -26626,10 +26636,10 @@ fn lock_self_incompatible() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -26763,10 +26773,10 @@ fn lock_self_extra_to_same_extra_incompatible() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -26797,10 +26807,10 @@ fn lock_self_extra_to_other_extra_incompatible() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -26934,10 +26944,10 @@ fn lock_self_extra_incompatible() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -27064,10 +27074,10 @@ fn lock_self_marker_incompatible() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `project @ file://[TEMP_DIR]/`
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" }`)
"###);
error: Failed to build `project @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `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(())
}
@ -30236,11 +30246,11 @@ fn lock_conflict_for_disjoint_python_version() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project depends on pandas==1.5.3, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.11'):
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.
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.
@ -30458,10 +30468,10 @@ fn lock_conflict_for_disjoint_platform() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies for split (markers: sys_platform == 'exotic'):
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.
@ -31063,8 +31073,8 @@ fn lock_prefix_match() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -32181,10 +32191,10 @@ fn collapsed_error_with_marker_packages() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies for split (markers: python_full_version < '3.14' and sys_platform == 'other'):
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(())
@ -32242,9 +32252,9 @@ fn lock_unsupported_wheel_url_requires_python() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
Ok(())
@ -32274,9 +32284,9 @@ fn lock_unsupported_wheel_url_required_platform() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project depends on numpy, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
Ok(())

View File

@ -38,16 +38,16 @@ fn extra_basic() -> Result<()> {
"#,
)?;
uv_snapshot!(context.filters(), context.lock(), @r###"
uv_snapshot!(context.filters(), context.lock(), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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 now with the same extra configuration, we tell uv about
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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 now with the same extra configuration, we tell uv about
// the conflicting extras, which forces it to resolve each in
@ -506,16 +506,16 @@ fn extra_multiple_not_conflicting2() -> Result<()> {
)?;
// Fails, as expected.
uv_snapshot!(context.filters(), context.lock(), @r###"
uv_snapshot!(context.filters(), context.lock(), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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.
");
// If we define extra1/extra2 as conflicting and project3/project4
// as conflicting, that still isn't enough! That's because extra1
@ -552,9 +552,9 @@ fn extra_multiple_not_conflicting2() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra2] and project[project3], we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (included: project[extra2], project[project3]; excluded: project[extra1], project[project4]):
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.
");
// 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"]
"#,
)?;
uv_snapshot!(context.filters(), context.lock(), @r###"
uv_snapshot!(context.filters(), context.lock(), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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.
");
// OK, responding to the error, we declare our anyio extras
// as conflicting. But now we should see sortedcontainers as
@ -709,9 +709,9 @@ fn extra_multiple_independent() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (included: project[project4]; excluded: project[project3]):
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.
");
// 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
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project[extra2], we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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.
");
Ok(())
}
@ -1557,13 +1557,13 @@ fn extra_nested_across_workspace() -> Result<()> {
----- stdout -----
----- stderr -----
× 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)
error: No solution found when resolving dependencies for split (included: dummy[extra2], dummysub[extra1]; excluded: dummy[extra1], dummysub[extra2]):
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.
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 your workspace requires dummy[extra2] and dummysub[extra1], we can conclude that your workspace's requirements are unsatisfiable.
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 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.
");
// Now let's write out the full set of conflicts, taking
@ -1696,9 +1696,9 @@ fn extra_depends_on_conflicting_extra() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because your project requires example[foo], we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (included: example[foo]; excluded: example[bar]):
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.
");
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project:group1 and project:group2, we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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 now with the same group configuration, we tell uv about
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because your project requires project[extra1] and project:group1, we can conclude that your project's requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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 now with the same extra/group configuration, we tell uv
// about the conflicting groups, which forces it to resolve each in

View File

@ -1012,8 +1012,8 @@ fn lock_exclude_newer_relative_values() -> Result<()> {
----- stderr -----
Ignoring existing lockfile due to removal of exclude newer span
× 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.
error: No solution found when resolving dependencies:
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

View File

@ -777,16 +777,16 @@ fn conflict_in_fork() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
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 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'}>=2
and your project depends on package-a{sys_platform == 'os2'}<2, we can conclude that your project's requirements are unsatisfiable.
error: No solution found when resolving dependencies for split (markers: sys_platform == 'os2'):
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-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:
package-a{sys_platform == 'os2'}==1.0.0
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.
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 -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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 -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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 -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies:
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.
"
);
@ -3219,9 +3219,9 @@ fn fork_non_local_fork_marker_transitive() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies:
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.
"
);

View File

@ -171,10 +171,10 @@ async fn direct_url_http_500() {
----- stdout -----
----- stderr -----
× Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
Request failed after 3 retries
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)
error: Failed to download `tqdm @ [SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl`
Caused by: Request failed after 3 retries
Caused by: Failed to fetch: `[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 -----
----- stderr -----
× 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`
Request failed after 3 retries
error sending request for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
client error (SendRequest)
connection closed before message completed
error: Failed to download `tqdm @ [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`
Caused by: Request failed after 3 retries
Caused by: error sending request for url ([SERVER]/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl)
Caused by: client error (SendRequest)
Caused by: connection closed before message completed
");
}
@ -415,9 +415,9 @@ async fn rfc9457_problem_details_license_violation() {
----- stdout -----
----- stderr -----
× 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`
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)
error: Failed to download `tqdm @ [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`
Caused by: Server message: License Compliance Issue, This package version has a license that violates organizational policy.
Caused by: HTTP status client error (403 Forbidden) for url ([SERVER]/packages/tqdm-4.67.1-py3-none-any.whl)
");
}

View File

@ -1970,18 +1970,18 @@ fn compile_python_37() -> Result<()> {
uv_snapshot!(filters, context.pip_compile()
.arg("requirements.in")
.arg("--python-version")
.arg("3.7"), @r###"
.arg("3.7"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because you require black==23.10.1, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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(())
}
@ -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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
"###
error: Failed to download and build `dask @ git+https://github.com/pallets/flask.git@3.0.0`
Caused by: Package metadata name `flask` does not match given name `dask`
"
);
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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because you require flask==3.0.0, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -3080,15 +3080,15 @@ fn requirement_constraint_override_url() -> Result<()> {
.arg("--constraint")
.arg("constraints.txt")
.arg("--override")
.arg("overrides.txt"), @r###"
.arg("overrides.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -3302,15 +3302,15 @@ dependencies = ["anyio==3.7.0", "anyio==4.0.0"]
)?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("pyproject.toml"), @r###"
.arg("pyproject.toml"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -3334,15 +3334,15 @@ dependencies = ["anyio==300.1.4"]
)?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("pyproject.toml"), @r###"
.arg("pyproject.toml"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -3958,13 +3958,13 @@ fn compile_yanked_version_indirect() -> Result<()> {
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of attrs are available:
attrs<=20.3.0
attrs==21.1.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 because you require attrs>20.3.0,<21.2.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of attrs are available:
attrs<=20.3.0
attrs==21.1.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 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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -6777,17 +6777,17 @@ fn offline_registry() -> Result<()> {
// Resolve with `--offline` with an empty cache.
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
@ -6908,17 +6908,17 @@ fn offline_find_links() -> Result<()> {
.arg("requirements.in")
.arg("--find-links")
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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`.
@ -6927,17 +6927,17 @@ fn offline_find_links() -> Result<()> {
.arg("--find-links")
.arg("https://astral-sh.github.io/pytorch-mirror/whl/torch_stable.html")
.arg("--no-index")
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -6953,15 +6953,15 @@ fn offline_direct_url() -> Result<()> {
// Resolve with `--offline` with an empty cache.
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
"###
error: Failed to download `iniconfig @ 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.
@ -7013,20 +7013,20 @@ fn invalid_metadata_requires_python() -> Result<()> {
.arg("requirements.in")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("test").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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:
Failed to parse version: Unexpected end of version specifier, expected operator. Did you mean `==12`?:
12
^^
"###
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`?:
12
^^
"
);
Ok(())
@ -7044,18 +7044,18 @@ fn invalid_metadata_multiple_dist_info() -> Result<()> {
.arg("requirements.in")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("test").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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:
Multiple .dist-info directories found: validation-2.0.0, validation-3.0.0
"###
hint: The structure of `validation` (v3.0.0) was invalid:
Multiple .dist-info directories found: validation-2.0.0, validation-3.0.0
"
);
Ok(())
@ -7313,15 +7313,15 @@ fn compile_constraints_incompatible_url() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--constraint")
.arg("constraints.txt"), @r###"
.arg("constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because only anyio>=4 is available and you require anyio<4, we can conclude that your requirements are unsatisfiable.
"
);
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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -10087,15 +10087,15 @@ fn compile_constraints_incompatible_version() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--constraint")
.arg("constraints.txt"), @r###"
.arg("constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -10115,15 +10115,15 @@ fn conflicting_url_markers() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--constraint")
.arg("constraints.txt"), @r###"
.arg("constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because you require filelock==1.0.0 and filelock==3.8.0, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -10269,15 +10269,15 @@ fn override_with_incompatible_constraint() -> Result<()> {
.arg("--constraint")
.arg("constraints.txt")
.arg("--override")
.arg("overrides.txt"), @r###"
.arg("overrides.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because you require anyio>=3.0.0 and anyio<3.0.0, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -10926,16 +10926,16 @@ requires-python = ">=3.13"
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -10978,16 +10978,16 @@ requires-python = ">=3.13"
uv_snapshot!(filters, context.pip_compile()
.arg("requirements.in")
.arg("--python-version=3.11"), @r###"
.arg("--python-version=3.11"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
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")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
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)
"###
error: Failed to download `iniconfig @ 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`
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(())
@ -11166,16 +11166,16 @@ requires-python = ">=3.13"
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -12287,17 +12287,17 @@ requires-python = ">3.8"
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--override")
.arg("overrides.txt"), @r###"
.arg("overrides.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
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.
"###
error: No solution found when resolving dependencies:
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 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.
@ -12460,17 +12460,17 @@ fn compile_index_url_first_match_base() -> Result<()> {
.arg("--extra-index-url")
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
.arg("requirements.in")
.arg("--no-deps"), @r###"
.arg("--no-deps"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -12494,17 +12494,17 @@ fn compile_index_url_first_match_marker() -> Result<()> {
.arg("--extra-index-url")
.arg("https://astral-sh.github.io/pytorch-mirror/whl/cpu")
.arg("requirements.in")
.arg("--no-deps"), @r###"
.arg("--no-deps"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -12527,15 +12527,15 @@ fn compile_index_url_first_match_all_versions() -> Result<()> {
.arg("--extra-index-url")
.arg("https://test.pypi.org/simple")
.arg("requirements.in")
.arg("--no-deps"), @r###"
.arg("--no-deps"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because there are no versions of pandas and you require pandas, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -12912,15 +12912,15 @@ fn no_version_for_direct_dependency() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
// Must error before we make any network requests
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
you require pypyp
"###
error: No solution found when resolving dependencies:
Caused by: you require pypyp
"
);
Ok(())
@ -13243,20 +13243,20 @@ fn git_source_missing_tag() -> Result<()> {
"#})?;
uv_snapshot!(filters, context.pip_compile()
.arg("pyproject.toml"), @r###"
.arg("pyproject.toml"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `uv-public-pypackage @ git+https://github.com/astral-test/uv-public-pypackage@missing`
Git operation failed
failed to clone into: [CACHE_DIR]/git-v0/db/8dab139913c4b566
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)
--- stderr
fatal: couldn't find remote ref refs/tags/missing
"###);
error: Failed to download and build `uv-public-pypackage @ git+https://github.com/astral-test/uv-public-pypackage@missing`
Caused by: Git operation failed
Caused by: failed to clone into: [CACHE_DIR]/git-v0/db/8dab139913c4b566
Caused by: failed to fetch tag `missing`
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
fatal: couldn't find remote ref refs/tags/missing
");
Ok(())
}
@ -13548,18 +13548,18 @@ fn no_binary_only_binary() -> Result<()> {
.pip_compile()
.arg("requirements.in")
.arg("--only-binary")
.arg(":all:"), @r###"
.arg(":all:"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because you require source-distribution<=0.0.1, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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
@ -13633,17 +13633,17 @@ fn incompatible_build_constraint() -> Result<()> {
uv_snapshot!(context.pip_compile()
.arg("requirements.txt")
.arg("--build-constraint")
.arg("build_constraints.txt"), @r###"
.arg("build_constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -13703,17 +13703,17 @@ build-constraint-dependencies = [
)?;
uv_snapshot!(context.pip_compile()
.arg("pyproject.toml"), @r###"
.arg("pyproject.toml"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -13791,17 +13791,17 @@ build-constraint-dependencies = [
uv_snapshot!(context.pip_compile()
.arg("pyproject.toml")
.arg("--build-constraint")
.arg("build_constraints.txt"), @r###"
.arg("build_constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
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
@ -13830,17 +13830,17 @@ build-constraint-dependencies = [
uv_snapshot!(context.pip_compile()
.arg("pyproject.toml")
.arg("--build-constraint")
.arg("build_constraints.txt"), @r###"
.arg("build_constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools==1 and setuptools>=40, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -14122,9 +14122,9 @@ fn compile_enumerate_no_versions() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because you require rooster-blue, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
Ok(())
@ -14569,12 +14569,12 @@ fn unsupported_requires_python_dynamic_metadata() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies for split (markers: python_full_version >= '3.10'):
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(())
@ -14834,37 +14834,38 @@ fn compile_derivation_chain() -> Result<()> {
.chain([(r"/.*/src", "/[TMP]/src")])
.collect::<Vec<_>>();
uv_snapshot!(filters, context.pip_compile().arg("pyproject.toml"), @r###"
uv_snapshot!(filters, context.pip_compile().arg("pyproject.toml"), @r#"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `child` (v0.1.0) depends on `wsgiref`
"#
);
Ok(())
@ -14887,30 +14888,30 @@ fn invalid_platform() -> Result<()> {
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of open3d are available:
open3d==0.8.0.0
open3d==0.9.0.0
open3d==0.10.0.0
open3d==0.10.0.1
open3d==0.11.0
open3d==0.11.1
open3d==0.11.2
open3d==0.12.0
open3d==0.13.0
open3d==0.14.1
open3d==0.15.1
open3d==0.15.2
open3d==0.16.0
open3d==0.16.1
open3d==0.17.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 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.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of open3d are available:
open3d==0.8.0.0
open3d==0.9.0.0
open3d==0.10.0.0
open3d==0.10.0.1
open3d==0.11.0
open3d==0.11.1
open3d==0.11.2
open3d==0.12.0
open3d==0.13.0
open3d==0.14.1
open3d==0.15.1
open3d==0.15.2
open3d==0.16.0
open3d==0.16.1
open3d==0.17.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 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(())
@ -15018,10 +15019,10 @@ fn universal_conflicting_override_urls() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to resolve dependencies for `anyio` (v4.3.0)
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/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
error: Failed to resolve dependencies for `anyio` (v4.3.0)
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/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
"
);
@ -17606,9 +17607,9 @@ fn incompatible_cuda() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because you require torch==2.6.0+cu126 and torchvision==0.16.0+cu121, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
Ok(())
@ -17865,8 +17866,8 @@ fn credentials_from_subdirectory() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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

View File

@ -74,11 +74,11 @@ fn compatible_python_incompatible_override() -> Result<()> {
----- stderr -----
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:
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.
error: No solution found when resolving dependencies:
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.
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 -----
----- stderr -----
× 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.
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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

View File

@ -51,8 +51,8 @@ fn requires_exact_version_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -87,8 +87,8 @@ fn requires_greater_version_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -124,8 +124,8 @@ fn requires_less_version_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -157,8 +157,8 @@ fn requires_package_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -194,9 +194,9 @@ fn transitive_requires_package_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
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 -----
----- stderr -----
× 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:
package-a==1.0.0
package-a>=2.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)
error: No solution found when resolving dependencies:
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>=2.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)
Because only the following versions of package-c are available:
package-c==1.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 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>=3.0.0
Because only the following versions of package-c are available:
package-c==1.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 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>=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 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>=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 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>=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.
@ -384,27 +384,27 @@ fn dependency_excludes_range_of_compatible_versions() {
----- stdout -----
----- stderr -----
× 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:
package-a==1.0.0
package-a>=2.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)
error: No solution found when resolving dependencies:
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>=2.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)
Because only the following versions of package-c are available:
package-c==1.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 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>=3.0.0
Because only the following versions of package-c are available:
package-c==1.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 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>=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 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>=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 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>=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.
@ -457,23 +457,23 @@ fn excluded_only_compatible_version() {
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of package-a are available:
package-a==1.0.0
package-a==2.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 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
depend on one of:
package-b==1.0.0
package-b==3.0.0
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of package-a are available:
package-a==1.0.0
package-a==2.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 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
depend on one of:
package-b==1.0.0
package-b==3.0.0
And because you require one of:
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 because you require one of:
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.
");
// 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 -----
----- stderr -----
× No solution found when resolving dependencies:
Because only package-a==1.0.0 is available and you require one of:
package-a<1.0.0
package-a>1.0.0
we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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
we can conclude that your requirements are unsatisfiable.
");
// Only `a==1.0.0` is available but the user excluded it.
@ -724,10 +724,10 @@ fn extra_incompatible_with_extra() {
----- stdout -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies:
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 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.
@ -772,9 +772,9 @@ fn extra_incompatible_with_root() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a[extra] and package-b==2.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
// 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 -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -991,9 +991,9 @@ fn transitive_incompatible_versions() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("transitive_incompatible_versions_a");
@ -1035,9 +1035,9 @@ fn transitive_incompatible_with_root_version() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a and package-b==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("transitive_incompatible_with_root_version_a");
@ -1084,10 +1084,10 @@ fn transitive_incompatible_with_transitive() {
----- stdout -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies:
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 you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
");
context.assert_not_installed("transitive_incompatible_with_transitive_a");
@ -1162,8 +1162,8 @@ fn local_greater_than() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -1237,8 +1237,8 @@ fn local_less_than() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -1454,9 +1454,9 @@ fn local_transitive_conflicting() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("local_transitive_conflicting_a");
@ -1596,9 +1596,9 @@ fn local_transitive_greater_than() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("local_transitive_greater_than_a");
@ -1690,9 +1690,9 @@ fn local_transitive_less_than() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a and package-b==2.0.0+foo, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("local_transitive_less_than_a");
@ -1856,8 +1856,8 @@ fn post_equal_not_available() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -1971,8 +1971,8 @@ fn post_greater_than_post_not_available() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2045,8 +2045,8 @@ fn post_greater_than() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2080,8 +2080,8 @@ fn post_less_than_or_equal() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2115,8 +2115,8 @@ fn post_less_than() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2151,8 +2151,8 @@ fn post_local_greater_than_post() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2187,8 +2187,8 @@ fn post_local_greater_than() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2222,8 +2222,8 @@ fn post_simple() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -2382,10 +2382,10 @@ fn package_only_prereleases_in_range() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
@ -2871,11 +2871,11 @@ fn transitive_package_only_prereleases_in_range() {
----- stdout -----
----- stderr -----
× 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.
And because only package-a==0.1.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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.
@ -2994,24 +2994,24 @@ fn transitive_prerelease_and_stable_dependency_many_versions_holes() {
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of package-c are available:
package-c<=1.0.0
package-c>=2.0.0a5,<=2.0.0a7
package-c==2.0.0b1
package-c>=2.0.0b5
and package-a==1.0.0 depends on one of:
package-c>1.0.0,<2.0.0a5
package-c>2.0.0a7,<2.0.0b1
package-c>2.0.0b1,<2.0.0b5
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.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of package-c are available:
package-c<=1.0.0
package-c>=2.0.0a5,<=2.0.0a7
package-c==2.0.0b1
package-c>=2.0.0b5
and package-a==1.0.0 depends on one of:
package-c>1.0.0,<2.0.0a5
package-c>2.0.0a7,<2.0.0b1
package-c>2.0.0b1,<2.0.0b5
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.
hint: `package-c` was requested with a pre-release marker (e.g., all of:
package-c>1.0.0,<2.0.0a5
package-c>2.0.0a7,<2.0.0b1
package-c>2.0.0b1,<2.0.0b5
), but pre-releases weren't enabled (try: `--prerelease=allow`)
hint: `package-c` was requested with a pre-release marker (e.g., all of:
package-c>1.0.0,<2.0.0a5
package-c>2.0.0a7,<2.0.0b1
package-c>2.0.0b1,<2.0.0b5
), but pre-releases weren't enabled (try: `--prerelease=allow`)
");
// 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 -----
----- stderr -----
× 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.
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 you require package-a and package-b, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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 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.
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.
@ -3213,11 +3213,11 @@ fn transitive_prerelease_and_stable_dependency() {
----- stdout -----
----- stderr -----
× 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.
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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.
@ -3307,20 +3307,20 @@ fn python_greater_than_current_excluded() {
----- stdout -----
----- stderr -----
× 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.
And because only the following versions of package-a are available:
package-a<=2.0.0
package-a==3.0.0
package-a==4.0.0
we can conclude that package-a>=2.0.0,<3.0.0 cannot be used. (1)
error: No solution found when resolving dependencies:
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:
package-a<=2.0.0
package-a==3.0.0
package-a==4.0.0
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.
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.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)
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 you require package-a>=2.0.0, we can conclude that your requirements are unsatisfiable.
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 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");
@ -3377,8 +3377,8 @@ fn python_greater_than_current_many() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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");
@ -3414,9 +3414,9 @@ fn python_greater_than_current_patch() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("python_greater_than_current_patch_a");
@ -3451,9 +3451,9 @@ fn python_greater_than_current() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("python_greater_than_current_a");
@ -3526,9 +3526,9 @@ fn python_version_does_not_exist() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
context.assert_not_installed("python_version_does_not_exist_a");
@ -3641,11 +3641,11 @@ fn no_sdist_no_wheels_with_matching_abi() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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");
@ -3680,11 +3680,11 @@ fn no_sdist_no_wheels_with_matching_platform() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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");
@ -3719,11 +3719,11 @@ fn no_sdist_no_wheels_with_matching_python() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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");
@ -3759,11 +3759,11 @@ fn no_wheels_no_build() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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");
@ -3869,11 +3869,11 @@ fn only_wheels_no_binary() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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");
@ -3978,12 +3978,12 @@ fn package_only_yanked_in_range() {
----- stdout -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of package-a are available:
package-a<=0.1.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 because you require package-a>0.1.0, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of package-a are available:
package-a<=0.1.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 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.
@ -4018,9 +4018,9 @@ fn package_only_yanked() {
----- stdout -----
----- stderr -----
× 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.
And because you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
// 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 -----
----- stderr -----
× No solution found when resolving dependencies:
Because only the following versions of package-b are available:
package-b<=0.1
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 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.
error: No solution found when resolving dependencies:
Caused by: Because only the following versions of package-b are available:
package-b<=0.1
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 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.
");
// 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 -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies:
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 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.
@ -4358,9 +4358,9 @@ fn transitive_yanked_and_unyanked_dependency() {
----- stdout -----
----- stderr -----
× 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.
And because only package-a==1.0.0 is available and you require package-a, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
");
// Since the user did not explicitly select the yanked version, it cannot be used.

View File

@ -951,17 +951,17 @@ fn install_no_index() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--no-index")
.arg("--strict"), @r###"
.arg("--strict"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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();
@ -1000,17 +1000,17 @@ fn install_no_index_cached() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--no-index")
.arg("--strict"), @r###"
.arg("--strict"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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();
@ -1290,11 +1290,11 @@ fn mismatched_name() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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
Caused by: The .dist-info directory tomli-2.0.1 does not start with the normalized package name: foo
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
"
);
@ -1947,15 +1947,15 @@ fn duplicate_package_overlap() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--strict"), @r###"
.arg("--strict"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because you require markupsafe==2.1.3 and markupsafe==2.1.2, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -2628,12 +2628,12 @@ fn incompatible_wheel() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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
Caused by: Failed to read from zip file
Caused by: unable to locate the end of central directory record
hint: The structure of `foo` was invalid
Caused by: Failed to read from zip file
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("--offline")
.arg("--find-links")
.arg(context.workspace_root.join("test/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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(())
@ -2900,17 +2900,17 @@ fn offline() -> Result<()> {
// Install with `--offline` with an empty cache.
uv_snapshot!(context.pip_sync()
.arg("requirements.in")
.arg("--offline"), @r###"
.arg("--offline"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving dependencies:
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.
@ -2991,15 +2991,15 @@ fn incompatible_constraint() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--constraint")
.arg("constraints.txt"), @r###"
.arg("constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
Caused by: Because you require anyio==3.7.0 and anyio==3.6.0, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())
@ -3088,15 +3088,15 @@ fn repeat_requirement_incompatible() -> Result<()> {
requirements_in.write_str("anyio<4.0.0\nanyio==4.0.0")?;
uv_snapshot!(context.pip_sync()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###);
error: No solution found when resolving dependencies:
Caused by: Because you require anyio<4.0.0 and anyio==4.0.0, we can conclude that your requirements are unsatisfiable.
");
Ok(())
}
@ -3386,16 +3386,16 @@ requires-python = ">=3.13"
requirements_in.write_str(&format!("-e {}", editable_dir.path().display()))?;
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -3426,16 +3426,16 @@ requires-python = ">=3.13"
requirements_in.write_str(&format!("example @ {}", editable_dir.path().display()))?;
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.in"), @r###"
.arg("requirements.in"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because only example==0.0.0 is available and you require example, we can conclude that your requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -3600,22 +3600,22 @@ fn require_hashes_wheel_no_binary() -> Result<()> {
.arg("requirements.txt")
.arg("--no-binary")
.arg(":all:")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download and build `anyio==4.0.0`
Hash mismatch for `anyio==4.0.0`
error: Failed to download and build `anyio==4.0.0`
Caused by: Hash mismatch for `anyio==4.0.0`
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
"###
Computed:
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
"
);
Ok(())
@ -3692,22 +3692,22 @@ fn require_hashes_source_only_binary() -> Result<()> {
.arg("requirements.txt")
.arg("--only-binary")
.arg(":all:")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `anyio==4.0.0`
Hash mismatch for `anyio==4.0.0`
error: Failed to download `anyio==4.0.0`
Caused by: Hash mismatch for `anyio==4.0.0`
Expected:
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Expected:
sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"###
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"
);
Ok(())
@ -3724,22 +3724,22 @@ fn require_hashes_wrong_digest() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `anyio==4.0.0`
Hash mismatch for `anyio==4.0.0`
error: Failed to download `anyio==4.0.0`
Caused by: Hash mismatch for `anyio==4.0.0`
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"###
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"
);
Ok(())
@ -3756,22 +3756,22 @@ fn require_hashes_wrong_algorithm() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `anyio==4.0.0`
Hash mismatch for `anyio==4.0.0`
error: Failed to download `anyio==4.0.0`
Caused by: Hash mismatch for `anyio==4.0.0`
Expected:
sha512:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha512:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha512:f30761c1e8725b49c498273b90dba4b05c0fd157811994c806183062cb6647e773364ce45f0e1ff0b10e32fe6d0232ea5ad39476ccf37109d6b49603a09c11c2
"###
Computed:
sha512:f30761c1e8725b49c498273b90dba4b05c0fd157811994c806183062cb6647e773364ce45f0e1ff0b10e32fe6d0232ea5ad39476ccf37109d6b49603a09c11c2
"
);
Ok(())
@ -3827,21 +3827,21 @@ fn require_hashes_source_url() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--reinstall")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
error: Failed to download and build `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:
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Expected:
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Computed:
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
"###
Computed:
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
"
);
Ok(())
@ -3858,21 +3858,21 @@ fn require_hashes_source_url_mismatch() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
error: Failed to download and build `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:
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Expected:
sha256:a7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a
Computed:
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
"###
Computed:
sha256:1f83ed7498336c7f2ab9b002cf22583d91115ebc624053dc4eb3a45694490106
"
);
Ok(())
@ -3928,22 +3928,22 @@ fn require_hashes_wheel_url() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--reinstall")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
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`
Hash mismatch for `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`
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"###
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"
);
// 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()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
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`
Hash mismatch for `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`
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"###
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"
);
Ok(())
@ -4015,15 +4015,15 @@ fn require_hashes_git() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
"###
error: Failed to download and build `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(())
@ -4045,15 +4045,15 @@ fn require_hashes_source_tree() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
"###
error: Failed to build `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(())
@ -4090,22 +4090,22 @@ fn require_hashes_re_download() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--reinstall")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `anyio==4.0.0`
Hash mismatch for `anyio==4.0.0`
error: Failed to download `anyio==4.0.0`
Caused by: Hash mismatch for `anyio==4.0.0`
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:afdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"###
Computed:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
"
);
// 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()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× 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`
error: Failed to read `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:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:a34996d4bd5abb2336e14ff0a2d22b92cfd0f0ed344e6883041ce01953276a13
"###
Computed:
sha256:a34996d4bd5abb2336e14ff0a2d22b92cfd0f0ed344e6883041ce01953276a13
"
);
Ok(())
@ -4250,21 +4250,21 @@ fn require_hashes_source_path_mismatch() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
× 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`
error: Failed to build `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:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
Computed:
sha256:89fa05cffa7f457658373b85de302d24d0c205ceda2819a8739e324b75e9430b
"###
Computed:
sha256:89fa05cffa7f457658373b85de302d24d0c205ceda2819a8739e324b75e9430b
"
);
Ok(())
@ -4457,22 +4457,22 @@ fn require_hashes_repeated_hash() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes")
.arg("--reinstall"), @r###"
.arg("--reinstall"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
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`
Hash mismatch for `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`
Caused by: Hash mismatch for `anyio @ https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl`
Expected:
md5:520d85e19168705cdf0223621b18831a
Expected:
md5:520d85e19168705cdf0223621b18831a
Computed:
md5:420d85e19168705cdf0223621b18831a
"###
Computed:
md5:420d85e19168705cdf0223621b18831a
"
);
Ok(())
@ -4588,22 +4588,22 @@ fn require_hashes_find_links_no_hash() -> Result<()> {
.arg("--reinstall")
.arg("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:123
Expected:
sha256:123
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
Expected:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:123
Expected:
sha256:123
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
Expected:
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download and build `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download and build `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
Expected:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
Computed:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
"###
Computed:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
"
);
Ok(())
@ -4881,15 +4881,15 @@ fn require_hashes_registry_valid_hash() -> Result<()> {
.arg("requirements.txt")
.arg("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###
error: No solution found when resolving dependencies:
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(())
@ -4910,22 +4910,22 @@ fn require_hashes_registry_invalid_hash() -> Result<()> {
.arg("--reinstall")
.arg("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:123
Expected:
sha256:123
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
Expected:
sha256:8838f9d005ff0432b258ba648d9cabb1cbdf06ac29d14f788b02edae544032ea
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"###
Computed:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
"
);
// 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("--require-hashes")
.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
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download and build `example-a-961b4c22==1.0.0`
Hash mismatch for `example-a-961b4c22==1.0.0`
error: Failed to download and build `example-a-961b4c22==1.0.0`
Caused by: Hash mismatch for `example-a-961b4c22==1.0.0`
Expected:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
Expected:
sha256:5d69f0b590514103234f0c3526563856f04d044d8d0ea1073a843ae429b3187e
sha256:a3cf07a05aac526131a2e8b6e4375ee6c6eaac8add05b88035e960ac6cd999ee
Computed:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
"###
Computed:
sha256:294e788dbe500fdc39e8b88e82652ab67409a1dc9dd06543d0fe0ae31b713eb3
"
);
Ok(())
@ -5106,22 +5106,22 @@ fn require_hashes_url_invalid() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
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`
Hash mismatch for `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`
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:
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
Expected:
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
Computed:
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
"###
Computed:
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
"
);
Ok(())
@ -5138,22 +5138,22 @@ fn require_hashes_url_ignore() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--require-hashes"), @r###"
.arg("--require-hashes"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
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`
Hash mismatch for `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`
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:
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
Expected:
sha256:c6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
Computed:
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
"###
Computed:
sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374
"
);
Ok(())
@ -5549,18 +5549,18 @@ fn incompatible_build_constraint() -> Result<()> {
uv_snapshot!(context.pip_sync()
.arg("requirements.txt")
.arg("--build-constraint")
.arg("build_constraints.txt"), @r###"
.arg("build_constraints.txt"), @r"
success: false
exit_code: 1
----- stdout -----
----- stderr -----
Resolved 1 package in [TIME]
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
"
);
Ok(())

View File

@ -414,15 +414,15 @@ fn run_pep723_script() -> Result<()> {
})?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###);
error: No solution found when resolving script dependencies:
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.
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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###);
error: No solution found when resolving script dependencies:
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.
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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
"###);
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
");
// Compatible build constraints.
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`.
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
exit_code: 1
----- stdout -----
@ -1264,9 +1264,9 @@ fn run_with() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
Audited 2 packages in [TIME]
× 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.
"###);
error: No solution found when resolving `--with` dependencies:
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
");
Ok(())
}
@ -1608,10 +1608,10 @@ fn run_with_build_constraints() -> Result<()> {
+ idna==3.6
+ sniffio==1.3.1
+ typing-extensions==4.10.0
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
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`.
@ -1940,7 +1940,7 @@ fn run_with_editable() -> Result<()> {
"###);
// 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
exit_code: 1
----- stdout -----
@ -1948,9 +1948,9 @@ fn run_with_editable() -> Result<()> {
----- stderr -----
Resolved 3 packages in [TIME]
Audited 3 packages in [TIME]
× Failed to resolve `--with` requirement
Distribution not found at: file://[TEMP_DIR]/foo
"###);
error: Failed to resolve `--with` requirement
Caused by: Distribution not found at: file://[TEMP_DIR]/foo
");
Ok(())
}

View File

@ -775,12 +775,12 @@ fn group_requires_python_useful_defaults() -> Result<()> {
----- stderr -----
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
Creating virtual environment at: .venv
× 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.
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.
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
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 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
@ -790,12 +790,12 @@ fn group_requires_python_useful_defaults() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
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 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
@ -919,12 +919,12 @@ fn group_requires_python_useful_non_defaults() -> Result<()> {
----- stderr -----
Using CPython 3.8.[X] interpreter at: [PYTHON-3.8]
Creating virtual environment at: .venv
× 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.
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.
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
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 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
@ -935,12 +935,12 @@ fn group_requires_python_useful_non_defaults() -> Result<()> {
----- stdout -----
----- stderr -----
× 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.
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.
error: No solution found when resolving dependencies for split (markers: python_full_version == '3.8.*'):
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 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
@ -1509,22 +1509,23 @@ fn sync_build_isolation_package() -> Result<()> {
----- stderr -----
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`
The build backend returned an error
Call to `hatchling.build.build_wheel` failed (exit status: 1)
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
Caused by: The build backend returned an error
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
ModuleNotFoundError: No module named 'hatchling'
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
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]
source-distribution = ["hatchling"]
[tool.uv.extra-build-dependencies]
source-distribution = ["hatchling"]
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`
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
hint: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
"#);
// Install `hatchling` for `source-distribution`.
@ -1597,22 +1598,23 @@ fn sync_build_isolation_package_order() -> Result<()> {
----- stderr -----
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`
The build backend returned an error
Call to `hatchling.build.build_wheel` failed (exit status: 1)
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
Caused by: The build backend returned an error
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
ModuleNotFoundError: No module named 'hatchling'
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
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]
source-distribution = ["hatchling"]
[tool.uv.extra-build-dependencies]
source-distribution = ["hatchling"]
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`
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
hint: `source-distribution` was included because `project` (v0.1.0) depends on `source-distribution`
"#);
// Add `hatchling`.
@ -1767,22 +1769,23 @@ fn sync_build_isolation_extra() -> Result<()> {
Resolved [N] packages in [TIME]
Prepared [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`
The build backend returned an error
Call to `hatchling.build.build_wheel` failed (exit status: 1)
error: Failed to build `source-distribution @ https://files.pythonhosted.org/packages/10/1f/57aa4cce1b1abf6b433106676e15f9fa2c92ed2bd4cf77c3b50a9e9ac773/source_distribution-0.0.1.tar.gz`
Caused by: The build backend returned an error
Caused by: Call to `hatchling.build.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
ModuleNotFoundError: No module named 'hatchling'
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
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]
source-distribution = ["hatchling"]
[tool.uv.extra-build-dependencies]
source-distribution = ["hatchling"]
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`
or `uv pip install hatchling` into the environment and re-run with `--no-build-isolation`.
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
@ -1909,15 +1912,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Missing `anyio` module
[stderr]
Missing `anyio` module
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
// Adding `extra-build-dependencies` should solve the issue
@ -1987,15 +1991,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Missing `anyio` module
[stderr]
Missing `anyio` module
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
// Write a test package that arbitrarily bans `anyio` at build time
@ -2056,15 +2061,16 @@ fn sync_extra_build_dependencies() -> Result<()> {
----- stderr -----
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]
× Failed to build `bad-child @ file://[TEMP_DIR]/bad_child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `bad-child @ file://[TEMP_DIR]/bad_child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Found `anyio` module
[stderr]
Found `anyio` module
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: This usually indicates a problem with the package or the build environment.
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`
@ -2151,14 +2157,14 @@ fn sync_extra_build_dependencies_setuptools_legacy() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Missing `anyio` module
[stderr]
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
@ -2257,15 +2263,16 @@ fn sync_extra_build_dependencies_setuptools() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
[stderr]
Missing `anyio` module
[stderr]
Missing `anyio` module
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
// Adding `extra-build-dependencies` should solve the issue
@ -2448,15 +2455,16 @@ fn sync_extra_build_dependencies_index() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
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: This usually indicates a problem with the package or the build environment.
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.
@ -2503,15 +2511,16 @@ fn sync_extra_build_dependencies_index() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Expected `anyio` version 4.3 but got 3.5.0
[stderr]
Expected `anyio` version 4.3 but got 3.5.0
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
uv_snapshot!(context.filters(), context.sync()
@ -2601,15 +2610,16 @@ fn sync_extra_build_dependencies_sources_from_child() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Found system anyio instead of local anyio
[stderr]
Found system anyio instead of local anyio
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `project` (v0.1.0) depends on `child`
");
Ok(())
@ -2665,24 +2675,25 @@ fn sync_build_dependencies_module_error_hints() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
File "[TEMP_DIR]/child/build_backend.py", line 4, in <module>
import anyio
ModuleNotFoundError: No module named 'anyio'
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
File "[TEMP_DIR]/child/build_backend.py", line 4, in <module>
import 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]
child = ["anyio"]
[tool.uv.extra-build-dependencies]
child = ["anyio"]
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`
or `uv pip install anyio` into the environment and re-run with `--no-build-isolation`.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
"#);
// Adding `extra-build-dependencies` should solve the issue
@ -2733,24 +2744,25 @@ fn sync_build_dependencies_module_error_hints() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
File "[TEMP_DIR]/child/build_backend.py", line 5, in <module>
import sklearn
ModuleNotFoundError: No module named 'sklearn'
[stderr]
Traceback (most recent call last):
File "<string>", line 8, in <module>
File "[TEMP_DIR]/child/build_backend.py", line 5, in <module>
import 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]
child = ["scikit-learn"]
[tool.uv.extra-build-dependencies]
child = ["scikit-learn"]
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`
or `uv pip install scikit-learn` into the environment and re-run with `--no-build-isolation`.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
"#);
// Adding `extra-build-dependencies` should solve the issue
@ -5811,14 +5823,14 @@ fn sync_extra_build_dependencies_script() -> Result<()> {
----- stderr -----
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Missing `anyio` module
[stderr]
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
@ -9507,30 +9519,31 @@ fn sync_derivation_chain() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project` (v0.1.0) depends on `wsgiref`
"#);
Ok(())
@ -9570,30 +9583,31 @@ fn sync_derivation_chain_extra() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project[wsgi]` (v0.1.0) depends on `wsgiref`
"#);
Ok(())
@ -9635,30 +9649,31 @@ fn sync_derivation_chain_group() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
× Failed to build `wsgiref==0.1.2`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `wsgiref==0.1.2`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/builds-v0/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 5, in <module>
File "[CACHE_DIR]/[TMP]/src/ez_setup/__init__.py", line 170
print "Setuptools version",version,"or greater has been installed."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
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: This usually indicates a problem with the package or the build environment.
hint: `wsgiref` (v0.1.2) was included because `project:wsgi` (v0.1.0) depends on `wsgiref`
"#);
Ok(())
@ -10103,9 +10118,10 @@ fn mismatched_name_self_editable() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
× Failed to build `foo @ file://[TEMP_DIR]/`
Package metadata name `project` does not match given name `foo`
help: `foo` was included because `project` (v0.1.0) depends on `foo`
error: Failed to build `foo @ file://[TEMP_DIR]/`
Caused by: Package metadata name `project` does not match given name `foo`
hint: `foo` was included because `project` (v0.1.0) depends on `foo`
");
Ok(())
@ -10156,8 +10172,8 @@ fn mismatched_name_cached_wheel() -> Result<()> {
----- stdout -----
----- stderr -----
× 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`
error: Failed to download and build `foo @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
Caused by: Package metadata name `iniconfig` does not match given name `foo`
");
Ok(())
@ -10429,15 +10445,16 @@ fn url_hash_mismatch() -> Result<()> {
----- stderr -----
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`
Hash mismatch for `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`
Caused by: Hash mismatch for `iniconfig @ https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz`
Expected:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
Expected:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
Computed:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
help: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
Computed:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
hint: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
");
Ok(())
@ -10502,15 +10519,16 @@ fn path_hash_mismatch() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
× 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`
error: Failed to build `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:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
Expected:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b4
Computed:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
help: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
Computed:
sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3
hint: `iniconfig` was included because `project` (v0.1.0) depends on `iniconfig`
");
Ok(())
@ -11263,10 +11281,10 @@ fn sync_script_with_incompatible_build_constraints() -> Result<()> {
----- stderr -----
Creating script environment at: [CACHE_DIR]/environments-v2/script-[HASH]
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==1, we can conclude that your requirements are unsatisfiable.
");
Ok(())
@ -11298,9 +11316,9 @@ fn unsupported_git_scheme() -> Result<()> {
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
Creating virtual environment at: .venv
× Failed to build `foo @ file://[TEMP_DIR]/`
Failed to parse entry: `foo`
Unsupported Git URL scheme `c:` in `c:/home/ferris/projects/foo` (expected one of `https:`, `ssh:`, or `file:`)
error: Failed to build `foo @ file://[TEMP_DIR]/`
Caused by: Failed to parse entry: `foo`
Caused by: Unsupported Git URL scheme `c:` in `c:/home/ferris/projects/foo` (expected one of `https:`, `ssh:`, or `file:`)
");
Ok(())
}
@ -13474,15 +13492,16 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
// Now constrain the `anyio` build dependency to match the runtime
@ -13542,15 +13561,16 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
The build backend returned an error
Call to `build_backend.build_wheel` failed (exit status: 1)
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_wheel` failed (exit status: 1)
[stderr]
Expected `anyio` version 4.0 but got 3.7.1
[stderr]
Expected `anyio` version 4.0 but got 3.7.1
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: This usually indicates a problem with the package or the build environment.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
uv_snapshot!(context.filters(), context.sync()
@ -13625,11 +13645,12 @@ fn sync_build_dependencies_respect_locked_versions() -> Result<()> {
----- stderr -----
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]
× Failed to build `child @ file://[TEMP_DIR]/child`
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)`
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`
error: Failed to build `child @ file://[TEMP_DIR]/child`
Caused by: Failed to resolve requirements from `build-system.requires` and `extra-build-dependencies`
Caused by: No solution found when resolving: `hatchling`, `anyio>3.8, <4.2`, `anyio==3.7.1 (index: https://pypi.org/simple)`
Caused by: Because you require anyio>3.8,<4.2 and anyio==3.7.1, we can conclude that your requirements are unsatisfiable.
hint: `child` was included because `parent` (v0.1.0) depends on `child`
");
// Adding a version specifier should also fail
@ -13725,14 +13746,14 @@ fn sync_extra_build_variables() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `parent @ file://[TEMP_DIR]/`
The build backend returned an error
Call to `build_backend.build_editable` failed (exit status: 1)
error: Failed to build `parent @ file://[TEMP_DIR]/`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_editable` failed (exit status: 1)
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
[stderr]
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).
@ -13758,14 +13779,14 @@ fn sync_extra_build_variables() -> Result<()> {
----- stderr -----
Resolved [N] packages in [TIME]
× Failed to build `parent @ file://[TEMP_DIR]/`
The build backend returned an error
Call to `build_backend.build_editable` failed (exit status: 1)
error: Failed to build `parent @ file://[TEMP_DIR]/`
Caused by: The build backend returned an error
Caused by: Call to `build_backend.build_editable` failed (exit status: 1)
[stderr]
Expected `anyio` version 3.0 but got 4.3.0
[stderr]
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).
@ -13824,9 +13845,10 @@ fn reject_unmatched_runtime() -> Result<()> {
----- stderr -----
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`
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`
error: Failed to download and build `source-distribution==0.0.3`
Caused by: Extra build requirement `iniconfig` was declared with `match-runtime = true`, but `source-distribution` does not declare static metadata, making runtime-matching impossible
hint: `source-distribution` (v0.0.3) was included because `foo` (v0.1.0) depends on `source-distribution`
");
Ok(())

View File

@ -421,10 +421,10 @@ fn tool_install_with_incompatible_build_constraints() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
");
tool_dir
@ -1702,27 +1702,27 @@ fn tool_install_uninstallable() {
----- stderr -----
Resolved 1 package in [TIME]
× Failed to build `pyenv==0.0.1`
The build backend returned an error
Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
error: Failed to build `pyenv==0.0.1`
Caused by: The build backend returned an error
Caused by: Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)
[stdout]
running bdist_wheel
running build
installing to build/bdist.linux-x86_64/wheel
running install
[stdout]
running bdist_wheel
running build
installing to build/bdist.linux-x86_64/wheel
running install
[stderr]
# NOTE #
We are sorry, but this package is not installable with pip.
[stderr]
# NOTE #
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.
@ -3099,16 +3099,16 @@ fn tool_install_preserve_environment() {
.arg("packaging==0.0.1")
.env(EnvVars::UV_TOOL_DIR, tool_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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
And because you require packaging==0.0.1, we can conclude that your requirements are unsatisfiable.
"###);
error: No solution found when resolving dependencies:
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.
");
// Install `black`. The tool should already be installed, since we didn't remove the environment.
uv_snapshot!(context.filters(), context.tool_install()
@ -4487,11 +4487,11 @@ fn tool_install_find_links() {
----- stdout -----
----- stderr -----
× 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.
And because you require basic-app, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving tool dependencies:
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.
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.
");
}

View File

@ -109,15 +109,15 @@ fn tool_run_at_version() {
.arg("pytest@invalid")
.arg("--version")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to resolve tool requirement
Distribution not found at: file://[TEMP_DIR]/invalid
"###);
error: Failed to resolve tool requirement
Caused by: Distribution not found at: file://[TEMP_DIR]/invalid
");
let filters = context
.filters()
@ -1809,15 +1809,15 @@ fn tool_run_with_editable() -> anyhow::Result<()> {
.arg("flask")
.arg("--version")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× Failed to resolve `--with` requirement
Distribution not found at: file://[TEMP_DIR]/foo
"###);
error: Failed to resolve `--with` requirement
Caused by: Distribution not found at: file://[TEMP_DIR]/foo
");
Ok(())
}
@ -1914,15 +1914,15 @@ fn tool_run_resolution_error() {
uv_snapshot!(context.filters(), context.tool_run()
.arg("add")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
"###);
error: No solution found when resolving tool dependencies:
Caused by: Because there are no versions of add and you require add, we can conclude that your requirements are unsatisfiable.
");
}
#[test]
@ -2238,8 +2238,8 @@ fn tool_run_python_at_version() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving tool dependencies:
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.
@ -2251,8 +2251,8 @@ fn tool_run_python_at_version() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving tool dependencies:
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`
@ -2833,48 +2833,51 @@ fn tool_run_verbose_hint() {
.arg("nonexistent-package-foo")
.arg("--verbose")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
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`
"###);
error: No solution found when resolving dependencies:
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.
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
uv_snapshot!(context.filters(), context.tool_run()
.arg("nonexistent-package-bar")
.arg("-v")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
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`
"###);
error: No solution found when resolving dependencies:
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.
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
uv_snapshot!(context.filters(), context.tool_run()
.arg("nonexistent-package-baz")
.arg("-vv")
.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
exit_code: 1
----- stdout -----
----- stderr -----
× 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.
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`
"###);
error: No solution found when resolving dependencies:
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.
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
uv_snapshot!(context.filters(), context.tool_run()
@ -2887,8 +2890,8 @@ fn tool_run_verbose_hint() {
----- stdout -----
----- stderr -----
× 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.
error: No solution found when resolving tool dependencies:
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 -----
----- stderr -----
× Failed to download and build `requests==1.2.0`
Failed to resolve requirements from `setup.py` build
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.
error: Failed to download and build `requests==1.2.0`
Caused by: Failed to resolve requirements from `setup.py` build
Caused by: No solution found when resolving: `setuptools>=40.8.0`
Caused by: Because you require setuptools>=40.8.0 and setuptools==2, we can conclude that your requirements are unsatisfiable.
");
Ok(())
@ -3442,9 +3445,9 @@ fn tool_run_reresolve_python() -> anyhow::Result<()> {
----- stdout -----
----- stderr -----
× 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.
And because only foo==1.0.0 is available and you require foo, we can conclude that your requirements are unsatisfiable.
error: No solution found when resolving tool dependencies:
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.
");
// Unless the discovered interpreter is compatible with the request

View File

@ -1131,19 +1131,19 @@ fn workspace_inherit_sources() -> Result<()> {
library.child("src/__init__.py").touch()?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
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.
@ -1358,9 +1358,9 @@ fn workspace_unsatisfiable_member_dependencies() -> Result<()> {
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires leaf, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
"
);
@ -1419,17 +1419,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting() -> Result<()> {
bar.child("src/__init__.py").touch()?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires bar and foo, we can conclude that your workspace's requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -1502,17 +1502,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_threeway() -> Result<
bird.child("src/__init__.py").touch()?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires bird and knot, we can conclude that your workspace's requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -1572,17 +1572,17 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_extra() -> Result<()>
bar.child("src/__init__.py").touch()?;
// 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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires bar[some-extra] and foo, we can conclude that your workspace's requirements are unsatisfiable.
"###
error: No solution found when resolving dependencies:
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.
"
);
Ok(())
@ -1650,9 +1650,9 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> {
----- 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
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× 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.
And because your workspace requires bar:dev and foo, we can conclude that your workspace's requirements are unsatisfiable.
error: No solution found when resolving dependencies:
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.
"
);
@ -1714,17 +1714,17 @@ fn workspace_member_name_shadows_dependencies() -> Result<()> {
// We should fail
// 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
exit_code: 1
----- stdout -----
----- stderr -----
Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
× Failed to build `foo @ file://[TEMP_DIR]/workspace/packages/foo`
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 }`)
"###
error: Failed to build `foo @ file://[TEMP_DIR]/workspace/packages/foo`
Caused by: Failed to parse entry: `anyio`
Caused by: `anyio` is included as a workspace member, but is missing an entry in `tool.uv.sources` (e.g., `anyio = { workspace = true }`)
"
);
Ok(())