Update Packse snapshots (#8795)

## Summary

The diff here is challenging because it looks like some tests got
reordered.
This commit is contained in:
Charlie Marsh 2024-11-04 16:17:43 -05:00 committed by GitHub
parent fb1d679f69
commit f8ec7975c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 2805 additions and 3004 deletions

View File

@ -32,7 +32,7 @@ use uv_static::EnvVars;
// Exclude any packages uploaded after this date.
static EXCLUDE_NEWER: &str = "2024-03-25T00:00:00Z";
pub const PACKSE_VERSION: &str = "0.3.37";
pub const PACKSE_VERSION: &str = "0.3.39";
/// Using a find links url allows using `--index-url` instead of `--extra-index-url` in tests
/// to prevent dependency confusion attacks against our test suite.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
//! DO NOT EDIT
//!
//! Generated with `./scripts/sync_scenarios.sh`
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.37/scenarios>
//! Scenarios from <https://github.com/astral-sh/packse/tree/0.3.39/scenarios>
//!
#![cfg(all(feature = "python", feature = "pypi", unix))]
@ -40,59 +40,7 @@ fn command(context: &TestContext, python_versions: &[&str]) -> Command {
command
}
/// The user requires a package which requires a Python version greater than the
/// current version, but they use an alternative Python version for package
/// resolution.
///
/// ```text
/// incompatible-python-compatible-override
/// ├── environment
/// │ └── python3.9
/// ├── root
/// │ └── requires a==1.0.0
/// │ └── satisfied by a-1.0.0
/// └── a
/// └── a-1.0.0
/// └── requires python>=3.10 (incompatible with environment)
/// ```
#[test]
fn incompatible_python_compatible_override() -> Result<()> {
let context = TestContext::new("3.9");
let python_versions = &[];
// In addition to the standard filters, swap out package names for shorter messages
let mut filters = context.filters();
filters.push((r"incompatible-python-compatible-override-", "package-"));
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("incompatible-python-compatible-override-a==1.0.0")?;
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r##"
success: true
exit_code: 0
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in --cache-dir [CACHE_DIR] --python-version=3.11
package-a==1.0.0
# via -r requirements.in
----- stderr -----
warning: The requested Python version 3.11 is not available; 3.9.[X] will be used to build dependencies instead.
Resolved 1 package in [TIME]
"##
);
output.assert().success().stdout(predicate::str::contains(
"incompatible-python-compatible-override-a==1.0.0",
));
Ok(())
}
/// The user requires a package which requires a compatible Python version, but they
/// request an incompatible Python version for package resolution.
/// The user requires a package which requires a compatible Python version, but they request an incompatible Python version for package resolution.
///
/// ```text
/// compatible-python-incompatible-override
@ -119,7 +67,7 @@ fn compatible_python_incompatible_override() -> Result<()> {
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.9")
, @r#"
, @r###"
success: false
exit_code: 1
----- stdout -----
@ -131,7 +79,7 @@ fn compatible_python_incompatible_override() -> Result<()> {
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
hint: The `--python-version` value (>=3.9.0) 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.
"#
"###
);
output.assert().failure();
@ -139,66 +87,7 @@ fn compatible_python_incompatible_override() -> Result<()> {
Ok(())
}
/// The user requires a package which requires a incompatible Python version, but
/// they request a compatible Python version for package resolution. There are only
/// source distributions available for the package.
///
/// ```text
/// incompatible-python-compatible-override-unavailable-no-wheels
/// ├── environment
/// │ └── python3.9
/// ├── root
/// │ └── requires a==1.0.0
/// │ └── satisfied by a-1.0.0
/// └── a
/// └── a-1.0.0
/// └── requires python>=3.10 (incompatible with environment)
/// ```
#[test]
fn incompatible_python_compatible_override_unavailable_no_wheels() -> Result<()> {
let context = TestContext::new("3.9");
let python_versions = &[];
// In addition to the standard filters, swap out package names for shorter messages
let mut filters = context.filters();
filters.push((
r"incompatible-python-compatible-override-unavailable-no-wheels-",
"package-",
));
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in
.write_str("incompatible-python-compatible-override-unavailable-no-wheels-a==1.0.0")?;
// Since there are no wheels for the package and it is not compatible with the
// local installation, we cannot build the source distribution to determine its
// dependencies.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r###"
success: true
exit_code: 0
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in --cache-dir [CACHE_DIR] --python-version=3.11
package-a==1.0.0
# via -r requirements.in
----- stderr -----
warning: The requested Python version 3.11 is not available; 3.9.[X] will be used to build dependencies instead.
Resolved 1 package in [TIME]
"###
);
output.assert().success();
Ok(())
}
/// The user requires a package which requires a incompatible Python version, but
/// they request a compatible Python version for package resolution. There are only
/// source distributions available for the package. The user has a compatible Python
/// version installed elsewhere on their system.
/// The user requires a package which requires a incompatible Python version, but they request a compatible Python version for package resolution. There are only source distributions available for the package. The user has a compatible Python version installed elsewhere on their system.
///
/// ```text
/// incompatible-python-compatible-override-available-no-wheels
@ -228,11 +117,10 @@ fn incompatible_python_compatible_override_available_no_wheels() -> Result<()> {
requirements_in
.write_str("incompatible-python-compatible-override-available-no-wheels-a==1.0.0")?;
// Since there is a compatible Python version available on the system, it should be
// used to build the source distributions.
// Since there is a compatible Python version available on the system, it should be used to build the source distributions.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r##"
, @r###"
success: true
exit_code: 0
----- stdout -----
@ -243,7 +131,7 @@ fn incompatible_python_compatible_override_available_no_wheels() -> Result<()> {
----- stderr -----
Resolved 1 package in [TIME]
"##
"###
);
output.assert().success().stdout(predicate::str::contains(
@ -253,9 +141,7 @@ fn incompatible_python_compatible_override_available_no_wheels() -> Result<()> {
Ok(())
}
/// The user requires a package which requires a incompatible Python version, but
/// they request a compatible Python version for package resolution. There is a
/// wheel available for the package, but it does not have a compatible tag.
/// The user requires a package which requires a incompatible Python version, but they request a compatible Python version for package resolution. There is a wheel available for the package, but it does not have a compatible tag.
///
/// ```text
/// incompatible-python-compatible-override-no-compatible-wheels
@ -284,9 +170,7 @@ fn incompatible_python_compatible_override_no_compatible_wheels() -> Result<()>
requirements_in
.write_str("incompatible-python-compatible-override-no-compatible-wheels-a==1.0.0")?;
// Since there are no compatible wheels for the package and it is not compatible
// with the local installation, we cannot build the source distribution to
// determine its dependencies.
// Since there are no compatible wheels for the package and it is not compatible with the local installation, we cannot build the source distribution to determine its dependencies. However, the source distribution includes static metadata, which we can use to determine dependencies without building the package.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r###"
@ -309,10 +193,7 @@ fn incompatible_python_compatible_override_no_compatible_wheels() -> Result<()>
Ok(())
}
/// The user requires a package which requires a incompatible Python version, but
/// they request a compatible Python version for package resolution. There are only
/// source distributions available for the compatible version of the package, but
/// there is an incompatible version with a wheel available.
/// The user requires a package which requires a incompatible Python version, but they request a compatible Python version for package resolution. There are only source distributions available for the compatible version of the package, but there is an incompatible version with a wheel available.
///
/// ```text
/// incompatible-python-compatible-override-other-wheel
@ -343,10 +224,7 @@ fn incompatible_python_compatible_override_other_wheel() -> Result<()> {
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("incompatible-python-compatible-override-other-wheel-a")?;
// Since there are no wheels for the version of the package compatible with the
// target and it is not compatible with the local installation, we cannot build the
// source distribution to determine its dependencies. The other version has wheels
// available, but is not compatible with the target version and cannot be used.
// Since there are no wheels for the version of the package compatible with the target and it is not compatible with the local installation, we cannot build the source distribution to determine its dependencies. However, the source distribution includes static metadata, which we can use to determine dependencies without building the package.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r###"
@ -369,8 +247,108 @@ fn incompatible_python_compatible_override_other_wheel() -> Result<()> {
Ok(())
}
/// The user requires a package which requires a Python version with a patch version
/// and the user provides a target version without a patch version.
/// The user requires a package which requires a incompatible Python version, but they request a compatible Python version for package resolution. There are only source distributions available for the package.
///
/// ```text
/// incompatible-python-compatible-override-unavailable-no-wheels
/// ├── environment
/// │ └── python3.9
/// ├── root
/// │ └── requires a==1.0.0
/// │ └── satisfied by a-1.0.0
/// └── a
/// └── a-1.0.0
/// └── requires python>=3.10 (incompatible with environment)
/// ```
#[test]
fn incompatible_python_compatible_override_unavailable_no_wheels() -> Result<()> {
let context = TestContext::new("3.9");
let python_versions = &[];
// In addition to the standard filters, swap out package names for shorter messages
let mut filters = context.filters();
filters.push((
r"incompatible-python-compatible-override-unavailable-no-wheels-",
"package-",
));
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in
.write_str("incompatible-python-compatible-override-unavailable-no-wheels-a==1.0.0")?;
// Since there are no wheels for the package and it is not compatible with the local installation, we cannot build the source distribution to determine its dependencies. However, the source distribution includes static metadata, which we can use to determine dependencies without building the package.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r###"
success: true
exit_code: 0
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in --cache-dir [CACHE_DIR] --python-version=3.11
package-a==1.0.0
# via -r requirements.in
----- stderr -----
warning: The requested Python version 3.11 is not available; 3.9.[X] will be used to build dependencies instead.
Resolved 1 package in [TIME]
"###
);
output.assert().success();
Ok(())
}
/// The user requires a package which requires a Python version greater than the current version, but they use an alternative Python version for package resolution.
///
/// ```text
/// incompatible-python-compatible-override
/// ├── environment
/// │ └── python3.9
/// ├── root
/// │ └── requires a==1.0.0
/// │ └── satisfied by a-1.0.0
/// └── a
/// └── a-1.0.0
/// └── requires python>=3.10 (incompatible with environment)
/// ```
#[test]
fn incompatible_python_compatible_override() -> Result<()> {
let context = TestContext::new("3.9");
let python_versions = &[];
// In addition to the standard filters, swap out package names for shorter messages
let mut filters = context.filters();
filters.push((r"incompatible-python-compatible-override-", "package-"));
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("incompatible-python-compatible-override-a==1.0.0")?;
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.11")
, @r###"
success: true
exit_code: 0
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in --cache-dir [CACHE_DIR] --python-version=3.11
package-a==1.0.0
# via -r requirements.in
----- stderr -----
warning: The requested Python version 3.11 is not available; 3.9.[X] will be used to build dependencies instead.
Resolved 1 package in [TIME]
"###
);
output.assert().success().stdout(predicate::str::contains(
"incompatible-python-compatible-override-a==1.0.0",
));
Ok(())
}
/// The user requires a package which requires a Python version with a patch version and the user provides a target version without a patch version.
///
/// ```text
/// python-patch-override-no-patch
@ -396,11 +374,10 @@ fn python_patch_override_no_patch() -> Result<()> {
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("python-patch-override-no-patch-a==1.0.0")?;
// Since the resolver is asked to solve with 3.8, the minimum compatible Python
// requirement is treated as 3.8.0.
// Since the resolver is asked to solve with 3.8, the minimum compatible Python requirement is treated as 3.8.0.
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.8")
, @r#"
, @r###"
success: false
exit_code: 1
----- stdout -----
@ -411,7 +388,7 @@ fn python_patch_override_no_patch() -> Result<()> {
And because you require package-a==1.0.0, we can conclude that your requirements are unsatisfiable.
hint: The `--python-version` value (>=3.8.0) includes Python versions that are not supported by your dependencies (e.g., package-a==1.0.0 only supports >=3.8.4). Consider using a higher `--python-version` value.
"#
"###
);
output.assert().failure();
@ -419,8 +396,7 @@ fn python_patch_override_no_patch() -> Result<()> {
Ok(())
}
/// The user requires a package which requires a Python version with a patch version
/// and the user provides a target version with a compatible patch version.
/// The user requires a package which requires a Python version with a patch version and the user provides a target version with a compatible patch version.
///
/// ```text
/// python-patch-override-patch-compatible
@ -448,7 +424,7 @@ fn python_patch_override_patch_compatible() -> Result<()> {
let output = uv_snapshot!(filters, command(&context, python_versions)
.arg("--python-version=3.8.0")
, @r##"
, @r###"
success: true
exit_code: 0
----- stdout -----
@ -460,7 +436,7 @@ fn python_patch_override_patch_compatible() -> Result<()> {
----- stderr -----
warning: The requested Python version 3.8.0 is not available; 3.8.18 will be used to build dependencies instead.
Resolved 1 package in [TIME]
"##
"###
);
output.assert().success().stdout(predicate::str::contains(

File diff suppressed because it is too large Load Diff

View File

@ -172,7 +172,6 @@ def main(scenarios: list[Path], snapshot_update: bool = True):
for scenario in data["scenarios"]:
resolver_options = scenario["resolver_options"] or {}
if resolver_options.get("universal"):
print(scenario["name"])
lock_scenarios.append(scenario)
elif resolver_options.get("python") is not None:
compile_scenarios.append(scenario)

View File

@ -1,2 +1,2 @@
chevron-blue
packse>=0.3.37
packse>=0.3.39

View File

@ -1,90 +1,26 @@
# This file was autogenerated by uv via the following command:
# uv pip compile scripts/scenarios/requirements.in -o scripts/scenarios/requirements.txt --refresh-package packse -n
certifi==2024.2.2
# via requests
cffi==1.16.0
# via cryptography
charset-normalizer==3.3.2
# via requests
chevron-blue==0.2.1
# via
# -r scripts/scenarios/requirements.in
# packse
cryptography==42.0.7
# via secretstorage
docutils==0.21.2
# via readme-renderer
hatchling==1.24.2
# via packse
idna==3.7
# via requests
importlib-metadata==7.1.0
# via twine
jaraco-classes==3.4.0
# via keyring
jaraco-context==5.3.0
# via keyring
jaraco-functools==4.0.1
# via keyring
jeepney==0.8.0
# via
# keyring
# secretstorage
keyring==25.1.0
# via twine
markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
more-itertools==10.2.0
# via
# jaraco-classes
# jaraco-functools
msgspec==0.18.6
# via packse
nh3==0.2.17
# via readme-renderer
packaging==24.0
# via hatchling
packse==0.3.37
packse==0.3.39
# via -r scripts/scenarios/requirements.in
pathspec==0.12.1
# via hatchling
pkginfo==1.10.0
# via twine
pluggy==1.5.0
# via hatchling
pycparser==2.22
# via cffi
pygments==2.17.2
# via
# readme-renderer
# rich
pyyaml==6.0.1
# via packse
readme-renderer==43.0
# via twine
requests==2.31.0
# via
# requests-toolbelt
# twine
requests-toolbelt==1.0.0
# via twine
rfc3986==2.0.0
# via twine
rich==13.7.1
# via twine
secretstorage==3.3.3
# via keyring
setuptools==69.5.1
# via packse
trove-classifiers==2024.4.10
# via hatchling
twine==4.0.2
uv==0.4.29
# via packse
urllib3==2.2.1
# via
# requests
# twine
zipp==3.18.1
# via importlib-metadata