Use a 'minor' version field (revision) in the lockfile (#11500)

## Summary

This is an alternative to the approach we took in #11063 whereby we
always included `provides-extra` and `requires-dist`, since we needed
some way to differentiate between "no extras" and "lockfile was
generated by a uv version that didn't include extras".

Instead, this PR adds a minor version (called a "revision") to the
lockfile that we can use to indicate support for this feature. While
lockfile version bumps are backwards-incompatible, older uv versions
_can_ read lockfiles with a later revision -- they just won't understand
all the data.

In a future major version bump, we could simplify things and change the
schema to use a (major, minor) format instead of these two separate
fields. But this is the only way to do it that's backwards-compatible
with existing uv versions.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
This commit is contained in:
Charlie Marsh 2025-02-14 11:17:26 -05:00 committed by GitHub
parent f001605505
commit 29bdf1d597
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 738 additions and 859 deletions

View file

@ -66,6 +66,9 @@ mod tree;
/// The current version of the lockfile format.
pub const VERSION: u32 = 1;
/// The current revision of the lockfile format.
const REVISION: u32 = 1;
static LINUX_MARKERS: LazyLock<UniversalMarker> = LazyLock::new(|| {
let pep508 = MarkerTree::from_str("os_name == 'posix' and sys_platform == 'linux'").unwrap();
UniversalMarker::new(pep508, ConflictMarker::TRUE)
@ -101,7 +104,21 @@ static X86_MARKERS: LazyLock<UniversalMarker> = LazyLock::new(|| {
#[derive(Clone, Debug, serde::Deserialize)]
#[serde(try_from = "LockWire")]
pub struct Lock {
/// The (major) version of the lockfile format.
///
/// Changes to the major version indicate backwards- and forwards-incompatible changes to the
/// lockfile format. A given uv version only supports a single major version of the lockfile
/// format.
///
/// In other words, a version of uv that supports version 2 of the lockfile format will not be
/// able to read lockfiles generated under version 1 or 3.
version: u32,
/// The revision of the lockfile format.
///
/// Changes to the revision indicate backwards-compatible changes to the lockfile format.
/// In other words, versions of uv that only support revision 1 _will_ be able to read lockfiles
/// with a revision greater than 1 (though they may ignore newer fields).
revision: u32,
/// If this lockfile was built from a forking resolution with non-identical forks, store the
/// forks in the lockfile so we can recreate them in subsequent resolutions.
fork_markers: Vec<UniversalMarker>,
@ -262,6 +279,7 @@ impl Lock {
};
let lock = Self::new(
VERSION,
REVISION,
packages,
requires_python,
options,
@ -347,6 +365,7 @@ impl Lock {
/// Initialize a [`Lock`] from a list of [`Package`] entries.
fn new(
version: u32,
revision: u32,
mut packages: Vec<Package>,
requires_python: RequiresPython,
options: ResolverOptions,
@ -500,6 +519,7 @@ impl Lock {
}
let lock = Self {
version,
revision,
fork_markers,
conflicts,
supported_environments,
@ -550,6 +570,11 @@ impl Lock {
self.version
}
/// Returns the lockfile revision.
pub fn revision(&self) -> u32 {
self.revision
}
/// Returns the number of packages in the lockfile.
pub fn len(&self) -> usize {
self.packages.len()
@ -661,6 +686,10 @@ impl Lock {
let mut doc = toml_edit::DocumentMut::new();
doc.insert("version", value(i64::from(self.version)));
if self.revision > 0 {
doc.insert("revision", value(i64::from(self.revision)));
}
doc.insert("requires-python", value(self.requires_python.to_string()));
if !self.fork_markers.is_empty() {
@ -981,7 +1010,6 @@ impl Lock {
.metadata
.requires_dist
.iter()
.flatten()
.cloned()
.map(|requirement| normalize_requirement(requirement, root))
.collect::<Result<_, _>>()?;
@ -1662,6 +1690,7 @@ impl ResolverManifest {
#[serde(rename_all = "kebab-case")]
struct LockWire {
version: u32,
revision: Option<u32>,
requires_python: RequiresPython,
/// If this lockfile was built from a forking resolution with non-identical forks, store the
/// forks in the lockfile so we can recreate them in subsequent resolutions.
@ -1719,6 +1748,7 @@ impl TryFrom<LockWire> for Lock {
.collect();
let lock = Lock::new(
wire.version,
wire.revision.unwrap_or(0),
packages,
wire.requires_python,
wire.options,
@ -1778,32 +1808,28 @@ impl Package {
let sdist = SourceDist::from_annotated_dist(&id, annotated_dist)?;
let wheels = Wheel::from_annotated_dist(annotated_dist)?;
let requires_dist = if id.source.is_immutable() {
None
BTreeSet::default()
} else {
Some(
annotated_dist
.metadata
.as_ref()
.expect("metadata is present")
.requires_dist
.iter()
.cloned()
.map(|requirement| requirement.relative_to(root))
.collect::<Result<_, _>>()
.map_err(LockErrorKind::RequirementRelativePath)?,
)
annotated_dist
.metadata
.as_ref()
.expect("metadata is present")
.requires_dist
.iter()
.cloned()
.map(|requirement| requirement.relative_to(root))
.collect::<Result<_, _>>()
.map_err(LockErrorKind::RequirementRelativePath)?
};
let provides_extras = if id.source.is_immutable() {
None
Vec::default()
} else {
Some(
annotated_dist
.metadata
.as_ref()
.expect("metadata is present")
.provides_extras
.clone(),
)
annotated_dist
.metadata
.as_ref()
.expect("metadata is present")
.provides_extras
.clone()
};
let dependency_groups = if id.source.is_immutable() {
BTreeMap::default()
@ -2418,22 +2444,10 @@ impl Package {
{
let mut metadata_table = Table::new();
// Even output the empty list to signal it's *known* empty.
if let Some(provides_extras) = &self.metadata.provides_extras {
let provides_extras = provides_extras
.iter()
.map(|extra| {
serde::Serialize::serialize(&extra, toml_edit::ser::ValueSerializer::new())
})
.collect::<Result<Vec<_>, _>>()?;
// This is just a list of names, so linebreaking it is excessive.
let provides_extras = Array::from_iter(provides_extras);
metadata_table.insert("provides-extras", value(provides_extras));
}
// Even output the empty set to signal it's *known* empty.
if let Some(requires_dist) = &self.metadata.requires_dist {
let requires_dist = requires_dist
if !self.metadata.requires_dist.is_empty() {
let requires_dist = self
.metadata
.requires_dist
.iter()
.map(|requirement| {
serde::Serialize::serialize(
@ -2474,6 +2488,20 @@ impl Package {
}
}
if !self.metadata.provides_extras.is_empty() {
let provides_extras = self
.metadata
.provides_extras
.iter()
.map(|extra| {
serde::Serialize::serialize(&extra, toml_edit::ser::ValueSerializer::new())
})
.collect::<Result<Vec<_>, _>>()?;
// This is just a list of names, so linebreaking it is excessive.
let provides_extras = Array::from_iter(provides_extras);
metadata_table.insert("provides-extras", value(provides_extras));
}
if !metadata_table.is_empty() {
table.insert("metadata", Item::Table(metadata_table));
}
@ -2619,8 +2647,8 @@ impl Package {
}
/// Returns the extras the package provides, if any.
pub fn provides_extras(&self) -> Option<&Vec<ExtraName>> {
self.metadata.provides_extras.as_ref()
pub fn provides_extras(&self) -> &[ExtraName] {
&self.metadata.provides_extras
}
/// Returns the dependency groups the package provides, if any.
@ -2670,12 +2698,10 @@ struct PackageWire {
#[derive(Clone, Default, Debug, Eq, PartialEq, serde::Deserialize)]
#[serde(rename_all = "kebab-case")]
struct PackageMetadata {
// The Options here are so we can distinguish "no info available"
// from "known and empty".
#[serde(default)]
requires_dist: Option<BTreeSet<Requirement>>,
requires_dist: BTreeSet<Requirement>,
#[serde(default)]
provides_extras: Option<Vec<ExtraName>>,
provides_extras: Vec<ExtraName>,
#[serde(default, rename = "requires-dev", alias = "dependency-groups")]
dependency_groups: BTreeMap<GroupName, BTreeSet<Requirement>>,
}

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -86,8 +87,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -93,8 +94,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -89,8 +90,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -79,8 +80,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},
@ -149,8 +150,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -79,8 +80,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},
@ -149,8 +150,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -54,8 +55,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},
@ -101,8 +102,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},
@ -165,8 +166,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -79,8 +80,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},
@ -149,8 +150,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -63,8 +64,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -61,8 +62,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -56,8 +57,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -5,6 +5,7 @@ expression: result
Ok(
Lock {
version: 1,
revision: 0,
fork_markers: [],
conflicts: Conflicts(
[],
@ -56,8 +57,8 @@ Ok(
optional_dependencies: {},
dependency_groups: {},
metadata: PackageMetadata {
requires_dist: None,
provides_extras: None,
requires_dist: {},
provides_extras: [],
dependency_groups: {},
},
},

View file

@ -259,6 +259,11 @@ impl<'lock> InstallTarget<'lock> {
Self::Project { lock, .. }
| Self::Workspace { lock, .. }
| Self::NonProjectWorkspace { lock, .. } => {
// `provides-extra` was added in Version 1 Revision 1.
if (lock.version(), lock.revision()) < (1, 1) {
return Ok(());
}
let roots = self.roots().collect::<FxHashSet<_>>();
let member_packages: Vec<&Package> = lock
.packages()
@ -266,20 +271,10 @@ impl<'lock> InstallTarget<'lock> {
.filter(|package| roots.contains(package.name()))
.collect();
// If `provides-extra` is not set in any package, do not perform the check, as this
// means that the lock file was generated on a version of uv that predates when the
// feature was added.
if !member_packages
.iter()
.any(|package| package.provides_extras().is_some())
{
return Ok(());
}
// Collect all known extras from the member packages.
let known_extras = member_packages
.iter()
.flat_map(|package| package.provides_extras().into_iter().flatten())
.flat_map(|package| package.provides_extras().iter())
.collect::<FxHashSet<_>>();
for extra in extras {

View file

@ -203,8 +203,9 @@ fn root_package_splits_transitive_too() -> Result<()> {
"###
);
assert_snapshot!(context.read("uv.lock"), @r#"
assert_snapshot!(context.read("uv.lock"), @r###"
version = 1
revision = 1
requires-python = ">=3.11, <3.13"
resolution-markers = [
"python_full_version >= '3.12'",
@ -225,7 +226,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "anyio", marker = "python_full_version < '3.12'", specifier = "==4.2.0" },
{ name = "anyio", marker = "python_full_version >= '3.12'", specifier = "==4.3.0" },
@ -274,7 +274,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "b1", marker = "python_full_version < '3.12'", directory = "b1" },
{ name = "b2", marker = "python_full_version >= '3.12'", directory = "b2" },
@ -289,7 +288,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl" }]
[[package]]
@ -301,7 +299,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" }]
[[package]]
@ -324,10 +321,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
{ url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3" },
]
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "iniconfig"
version = "2.0.0"
@ -339,10 +332,6 @@ fn root_package_splits_transitive_too() -> Result<()> {
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" },
]
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "sniffio"
version = "1.3.1"
@ -351,7 +340,7 @@ fn root_package_splits_transitive_too() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#);
"###);
Ok(())
}
@ -412,6 +401,7 @@ fn root_package_splits_other_dependencies_too() -> Result<()> {
assert_snapshot!(context.read("uv.lock"), @r#"
version = 1
revision = 1
requires-python = ">=3.11, <3.13"
resolution-markers = [
"python_full_version >= '3.12'",
@ -433,7 +423,6 @@ fn root_package_splits_other_dependencies_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "anyio", marker = "python_full_version < '3.12'", specifier = "==4.2.0" },
{ name = "anyio", marker = "python_full_version >= '3.12'", specifier = "==4.3.0" },
@ -482,7 +471,6 @@ fn root_package_splits_other_dependencies_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==1.1.1" }]
[[package]]
@ -494,7 +482,6 @@ fn root_package_splits_other_dependencies_too() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
[[package]]
@ -574,8 +561,9 @@ fn branching_between_registry_and_direct_url() -> Result<()> {
);
// We have source dist and wheel for the registry, but only the wheel for the direct URL.
assert_snapshot!(context.read("uv.lock"), @r#"
assert_snapshot!(context.read("uv.lock"), @r###"
version = 1
revision = 1
requires-python = ">=3.11, <3.13"
resolution-markers = [
"python_full_version >= '3.12'",
@ -595,7 +583,6 @@ fn branching_between_registry_and_direct_url() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", marker = "python_full_version < '3.12'", specifier = "==1.1.1" },
{ name = "iniconfig", marker = "python_full_version >= '3.12'", url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl" },
@ -623,11 +610,7 @@ fn branching_between_registry_and_direct_url() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" },
]
[package.metadata]
provides-extras = []
requires-dist = []
"#);
"###);
Ok(())
}
@ -665,8 +648,9 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> {
);
// We have source dist and wheel for the registry, but only the wheel for the direct URL.
assert_snapshot!(context.read("uv.lock"), @r#"
assert_snapshot!(context.read("uv.lock"), @r###"
version = 1
revision = 1
requires-python = ">=3.11, <3.13"
resolution-markers = [
"python_full_version >= '3.12'",
@ -686,7 +670,6 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", marker = "python_full_version < '3.12'", url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl" },
{ name = "iniconfig", marker = "python_full_version >= '3.12'", git = "https://github.com/pytest-dev/iniconfig?rev=93f5930e668c0d1ddf4597e38dd0dea4e2665e7a" },
@ -703,10 +686,6 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> {
{ url = "https://files.pythonhosted.org/packages/9b/dd/b3c12c6d707058fa947864b67f0c4e0c39ef8610988d7baea9578f3c48f3/iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3" },
]
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "iniconfig"
version = "2.0.0"
@ -714,7 +693,7 @@ fn branching_urls_of_different_sources_disjoint() -> Result<()> {
resolution-markers = [
"python_full_version >= '3.12'",
]
"#);
"###);
Ok(())
}
@ -798,8 +777,9 @@ fn dont_pre_visit_url_packages() -> Result<()> {
"###
);
assert_snapshot!(context.read("uv.lock"), @r#"
assert_snapshot!(context.read("uv.lock"), @r###"
version = 1
revision = 1
requires-python = ">=3.11, <3.13"
[options]
@ -815,7 +795,6 @@ fn dont_pre_visit_url_packages() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "b", directory = "b" },
{ name = "c", specifier = "==0.1.0" },
@ -830,18 +809,13 @@ fn dont_pre_visit_url_packages() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "c", directory = "c" }]
[[package]]
name = "c"
version = "0.1.0"
source = { directory = "c" }
[package.metadata]
provides-extras = []
requires-dist = []
"#);
"###);
Ok(())
}

View file

@ -75,6 +75,7 @@ fn add_registry() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -111,7 +112,6 @@ fn add_registry() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "anyio", specifier = "==3.7.0" }]
[[package]]
@ -243,6 +243,7 @@ fn add_git() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -280,7 +281,6 @@ fn add_git() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "anyio", specifier = "==3.7.0" },
{ name = "uv-public-pypackage", git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1" },
@ -383,6 +383,7 @@ fn add_git_private_source() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -397,7 +398,6 @@ fn add_git_private_source() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "uv-private-pypackage", git = "https://github.com/astral-test/uv-private-pypackage" }]
[[package]]
@ -490,6 +490,7 @@ fn add_git_private_raw() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -504,7 +505,6 @@ fn add_git_private_raw() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "uv-private-pypackage", git = "https://github.com/astral-test/uv-private-pypackage" }]
[[package]]
@ -711,6 +711,7 @@ fn add_git_raw() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -748,7 +749,6 @@ fn add_git_raw() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "anyio", specifier = "==3.7.0" },
{ name = "uv-public-pypackage", git = "https://github.com/astral-test/uv-public-pypackage?rev=0.0.1" },
@ -976,6 +976,7 @@ fn add_unnamed() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -990,7 +991,6 @@ fn add_unnamed() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "uv-public-pypackage", git = "https://github.com/astral-test/uv-public-pypackage?tag=0.0.1" }]
[[package]]
@ -1079,8 +1079,9 @@ fn add_remove_dev() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1119,8 +1120,6 @@ fn add_remove_dev() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
dev = [{ name = "anyio", specifier = "==3.7.0" }]
@ -1133,7 +1132,7 @@ fn add_remove_dev() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -1204,8 +1203,9 @@ fn add_remove_dev() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1217,12 +1217,10 @@ fn add_remove_dev() -> Result<()> {
source = { editable = "." }
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
dev = []
"#
"###
);
});
@ -1304,8 +1302,9 @@ fn add_remove_optional() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1344,8 +1343,8 @@ fn add_remove_optional() -> Result<()> {
]
[package.metadata]
provides-extras = ["io"]
requires-dist = [{ name = "anyio", marker = "extra == 'io'", specifier = "==3.7.0" }]
provides-extras = ["io"]
[[package]]
name = "sniffio"
@ -1355,7 +1354,7 @@ fn add_remove_optional() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -1427,8 +1426,9 @@ fn add_remove_optional() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1441,8 +1441,7 @@ fn add_remove_optional() -> Result<()> {
[package.metadata]
provides-extras = ["io"]
requires-dist = []
"#
"###
);
});
@ -1670,6 +1669,7 @@ fn add_remove_workspace() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1690,17 +1690,12 @@ fn add_remove_workspace() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "child2", editable = "child2" }]
[[package]]
name = "child2"
version = "0.1.0"
source = { editable = "child2" }
[package.metadata]
provides-extras = []
requires-dist = []
"#
);
});
@ -1758,6 +1753,7 @@ fn add_remove_workspace() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1774,18 +1770,10 @@ fn add_remove_workspace() -> Result<()> {
version = "0.1.0"
source = { editable = "child1" }
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "child2"
version = "0.1.0"
source = { editable = "child2" }
[package.metadata]
provides-extras = []
requires-dist = []
"#
);
});
@ -2313,6 +2301,7 @@ fn add_workspace_editable() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2334,7 +2323,6 @@ fn add_workspace_editable() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "child2", editable = "child2" }]
[[package]]
@ -2342,18 +2330,10 @@ fn add_workspace_editable() -> Result<()> {
version = "0.1.0"
source = { editable = "child2" }
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "parent"
version = "0.1.0"
source = { virtual = "." }
[package.metadata]
provides-extras = []
requires-dist = []
"#
);
});
@ -2446,6 +2426,7 @@ fn add_workspace_path() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2462,10 +2443,6 @@ fn add_workspace_path() -> Result<()> {
version = "0.1.0"
source = { editable = "child" }
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "parent"
version = "0.1.0"
@ -2475,7 +2452,6 @@ fn add_workspace_path() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "child", editable = "child" }]
"#
);
@ -2574,6 +2550,7 @@ fn add_path() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2584,10 +2561,6 @@ fn add_path() -> Result<()> {
version = "0.1.0"
source = { directory = "packages/child" }
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "parent"
version = "0.1.0"
@ -2597,7 +2570,6 @@ fn add_path() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "child", directory = "packages/child" }]
"#
);
@ -2786,6 +2758,7 @@ fn update() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2851,7 +2824,6 @@ fn update() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "requests", extras = ["security"], git = "https://github.com/psf/requests?tag=v2.32.3" },
{ name = "requests", extras = ["socks", "use-chardet-on-py3"], marker = "python_full_version >= '3.8'", git = "https://github.com/psf/requests?tag=v2.32.3" },
@ -3482,6 +3454,7 @@ fn add_inexact() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3505,7 +3478,6 @@ fn add_inexact() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -3622,6 +3594,7 @@ fn remove_registry() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3631,10 +3604,6 @@ fn remove_registry() -> Result<()> {
name = "project"
version = "0.1.0"
source = { editable = "." }
[package.metadata]
provides-extras = []
requires-dist = []
"#
);
});
@ -4307,8 +4276,9 @@ fn add_lower_bound_optional() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -4347,8 +4317,8 @@ fn add_lower_bound_optional() -> Result<()> {
]
[package.metadata]
provides-extras = ["io"]
requires-dist = [{ name = "anyio", marker = "extra == 'io'", specifier = ">=4.3.0" }]
provides-extras = ["io"]
[[package]]
name = "sniffio"
@ -4358,7 +4328,7 @@ fn add_lower_bound_optional() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -4430,6 +4400,7 @@ fn add_lower_bound_local() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[[package]]
@ -4450,7 +4421,6 @@ fn add_lower_bound_local() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "local-simple-a", specifier = ">=1.2.3" }]
"#
);
@ -4532,6 +4502,7 @@ fn add_non_project() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -5491,8 +5462,9 @@ fn add_remove_script_lock() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -5627,7 +5599,7 @@ fn add_remove_script_lock() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", size = 121067 },
]
"#
"###
);
});
@ -5675,6 +5647,7 @@ fn add_remove_script_lock() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -5879,6 +5852,7 @@ fn add_remove_script_lock() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -6850,6 +6824,7 @@ fn add_warn_index_url() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -6873,7 +6848,6 @@ fn add_warn_index_url() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "idna", specifier = ">=3.6" }]
"#
);
@ -6952,6 +6926,7 @@ fn add_no_warn_index_url() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -6975,7 +6950,6 @@ fn add_no_warn_index_url() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=2.0.0" }]
"#
);
@ -7045,6 +7019,7 @@ fn add_index() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7071,7 +7046,6 @@ fn add_index() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -7131,6 +7105,7 @@ fn add_index() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7183,7 +7158,6 @@ fn add_index() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", specifier = "==2.0.0" },
{ name = "jinja2", specifier = ">=3.1.4", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu121" },
@ -7243,6 +7217,7 @@ fn add_index() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7300,7 +7275,6 @@ fn add_index() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", specifier = "==2.0.0" },
{ name = "jinja2", specifier = ">=3.1.4", index = "https://test.pypi.org/simple" },
@ -7363,6 +7337,7 @@ fn add_index() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7421,7 +7396,6 @@ fn add_index() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", specifier = "==2.0.0" },
{ name = "jinja2", specifier = ">=3.1.4", index = "https://test.pypi.org/simple" },
@ -7492,6 +7466,7 @@ fn add_index() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7550,7 +7525,6 @@ fn add_index() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", specifier = "==2.0.0" },
{ name = "jinja2", specifier = ">=3.1.4", index = "https://test.pypi.org/simple" },
@ -7628,6 +7602,7 @@ fn add_default_index_url() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7651,7 +7626,6 @@ fn add_default_index_url() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=2.0.0" }]
"#
);
@ -7701,6 +7675,7 @@ fn add_default_index_url() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7725,7 +7700,6 @@ fn add_default_index_url() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "iniconfig", specifier = ">=2.0.0" },
{ name = "typing-extensions", specifier = ">=4.10.0" },
@ -7802,6 +7776,7 @@ fn add_index_credentials() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7825,7 +7800,6 @@ fn add_index_credentials() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -7898,6 +7872,7 @@ fn existing_index_credentials() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -7921,7 +7896,6 @@ fn existing_index_credentials() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -7991,6 +7965,7 @@ fn add_index_with_trailing_slash() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -8017,7 +7992,6 @@ fn add_index_with_trailing_slash() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -8087,6 +8061,7 @@ fn add_index_without_trailing_slash() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -8113,7 +8088,6 @@ fn add_index_without_trailing_slash() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -8190,8 +8164,9 @@ fn add_group_comment() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -8221,8 +8196,6 @@ fn add_group_comment() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
dev = [
@ -8248,7 +8221,7 @@ fn add_group_comment() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926 },
]
"#
"###
);
});
@ -8327,6 +8300,7 @@ fn add_index_comments() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -8350,7 +8324,6 @@ fn add_index_comments() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = "==2.0.0" }]
"#
);
@ -8629,6 +8602,7 @@ fn add_direct_url_subdirectory() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -8665,7 +8639,6 @@ fn add_direct_url_subdirectory() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "root", url = "https://github.com/user-attachments/files/18216295/subdirectory-test.tar.gz", subdirectory = "packages/root" }]
[[package]]
@ -8678,7 +8651,6 @@ fn add_direct_url_subdirectory() -> Result<()> {
sdist = { hash = "sha256:24b55efee28d08ad3cdc58903e359e820601baa6a4a4b3424311541ebcfb09d3" }
[package.metadata]
provides-extras = []
requires-dist = [{ name = "anyio" }]
[[package]]
@ -8769,6 +8741,7 @@ fn add_direct_url_subdirectory_raw() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -8805,7 +8778,6 @@ fn add_direct_url_subdirectory_raw() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "root", url = "https://github.com/user-attachments/files/18216295/subdirectory-test.tar.gz", subdirectory = "packages/root" }]
[[package]]
@ -8818,7 +8790,6 @@ fn add_direct_url_subdirectory_raw() -> Result<()> {
sdist = { hash = "sha256:24b55efee28d08ad3cdc58903e359e820601baa6a4a4b3424311541ebcfb09d3" }
[package.metadata]
provides-extras = []
requires-dist = [{ name = "anyio" }]
[[package]]
@ -9482,6 +9453,7 @@ fn repeated_index_cli_environment_variable() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -9505,7 +9477,6 @@ fn repeated_index_cli_environment_variable() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=2.0.0" }]
"#
);
@ -9592,6 +9563,7 @@ fn repeated_index_cli() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -9615,7 +9587,6 @@ fn repeated_index_cli() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=2.0.0" }]
"#
);
@ -9702,6 +9673,7 @@ fn repeated_index_cli_reversed() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -9725,7 +9697,6 @@ fn repeated_index_cli_reversed() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=2.0.0" }]
"#
);

View file

@ -520,8 +520,9 @@ fn dependency_conflicting_markers() -> Result<()> {
},
{
insta::assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"sys_platform == 'darwin'",
@ -594,7 +595,6 @@ fn dependency_conflicting_markers() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "trio", marker = "sys_platform == 'darwin'", specifier = "==0.25.0" },
{ name = "trio", marker = "sys_platform == 'win32'", specifier = "==0.10.0" },
@ -663,7 +663,7 @@ fn dependency_conflicting_markers() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/17/c9/f86f89f14d52f9f2f652ce24cb2f60141a51d087db1563f3fba94ba07346/trio-0.25.0-py3-none-any.whl", hash = "sha256:e6458efe29cc543e557a91e614e2b51710eba2961669329ce9c862d50c6e8e81", size = 467161 },
]
"#
"###
);
}
);
@ -1218,8 +1218,9 @@ fn non_project_fork() -> Result<()> {
},
{
insta::assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"sys_platform == 'win32'",
@ -1281,7 +1282,6 @@ fn non_project_fork() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "anyio", marker = "sys_platform == 'linux'", specifier = "==3.0.0" },
{ name = "anyio", marker = "sys_platform == 'win32'", specifier = "==2.0.0" },
@ -1304,7 +1304,7 @@ fn non_project_fork() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
}
);
@ -2126,8 +2126,9 @@ fn script() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
resolution-markers = [
"sys_platform == 'win32'",
@ -2193,7 +2194,7 @@ fn script() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -2244,6 +2245,7 @@ fn script() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
resolution-markers = [
"sys_platform == 'win32'",

File diff suppressed because it is too large Load diff

View file

@ -89,8 +89,9 @@ fn extra_basic() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "extra1" },
@ -114,11 +115,11 @@ fn extra_basic() -> Result<()> {
]
[package.metadata]
provides-extras = ["extra1", "extra2"]
requires-dist = [
{ name = "sortedcontainers", marker = "extra == 'extra1'", specifier = "==2.3.0" },
{ name = "sortedcontainers", marker = "extra == 'extra2'", specifier = "==2.4.0" },
]
provides-extras = ["extra1", "extra2"]
[[package]]
name = "sortedcontainers"
@ -137,7 +138,7 @@ fn extra_basic() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -282,8 +283,9 @@ fn extra_basic_three_extras() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "extra1" },
@ -311,12 +313,12 @@ fn extra_basic_three_extras() -> Result<()> {
]
[package.metadata]
provides-extras = ["extra1", "extra2", "project3"]
requires-dist = [
{ name = "sortedcontainers", marker = "extra == 'extra1'", specifier = "==2.2.0" },
{ name = "sortedcontainers", marker = "extra == 'extra2'", specifier = "==2.3.0" },
{ name = "sortedcontainers", marker = "extra == 'project3'", specifier = "==2.4.0" },
]
provides-extras = ["extra1", "extra2", "project3"]
[[package]]
name = "sortedcontainers"
@ -344,7 +346,7 @@ fn extra_basic_three_extras() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -756,8 +758,9 @@ fn extra_multiple_independent() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "extra1" },
@ -825,13 +828,13 @@ fn extra_multiple_independent() -> Result<()> {
]
[package.metadata]
provides-extras = ["extra1", "extra2", "project3", "project4"]
requires-dist = [
{ name = "anyio", marker = "extra == 'project3'", specifier = "==4.1.0" },
{ name = "anyio", marker = "extra == 'project4'", specifier = "==4.2.0" },
{ name = "sortedcontainers", marker = "extra == 'extra1'", specifier = "==2.3.0" },
{ name = "sortedcontainers", marker = "extra == 'extra2'", specifier = "==2.4.0" },
]
provides-extras = ["extra1", "extra2", "project3", "project4"]
[[package]]
name = "sniffio"
@ -859,7 +862,7 @@ fn extra_multiple_independent() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -905,8 +908,9 @@ fn extra_config_change_ignore_lockfile() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "extra1" },
@ -930,11 +934,11 @@ fn extra_config_change_ignore_lockfile() -> Result<()> {
]
[package.metadata]
provides-extras = ["extra1", "extra2"]
requires-dist = [
{ name = "sortedcontainers", marker = "extra == 'extra1'", specifier = "==2.3.0" },
{ name = "sortedcontainers", marker = "extra == 'extra2'", specifier = "==2.4.0" },
]
provides-extras = ["extra1", "extra2"]
[[package]]
name = "sortedcontainers"
@ -953,7 +957,7 @@ fn extra_config_change_ignore_lockfile() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -1719,8 +1723,9 @@ fn group_basic() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "group1" },
@ -1744,8 +1749,6 @@ fn group_basic() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
group1 = [{ name = "sortedcontainers", specifier = "==2.3.0" }]
@ -1768,7 +1771,7 @@ fn group_basic() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -1875,8 +1878,9 @@ fn group_default() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "group1" },
@ -1900,8 +1904,6 @@ fn group_default() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
group1 = [{ name = "sortedcontainers", specifier = "==2.3.0" }]
@ -1924,7 +1926,7 @@ fn group_default() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -2088,8 +2090,9 @@ fn mixed() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "group1" },
@ -2115,8 +2118,8 @@ fn mixed() -> Result<()> {
]
[package.metadata]
provides-extras = ["extra1"]
requires-dist = [{ name = "sortedcontainers", marker = "extra == 'extra1'", specifier = "==2.4.0" }]
provides-extras = ["extra1"]
[package.metadata.requires-dev]
group1 = [{ name = "sortedcontainers", specifier = "==2.3.0" }]
@ -2138,7 +2141,7 @@ fn mixed() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -2257,8 +2260,9 @@ fn multiple_sources_index_disjoint_extras() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "cu118" },
@ -2325,12 +2329,12 @@ fn multiple_sources_index_disjoint_extras() -> Result<()> {
]
[package.metadata]
provides-extras = ["cu118", "cu124"]
requires-dist = [
{ name = "jinja2", marker = "extra == 'cu118'", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", extra = "cu118" } },
{ name = "jinja2", marker = "extra == 'cu124'", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", extra = "cu124" } },
]
"#
provides-extras = ["cu118", "cu124"]
"###
);
});
@ -2406,8 +2410,9 @@ fn multiple_sources_index_disjoint_groups() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "cu118" },
@ -2474,13 +2479,11 @@ fn multiple_sources_index_disjoint_groups() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
cu118 = [{ name = "jinja2", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", group = "cu118" } }]
cu124 = [{ name = "jinja2", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", group = "cu124" } }]
"#
"###
);
});
@ -2556,8 +2559,9 @@ fn multiple_sources_index_disjoint_extras_with_extra() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "cu118" },
@ -2643,12 +2647,12 @@ fn multiple_sources_index_disjoint_extras_with_extra() -> Result<()> {
]
[package.metadata]
provides-extras = ["cu118", "cu124"]
requires-dist = [
{ name = "jinja2", extras = ["i18n"], marker = "extra == 'cu118'", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", extra = "cu118" } },
{ name = "jinja2", extras = ["i18n"], marker = "extra == 'cu124'", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", extra = "cu124" } },
]
"#
provides-extras = ["cu118", "cu124"]
"###
);
});
@ -2724,8 +2728,9 @@ fn multiple_sources_index_disjoint_extras_with_marker() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"extra != 'extra-7-project-cu118' and extra == 'extra-7-project-cu124'",
@ -2817,13 +2822,13 @@ fn multiple_sources_index_disjoint_extras_with_marker() -> Result<()> {
]
[package.metadata]
provides-extras = ["cu118", "cu124"]
requires-dist = [
{ name = "jinja2", marker = "sys_platform == 'darwin' and extra == 'cu118'", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", extra = "cu118" } },
{ name = "jinja2", marker = "sys_platform != 'darwin' and extra == 'cu118'", specifier = "==3.1.2" },
{ name = "jinja2", marker = "extra == 'cu124'", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", extra = "cu124" } },
]
"#
provides-extras = ["cu118", "cu124"]
"###
);
});
@ -3049,8 +3054,9 @@ fn shared_optional_dependency_extra1() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "foo" },
@ -3109,12 +3115,12 @@ fn shared_optional_dependency_extra1() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo", "bar", "baz"]
requires-dist = [
{ name = "anyio", marker = "extra == 'baz'" },
{ name = "idna", marker = "extra == 'bar'", specifier = "==3.6" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
]
provides-extras = ["foo", "bar", "baz"]
[[package]]
name = "sniffio"
@ -3124,7 +3130,7 @@ fn shared_optional_dependency_extra1() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3188,8 +3194,9 @@ fn shared_optional_dependency_group1() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "foo" },
@ -3248,8 +3255,6 @@ fn shared_optional_dependency_group1() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
bar = [{ name = "idna", specifier = "==3.6" }]
@ -3264,7 +3269,7 @@ fn shared_optional_dependency_group1() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3330,8 +3335,9 @@ fn shared_optional_dependency_mixed1() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "foo" },
@ -3392,8 +3398,8 @@ fn shared_optional_dependency_mixed1() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo"]
requires-dist = [{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" }]
provides-extras = ["foo"]
[package.metadata.requires-dev]
bar = [{ name = "idna", specifier = "==3.6" }]
@ -3407,7 +3413,7 @@ fn shared_optional_dependency_mixed1() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3474,8 +3480,9 @@ fn shared_optional_dependency_extra2() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = "==3.11.*"
conflicts = [[
{ package = "project", extra = "foo" },
@ -3533,13 +3540,13 @@ fn shared_optional_dependency_extra2() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo", "bar"]
requires-dist = [
{ name = "anyio", marker = "extra == 'bar'" },
{ name = "anyio", marker = "extra == 'foo'" },
{ name = "idna", marker = "extra == 'bar'", specifier = "==3.6" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
]
provides-extras = ["foo", "bar"]
[[package]]
name = "sniffio"
@ -3549,7 +3556,7 @@ fn shared_optional_dependency_extra2() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3614,8 +3621,9 @@ fn shared_optional_dependency_group2() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = "==3.11.*"
conflicts = [[
{ package = "project", group = "foo" },
@ -3673,8 +3681,6 @@ fn shared_optional_dependency_group2() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = []
[package.metadata.requires-dev]
bar = [
@ -3694,7 +3700,7 @@ fn shared_optional_dependency_group2() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3761,8 +3767,9 @@ fn shared_optional_dependency_mixed2() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = "==3.11.*"
conflicts = [[
{ package = "project", extra = "foo" },
@ -3822,11 +3829,11 @@ fn shared_optional_dependency_mixed2() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo"]
requires-dist = [
{ name = "anyio", marker = "extra == 'foo'" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
]
provides-extras = ["foo"]
[package.metadata.requires-dev]
bar = [
@ -3842,7 +3849,7 @@ fn shared_optional_dependency_mixed2() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -3904,8 +3911,9 @@ fn shared_dependency_extra() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "foo" },
@ -3964,12 +3972,12 @@ fn shared_dependency_extra() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo", "bar"]
requires-dist = [
{ name = "anyio" },
{ name = "idna", marker = "extra == 'bar'", specifier = "==3.6" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
]
provides-extras = ["foo", "bar"]
[[package]]
name = "sniffio"
@ -3979,7 +3987,7 @@ fn shared_dependency_extra() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -4078,8 +4086,9 @@ fn shared_dependency_group() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", group = "foo" },
@ -4138,7 +4147,6 @@ fn shared_dependency_group() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "anyio" }]
[package.metadata.requires-dev]
@ -4153,7 +4161,7 @@ fn shared_dependency_group() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -4254,8 +4262,9 @@ fn shared_dependency_mixed() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "foo" },
@ -4316,11 +4325,11 @@ fn shared_dependency_mixed() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo"]
requires-dist = [
{ name = "anyio" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
]
provides-extras = ["foo"]
[package.metadata.requires-dev]
bar = [{ name = "idna", specifier = "==3.6" }]
@ -4333,7 +4342,7 @@ fn shared_dependency_mixed() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -4470,8 +4479,9 @@ conflicts = [
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = "==3.11.*"
conflicts = [[
{ package = "project", extra = "x1" },
@ -4545,12 +4555,12 @@ conflicts = [
]
[package.metadata]
provides-extras = ["x1"]
requires-dist = [
{ name = "anyio", specifier = ">=4" },
{ name = "idna", marker = "extra == 'x1'", specifier = "==3.6" },
{ name = "proxy1", virtual = "proxy1" },
]
provides-extras = ["x1"]
[[package]]
name = "proxy1"
@ -4566,11 +4576,11 @@ conflicts = [
]
[package.metadata]
provides-extras = ["x2", "x3"]
requires-dist = [
{ name = "idna", marker = "extra == 'x2'", specifier = "==3.4" },
{ name = "idna", marker = "extra == 'x3'", specifier = "==3.5" },
]
provides-extras = ["x2", "x3"]
[[package]]
name = "sniffio"
@ -4580,7 +4590,7 @@ conflicts = [
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#
"###
);
});
@ -4655,8 +4665,9 @@ fn jinja_no_conflict_markers1() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "project", extra = "cu118" },
@ -4742,12 +4753,12 @@ fn jinja_no_conflict_markers1() -> Result<()> {
]
[package.metadata]
provides-extras = ["cu118", "cu124"]
requires-dist = [
{ name = "jinja2", extras = ["i18n"], marker = "extra == 'cu118'", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", extra = "cu118" } },
{ name = "jinja2", extras = ["i18n"], marker = "extra == 'cu124'", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", extra = "cu124" } },
]
"#
provides-extras = ["cu118", "cu124"]
"###
);
});
@ -4816,8 +4827,9 @@ fn jinja_no_conflict_markers2() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"extra != 'extra-7-project-cu118' and extra == 'extra-7-project-cu124'",
@ -4909,13 +4921,13 @@ fn jinja_no_conflict_markers2() -> Result<()> {
]
[package.metadata]
provides-extras = ["cu118", "cu124"]
requires-dist = [
{ name = "jinja2", marker = "sys_platform == 'darwin' and extra == 'cu118'", specifier = "==3.1.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu118", conflict = { package = "project", extra = "cu118" } },
{ name = "jinja2", marker = "sys_platform != 'darwin' and extra == 'cu118'", specifier = "==3.1.2" },
{ name = "jinja2", marker = "extra == 'cu124'", specifier = "==3.1.3", index = "https://astral-sh.github.io/pytorch-mirror/whl/cu124", conflict = { package = "project", extra = "cu124" } },
]
"#
provides-extras = ["cu118", "cu124"]
"###
);
});
@ -4976,8 +4988,9 @@ fn collision_extra() -> Result<()> {
}, {
assert_snapshot!(
lock,
@r#"
@r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "pkg", extra = "foo" },
@ -5039,13 +5052,13 @@ fn collision_extra() -> Result<()> {
]
[package.metadata]
provides-extras = ["foo", "bar", "extra-3-pkg-foo"]
requires-dist = [
{ name = "anyio" },
{ name = "idna", marker = "extra == 'bar'", specifier = "==3.6" },
{ name = "idna", marker = "extra == 'foo'", specifier = "==3.5" },
{ name = "sortedcontainers", marker = "extra == 'extra-3-pkg-foo'", specifier = ">=2" },
]
provides-extras = ["foo", "bar", "extra-3-pkg-foo"]
[[package]]
name = "sniffio"
@ -5064,7 +5077,7 @@ fn collision_extra() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 },
]
"#
"###
);
});
@ -5204,8 +5217,9 @@ fn extra_inferences() -> Result<()> {
}, {
assert_snapshot!(
lock,
@r#"
@r###"
version = 1
revision = 1
requires-python = ">=3.12"
conflicts = [[
{ package = "pkg", extra = "x1" },
@ -6576,12 +6590,12 @@ fn extra_inferences() -> Result<()> {
]
[package.metadata]
provides-extras = ["x1", "x2"]
requires-dist = [
{ name = "apache-airflow", marker = "extra == 'x1'", specifier = "==2.5.0" },
{ name = "apache-airflow", marker = "extra == 'x2'", specifier = "==2.6.0" },
{ name = "quickpath-airflow-operator", specifier = "==1.0.2" },
]
provides-extras = ["x1", "x2"]
[[package]]
name = "pluggy"
@ -7166,7 +7180,7 @@ fn extra_inferences() -> Result<()> {
{ url = "https://files.pythonhosted.org/packages/c5/f4/2fdc5a11503bc61818243653d836061c9ce0370e2dd9ac5917258a007675/yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984", size = 76397 },
{ url = "https://files.pythonhosted.org/packages/4d/05/4d79198ae568a92159de0f89e710a8d19e3fa267b719a236582eee921f4a/yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad", size = 31638 },
]
"#
"###
);
});
@ -7239,8 +7253,9 @@ fn deduplicate_resolution_markers() -> Result<()> {
}, {
assert_snapshot!(
lock,
@r#"
@r###"
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"sys_platform != 'linux' and extra != 'extra-3-pkg-x1' and extra == 'extra-3-pkg-x2'",
@ -7315,14 +7330,14 @@ fn deduplicate_resolution_markers() -> Result<()> {
]
[package.metadata]
provides-extras = ["x1", "x2"]
requires-dist = [
{ name = "idna", marker = "sys_platform == 'linux' and extra == 'x1'", specifier = "==3.6" },
{ name = "idna", marker = "sys_platform != 'linux' and extra == 'x1'", specifier = "==3.5" },
{ name = "markupsafe", marker = "sys_platform == 'linux' and extra == 'x2'", specifier = "==2.1.0" },
{ name = "markupsafe", marker = "sys_platform != 'linux' and extra == 'x2'", specifier = "==2.0.0" },
]
"#
provides-extras = ["x1", "x2"]
"###
);
});
@ -7392,8 +7407,9 @@ fn incorrect_extra_simplification_leads_to_multiple_torch_packages() -> Result<(
}, {
assert_snapshot!(
lock,
@r#"
@r###"
version = 1
revision = 1
requires-python = ">=3.10"
resolution-markers = [
"python_full_version >= '3.12' and sys_platform == 'win32' and extra != 'extra-4-test-chgnet' and extra == 'extra-4-test-m3gnet'",
@ -9734,7 +9750,6 @@ fn incorrect_extra_simplification_leads_to_multiple_torch_packages() -> Result<(
]
[package.metadata]
provides-extras = ["chgnet", "m3gnet"]
requires-dist = [
{ name = "chgnet", marker = "extra == 'chgnet'", specifier = "==0.4.0" },
{ name = "mace-torch", specifier = "==0.3.9" },
@ -9742,6 +9757,7 @@ fn incorrect_extra_simplification_leads_to_multiple_torch_packages() -> Result<(
{ name = "torch", marker = "extra == 'm3gnet'", specifier = "==2.2.1" },
{ name = "torchdata", marker = "extra == 'm3gnet'", specifier = "==0.7.1" },
]
provides-extras = ["chgnet", "m3gnet"]
[[package]]
name = "torch"
@ -10068,7 +10084,7 @@ fn incorrect_extra_simplification_leads_to_multiple_torch_packages() -> Result<(
{ url = "https://files.pythonhosted.org/packages/f5/d5/688db678e987c3e0fb17867970700b92603cadf36c56e5fb08f23e822a0c/yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c", size = 315723 },
{ url = "https://files.pythonhosted.org/packages/f5/4b/a06e0ec3d155924f77835ed2d167ebd3b211a7b0853da1cf8d8414d784ef/yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b", size = 45109 },
]
"#
"###
);
});
@ -10133,8 +10149,9 @@ fn overlapping_resolution_markers() -> Result<()> {
}, {
assert_snapshot!(
lock,
@r#"
@r###"
version = 1
revision = 1
requires-python = "==3.10.*"
resolution-markers = [
"sys_platform == 'linux' and extra != 'extra-14-ads-mega-model-cpu' and extra == 'extra-14-ads-mega-model-cu118'",
@ -10173,13 +10190,13 @@ fn overlapping_resolution_markers() -> Result<()> {
]
[package.metadata]
provides-extras = ["cpu", "cu118"]
requires-dist = [
{ name = "torch", marker = "sys_platform == 'darwin' and extra == 'cpu'", specifier = "==2.2.2" },
{ name = "torch", marker = "sys_platform != 'darwin' and extra == 'cpu'", specifier = "==2.2.2", index = "https://astral-sh.github.io/pytorch-mirror/whl/cpu", conflict = { package = "ads-mega-model", extra = "cpu" } },
{ name = "torch", marker = "extra == 'cu118'", specifier = "==2.2.2" },
{ name = "wandb", specifier = "==0.17.6" },
]
provides-extras = ["cpu", "cu118"]
[[package]]
name = "certifi"
@ -10743,7 +10760,7 @@ fn overlapping_resolution_markers() -> Result<()> {
{ url = "https://files.pythonhosted.org/packages/df/b9/1d26752a7c9ff5b255c921e13a9c5176e21a0b77e53d3febf892d90c86a5/wandb-0.17.6-py3-none-win32.whl", hash = "sha256:247b1c9677fd633a460201f421d4fd4f370e7243d06257fab0ad1bb728ddcc1c", size = 6504208 },
{ url = "https://files.pythonhosted.org/packages/fc/2c/280b8891362967e54de2267454ac6033568b8412ec31225f00ecc11db7a6/wandb-0.17.6-py3-none-win_amd64.whl", hash = "sha256:51954f993b372c20812616838302183f0e3abf137614f05d80c7c17c307bfff9", size = 6504213 },
]
"#
"###
);
});

View file

@ -121,8 +121,9 @@ fn wrong_backtracking_basic() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -135,7 +136,6 @@ fn wrong_backtracking_basic() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a" },
{ name = "package-b" },
@ -161,7 +161,7 @@ fn wrong_backtracking_basic() -> Result<()> {
wheels = [
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/wrong_backtracking_basic_b-2.0.9-py3-none-any.whl", hash = "sha256:bf96af1a69f8c1d1d9c2687cd5d6f023cda56dd77d3f37f3cdd422e2a410541f" },
]
"#
"###
);
});
@ -245,8 +245,9 @@ fn fork_allows_non_conflicting_non_overlapping_dependencies() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -272,12 +273,11 @@ fn fork_allows_non_conflicting_non_overlapping_dependencies() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=1" },
]
"#
"###
);
});
@ -363,8 +363,9 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -385,12 +386,11 @@ fn fork_allows_non_conflicting_repeated_dependencies() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", specifier = "<2" },
{ name = "package-a", specifier = ">=1" },
]
"#
"###
);
});
@ -463,8 +463,9 @@ fn fork_basic() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -506,12 +507,11 @@ fn fork_basic() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -749,8 +749,9 @@ fn fork_filter_sibling_dependencies() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'linux'",
@ -842,14 +843,13 @@ fn fork_filter_sibling_dependencies() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "==4.3.0" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = "==4.4.0" },
{ name = "package-b", marker = "sys_platform == 'linux'", specifier = "==1.0.0" },
{ name = "package-c", marker = "sys_platform == 'darwin'", specifier = "==1.0.0" },
]
"#
"###
);
});
@ -928,8 +928,9 @@ fn fork_upgrade() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -962,9 +963,8 @@ fn fork_upgrade() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-foo" }]
"#
"###
);
});
@ -1049,8 +1049,9 @@ fn fork_incomplete_markers() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"python_full_version >= '3.11'",
@ -1114,13 +1115,12 @@ fn fork_incomplete_markers() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "python_full_version < '3.10'", specifier = "==1" },
{ name = "package-a", marker = "python_full_version >= '3.11'", specifier = "==2" },
{ name = "package-b" },
]
"#
"###
);
});
@ -1203,8 +1203,9 @@ fn fork_marker_accrue() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -1250,12 +1251,11 @@ fn fork_marker_accrue() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "implementation_name == 'cpython'", specifier = "==1.0.0" },
{ name = "package-b", marker = "implementation_name == 'pypy'", specifier = "==1.0.0" },
]
"#
"###
);
});
@ -1407,8 +1407,9 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"implementation_name == 'pypy' and sys_platform == 'darwin'",
@ -1494,12 +1495,11 @@ fn fork_marker_inherit_combined_allowed() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -1588,8 +1588,9 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"implementation_name == 'pypy' and sys_platform == 'darwin'",
@ -1663,12 +1664,11 @@ fn fork_marker_inherit_combined_disallowed() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -1758,8 +1758,9 @@ fn fork_marker_inherit_combined() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"implementation_name == 'pypy' and sys_platform == 'darwin'",
@ -1833,12 +1834,11 @@ fn fork_marker_inherit_combined() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -1921,8 +1921,9 @@ fn fork_marker_inherit_isolated() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -1976,12 +1977,11 @@ fn fork_marker_inherit_isolated() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -2070,8 +2070,9 @@ fn fork_marker_inherit_transitive() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2137,12 +2138,11 @@ fn fork_marker_inherit_transitive() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -2227,8 +2227,9 @@ fn fork_marker_inherit() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2270,12 +2271,11 @@ fn fork_marker_inherit() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -2366,8 +2366,9 @@ fn fork_marker_limited_inherit() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2431,13 +2432,12 @@ fn fork_marker_limited_inherit() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'linux'", specifier = ">=2" },
{ name = "package-b" },
]
"#
"###
);
});
@ -2522,8 +2522,9 @@ fn fork_marker_selection() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2575,13 +2576,12 @@ fn fork_marker_selection() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a" },
{ name = "package-b", marker = "sys_platform == 'darwin'", specifier = "<2" },
{ name = "package-b", marker = "sys_platform == 'linux'", specifier = ">=2" },
]
"#
"###
);
});
@ -2678,8 +2678,9 @@ fn fork_marker_track() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'darwin'",
@ -2743,13 +2744,12 @@ fn fork_marker_track() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a" },
{ name = "package-b", marker = "sys_platform == 'darwin'", specifier = "<2.8" },
{ name = "package-b", marker = "sys_platform == 'linux'", specifier = ">=2.8" },
]
"#
"###
);
});
@ -2831,8 +2831,9 @@ fn fork_non_fork_marker_transitive() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -2878,12 +2879,11 @@ fn fork_non_fork_marker_transitive() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", specifier = "==1.0.0" },
{ name = "package-b", specifier = "==1.0.0" },
]
"#
"###
);
});
@ -3131,8 +3131,9 @@ fn fork_overlapping_markers_basic() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"python_full_version >= '3.11'",
@ -3158,13 +3159,12 @@ fn fork_overlapping_markers_basic() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "python_full_version < '3.10'", specifier = ">=1.0.0" },
{ name = "package-a", marker = "python_full_version >= '3.10'", specifier = ">=1.1.0" },
{ name = "package-a", marker = "python_full_version >= '3.11'", specifier = ">=1.2.0" },
]
"#
"###
);
});
@ -3299,8 +3299,9 @@ fn preferences_dependent_forking_bistable() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'linux'",
@ -3403,9 +3404,8 @@ fn preferences_dependent_forking_bistable() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-cleaver" }]
"#
"###
);
});
@ -3678,8 +3678,9 @@ fn preferences_dependent_forking_tristable() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'linux'",
@ -3826,13 +3827,12 @@ fn preferences_dependent_forking_tristable() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-bar" },
{ name = "package-cleaver" },
{ name = "package-foo" },
]
"#
"###
);
});
@ -3962,8 +3962,9 @@ fn preferences_dependent_forking() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"sys_platform == 'linux'",
@ -4028,13 +4029,12 @@ fn preferences_dependent_forking() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-bar" },
{ name = "package-cleaver" },
{ name = "package-foo" },
]
"#
"###
);
});
@ -4137,8 +4137,9 @@ fn fork_remaining_universe_partitioning() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"os_name == 'darwin' and sys_platform == 'illumos'",
@ -4212,12 +4213,11 @@ fn fork_remaining_universe_partitioning() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'illumos'", specifier = "<2" },
{ name = "package-a", marker = "sys_platform == 'windows'", specifier = ">=2" },
]
"#
"###
);
});
@ -4292,6 +4292,7 @@ fn fork_requires_python_full_prerelease() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.10"
[[package]]
@ -4300,7 +4301,6 @@ fn fork_requires_python_full_prerelease() -> Result<()> {
source = { virtual = "." }
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", marker = "python_full_version == '3.9'", specifier = "==1.0.0" }]
"###
);
@ -4377,6 +4377,7 @@ fn fork_requires_python_full() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.10"
[[package]]
@ -4385,7 +4386,6 @@ fn fork_requires_python_full() -> Result<()> {
source = { virtual = "." }
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", marker = "python_full_version == '3.9'", specifier = "==1.0.0" }]
"###
);
@ -4464,8 +4464,9 @@ fn fork_requires_python_patch_overlap() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.10.1"
[[package]]
@ -4486,9 +4487,8 @@ fn fork_requires_python_patch_overlap() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", marker = "python_full_version == '3.10.*'", specifier = "==1.0.0" }]
"#
"###
);
});
@ -4560,6 +4560,7 @@ fn fork_requires_python() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.10"
[[package]]
@ -4568,7 +4569,6 @@ fn fork_requires_python() -> Result<()> {
source = { virtual = "." }
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", marker = "python_full_version == '3.9.*'", specifier = "==1.0.0" }]
"###
);
@ -4639,8 +4639,9 @@ fn requires_python_wheels() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.10"
[[package]]
@ -4652,7 +4653,6 @@ fn requires_python_wheels() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", specifier = "==1.0.0" }]
[[package]]
@ -4664,7 +4664,7 @@ fn requires_python_wheels() -> Result<()> {
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/requires_python_wheels_a-1.0.0-cp310-cp310-any.whl", hash = "sha256:b979494a0d7dc825b84d6c516ac407143915f6d2840d229ee2a36b3d06deb61d" },
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/requires_python_wheels_a-1.0.0-cp311-cp311-any.whl", hash = "sha256:b979494a0d7dc825b84d6c516ac407143915f6d2840d229ee2a36b3d06deb61d" },
]
"#
"###
);
});
@ -4736,8 +4736,9 @@ fn unreachable_package() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -4749,7 +4750,6 @@ fn unreachable_package() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a", marker = "sys_platform == 'win32'", specifier = "==1.0.0" }]
[[package]]
@ -4760,7 +4760,7 @@ fn unreachable_package() -> Result<()> {
wheels = [
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/unreachable_package_a-1.0.0-py3-none-any.whl", hash = "sha256:cc472ded9f3b260e6cda0e633fa407a13607e190422cb455f02beebd32d6751f" },
]
"#
"###
);
});
@ -4838,8 +4838,9 @@ fn unreachable_wheels() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -4853,7 +4854,6 @@ fn unreachable_wheels() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "package-a", marker = "sys_platform == 'win32'", specifier = "==1.0.0" },
{ name = "package-b", marker = "sys_platform == 'linux'", specifier = "==1.0.0" },
@ -4887,7 +4887,7 @@ fn unreachable_wheels() -> Result<()> {
wheels = [
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/unreachable_wheels_c-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4b846c5b1646b04828a2bef6c9d180ff7cfd725866013dcec8933de7fb5f9e8d" },
]
"#
"###
);
});
@ -4967,8 +4967,9 @@ fn specific_architecture() -> Result<()> {
filters => filters,
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.8"
[[package]]
@ -4980,7 +4981,6 @@ fn specific_architecture() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package-a" }]
[[package]]
@ -5028,7 +5028,7 @@ fn specific_architecture() -> Result<()> {
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/specific_architecture_d-1.0.0-cp313-cp313-freebsd_13_x86_64.whl", hash = "sha256:842864c1348694fab33199eb05921602c2abfc77844a81085a55db02edd30da4" },
{ url = "https://astral-sh.github.io/packse/PACKSE_VERSION/files/specific_architecture_d-1.0.0-cp313-cp313-manylinux2010_i686.whl", hash = "sha256:842864c1348694fab33199eb05921602c2abfc77844a81085a55db02edd30da4" },
]
"#
"###
);
});

View file

@ -815,8 +815,9 @@ fn run_pep723_script_lock() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -833,7 +834,7 @@ fn run_pep723_script_lock() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
]
"#
"###
);
});
@ -925,6 +926,7 @@ fn run_pep723_script_lock() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -1728,8 +1730,9 @@ fn run_locked() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
existing, @r#"
existing, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1766,7 +1769,6 @@ fn run_locked() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "anyio", specifier = "==3.7.0" }]
[[package]]
@ -1777,7 +1779,7 @@ fn run_locked() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 },
]
"#);
"###);
}
);

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.8"
resolution-markers = [
"python_full_version >= '3.10' and implementation_name == 'pypy' and sys_platform == 'win32'",
@ -208,7 +209,6 @@ uvloop = [
]
[package.metadata]
provides-extras = ["colorama", "d", "jupyter", "uvloop"]
requires-dist = [
{ name = "aiohttp", marker = "implementation_name == 'pypy' and sys_platform == 'win32' and extra == 'd'", specifier = ">=3.7.4,!=3.9.0" },
{ name = "aiohttp", marker = "(implementation_name != 'pypy' and extra == 'd') or (sys_platform != 'win32' and extra == 'd')", specifier = ">=3.7.4" },
@ -224,6 +224,7 @@ requires-dist = [
{ name = "typing-extensions", marker = "python_full_version < '3.11'", specifier = ">=4.0.1" },
{ name = "uvloop", marker = "extra == 'uvloop'", specifier = ">=0.15.2" },
]
provides-extras = ["colorama", "d", "jupyter", "uvloop"]
[[package]]
name = "click"

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
resolution-markers = [
"python_full_version >= '3.13'",
@ -126,7 +127,6 @@ dev = [
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "cachecontrol", extras = ["filecache"], specifier = ">=0.14,<0.15" },
{ name = "mwparserfromhell", specifier = ">=0.6.4,<0.7" },

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12.[X]"
[options]
@ -663,7 +664,6 @@ dependencies = [
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "aiodns", specifier = "==3.2.0" },
{ name = "aiohttp", specifier = "==3.9.5" },

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -340,7 +341,6 @@ dev = [
]
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -352,6 +352,7 @@ requires-dist = [
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1864,7 +1865,6 @@ dependencies = [
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "adyen", specifier = ">=4.0.0,<5.0.0" },
{ name = "aniso8601", specifier = ">=7.0.0,<8.0.0" },

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.9.0"
resolution-markers = [
"python_full_version >= '3.13' and sys_platform == 'darwin'",
@ -5874,7 +5875,6 @@ dev = [
]
[package.metadata]
provides-extras = ["ja", "sklearn", "tf", "tf-cpu", "torch", "accelerate", "retrieval", "flax", "tokenizers", "ftfy", "onnxruntime", "onnx", "modelcreation", "sagemaker", "deepspeed", "optuna", "ray", "sigopt", "integrations", "serving", "audio", "speech", "torch-speech", "tf-speech", "flax-speech", "vision", "timm", "torch-vision", "codecarbon", "video", "sentencepiece", "deepspeed-testing", "quality", "all", "docs-specific", "docs", "torchhub", "agents"]
requires-dist = [
{ name = "accelerate", marker = "extra == 'accelerate'", specifier = ">=0.21.0" },
{ name = "accelerate", marker = "extra == 'agents'", specifier = ">=0.21.0" },
@ -6077,6 +6077,7 @@ requires-dist = [
{ name = "urllib3", marker = "extra == 'quality'", specifier = "<2.0.0" },
{ name = "uvicorn", marker = "extra == 'serving'" },
]
provides-extras = ["ja", "sklearn", "tf", "tf-cpu", "torch", "accelerate", "retrieval", "flax", "tokenizers", "ftfy", "onnxruntime", "onnx", "modelcreation", "sagemaker", "deepspeed", "optuna", "ray", "sigopt", "integrations", "serving", "audio", "speech", "torch-speech", "tf-speech", "flax-speech", "vision", "timm", "torch-vision", "codecarbon", "video", "sentencepiece", "deepspeed-testing", "quality", "all", "docs-specific", "docs", "torchhub", "agents"]
[package.metadata.requires-dev]
dev = [

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/ecosystem.rs
expression: lock
---
version = 1
revision = 1
requires-python = "==3.11.*"
[options]
@ -3957,7 +3958,6 @@ dev = [
]
[package.metadata]
provides-extras = ["deploy"]
requires-dist = [
{ name = "alembic", specifier = ">=0.7.0" },
{ name = "alembic-postgresql-enum" },
@ -4039,6 +4039,7 @@ requires-dist = [
{ name = "zope-sqlalchemy" },
{ name = "zxcvbn" },
]
provides-extras = ["deploy"]
[package.metadata.requires-dev]
dev = [

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/workflow.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.9.0"
resolution-markers = [
"python_full_version >= '3.12'",
@ -168,7 +169,6 @@ dependencies = [
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "jax", specifier = "==0.4.17" }]
[[package]]

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/workflow.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -336,7 +337,6 @@ dev = [
]
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -348,6 +348,7 @@ requires-dist = [
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/workflow.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -336,7 +337,6 @@ dev = [
]
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -348,6 +348,7 @@ requires-dist = [
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [

View file

@ -3,6 +3,7 @@ source: crates/uv/tests/it/workflow.rs
expression: lock
---
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -336,7 +337,6 @@ dev = [
]
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -348,6 +348,7 @@ requires-dist = [
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [

View file

@ -1074,8 +1074,9 @@ fn sync_relative_wheel() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1089,10 +1090,6 @@ fn sync_relative_wheel() -> Result<()> {
{ filename = "ok-1.0.0-py3-none-any.whl", hash = "sha256:79f0b33e6ce1e09eaa1784c8eee275dfe84d215d9c65c652f07c18e85fdaac5f" },
]
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "relative-wheel"
version = "0.1.0"
@ -1102,9 +1099,8 @@ fn sync_relative_wheel() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "ok", path = "wheels/ok-1.0.0-py3-none-any.whl" }]
"#
"###
);
}
);
@ -2463,8 +2459,9 @@ fn sync_group_legacy_non_project_member() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2490,7 +2487,6 @@ fn sync_group_legacy_non_project_member() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig", specifier = ">=1" }]
[[package]]
@ -2510,7 +2506,7 @@ fn sync_group_legacy_non_project_member() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926 },
]
"#
"###
);
});
@ -2574,8 +2570,9 @@ fn sync_group_self() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -2622,11 +2619,11 @@ fn sync_group_self() -> Result<()> {
]
[package.metadata]
provides-extras = ["test"]
requires-dist = [
{ name = "idna", marker = "extra == 'test'", specifier = ">=3" },
{ name = "iniconfig", specifier = ">=2" },
]
provides-extras = ["test"]
[package.metadata.requires-dev]
bar = [{ name = "project", extras = ["test"] }]
@ -2643,7 +2640,7 @@ fn sync_group_self() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926 },
]
"#
"###
);
});
@ -3360,8 +3357,9 @@ fn convert_to_virtual() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3385,9 +3383,8 @@ fn convert_to_virtual() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig" }]
"#
"###
);
});
@ -3420,8 +3417,9 @@ fn convert_to_virtual() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3445,9 +3443,8 @@ fn convert_to_virtual() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig" }]
"#
"###
);
});
@ -3489,8 +3486,9 @@ fn convert_to_package() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3514,9 +3512,8 @@ fn convert_to_package() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig" }]
"#
"###
);
});
@ -3554,8 +3551,9 @@ fn convert_to_package() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -3579,9 +3577,8 @@ fn convert_to_package() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "iniconfig" }]
"#
"###
);
});
@ -4972,8 +4969,9 @@ fn sync_dynamic_extra() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -5002,11 +5000,11 @@ fn sync_dynamic_extra() -> Result<()> {
]
[package.metadata]
provides-extras = ["dev"]
requires-dist = [
{ name = "iniconfig" },
{ name = "typing-extensions", marker = "extra == 'dev'" },
]
provides-extras = ["dev"]
[[package]]
name = "typing-extensions"
@ -5016,7 +5014,7 @@ fn sync_dynamic_extra() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926 },
]
"#
"###
);
}
);
@ -6315,8 +6313,9 @@ fn sync_stale_egg_info() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.13"
[options]
@ -6332,7 +6331,6 @@ fn sync_stale_egg_info() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "member", git = "https://github.com/astral-sh/uv-stale-egg-info-test.git?subdirectory=member" },
{ name = "root", git = "https://github.com/astral-sh/uv-stale-egg-info-test.git" },
@ -6362,7 +6360,7 @@ fn sync_stale_egg_info() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/92/e1/1c8bb3420105e70bdf357d57dd5567202b4ef8d27f810e98bb962d950834/setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c", size = 821485 },
]
"#
"###
);
}
);
@ -6422,8 +6420,9 @@ fn sync_git_repeated_member_static_metadata() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.13"
[options]
@ -6439,7 +6438,6 @@ fn sync_git_repeated_member_static_metadata() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "uv-git-workspace-in-root", git = "https://github.com/astral-sh/workspace-in-root-test.git" },
{ name = "workspace-member-in-subdir", git = "https://github.com/astral-sh/workspace-in-root-test.git?subdirectory=workspace-member-in-subdir" },
@ -6457,7 +6455,7 @@ fn sync_git_repeated_member_static_metadata() -> Result<()> {
dependencies = [
{ name = "uv-git-workspace-in-root" },
]
"#
"###
);
}
);
@ -6516,8 +6514,9 @@ fn sync_git_repeated_member_dynamic_metadata() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.13"
[options]
@ -6541,7 +6540,6 @@ fn sync_git_repeated_member_dynamic_metadata() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "dependency", git = "https://github.com/astral-sh/uv-dynamic-metadata-test.git?subdirectory=dependency" },
{ name = "package", git = "https://github.com/astral-sh/uv-dynamic-metadata-test.git" },
@ -6573,7 +6571,7 @@ fn sync_git_repeated_member_dynamic_metadata() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926 },
]
"#
"###
);
}
);
@ -6634,8 +6632,9 @@ fn sync_git_repeated_member_backwards_path() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.13"
[options]
@ -6656,7 +6655,6 @@ fn sync_git_repeated_member_backwards_path() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [
{ name = "dependency", git = "https://github.com/astral-sh/uv-backwards-path-test?subdirectory=dependency" },
{ name = "package", git = "https://github.com/astral-sh/uv-backwards-path-test?subdirectory=root" },
@ -6669,7 +6667,7 @@ fn sync_git_repeated_member_backwards_path() -> Result<()> {
dependencies = [
{ name = "dependency" },
]
"#
"###
);
}
);
@ -6816,8 +6814,9 @@ fn sync_git_path_dependency() -> Result<()> {
},
{
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.13"
[options]
@ -6832,7 +6831,6 @@ fn sync_git_path_dependency() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "package2", git = "https://github.com/astral-sh/uv-path-dependency-test.git?subdirectory=package2" }]
[[package]]
@ -6847,7 +6845,7 @@ fn sync_git_path_dependency() -> Result<()> {
dependencies = [
{ name = "package1" },
]
"#
"###
);
}
);
@ -6924,8 +6922,9 @@ fn sync_build_tag() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -6950,9 +6949,8 @@ fn sync_build_tag() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "build-tag" }]
"#
"###
);
});
@ -7477,6 +7475,7 @@ fn sync_locked_script() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -7581,6 +7580,7 @@ fn sync_locked_script() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]

View file

@ -1248,6 +1248,7 @@ fn script() -> Result<()> {
assert_snapshot!(
lock, @r#"
version = 1
revision = 1
requires-python = ">=3.11"
[options]
@ -1433,6 +1434,7 @@ fn script() -> Result<()> {
assert_snapshot!(
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.11"
[options]

View file

@ -35,7 +35,7 @@ fn packse_add_remove_one_package() {
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -306,20 +306,21 @@
@@ -307,20 +307,21 @@
name = "packse"
version = "0.0.0"
source = { editable = "." }
@ -58,7 +58,7 @@ fn packse_add_remove_one_package() {
{ name = "watchfiles" },
]
@@ -335,20 +336,21 @@
provides-extras = ["index", "serve"]
[package.metadata]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -71,6 +71,7 @@ fn packse_add_remove_one_package() {
+ { name = "tzdata", specifier = ">=2024.1" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [
@ -78,8 +79,7 @@ fn packse_add_remove_one_package() {
{ name = "pytest", specifier = ">=7.4.3" },
{ name = "syrupy", specifier = ">=4.6.0" },
]
@@ -600,20 +602,29 @@
@@ -601,20 +603,29 @@
{ name = "rfc3986" },
{ name = "rich" },
{ name = "urllib3" },
@ -123,7 +123,7 @@ fn packse_add_remove_one_package() {
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -306,21 +306,20 @@
@@ -307,21 +307,20 @@
name = "packse"
version = "0.0.0"
source = { editable = "." }
@ -146,7 +146,7 @@ fn packse_add_remove_one_package() {
{ name = "watchfiles" },
]
@@ -336,21 +335,20 @@
provides-extras = ["index", "serve"]
[package.metadata]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -159,6 +159,7 @@ fn packse_add_remove_one_package() {
- { name = "tzdata", specifier = ">=2024.1" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [
@ -166,8 +167,7 @@ fn packse_add_remove_one_package() {
{ name = "pytest", specifier = ">=7.4.3" },
{ name = "syrupy", specifier = ">=4.6.0" },
]
@@ -599,29 +597,20 @@
@@ -600,29 +598,20 @@
{ name = "readme-renderer" },
{ name = "requests" },
{ name = "requests-toolbelt" },
@ -277,7 +277,7 @@ fn packse_promote_transitive_to_direct_then_remove() {
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -305,20 +305,21 @@
@@ -306,20 +306,21 @@
[[package]]
name = "packse"
version = "0.0.0"
@ -300,8 +300,8 @@ fn packse_promote_transitive_to_direct_then_remove() {
{ name = "pypiserver" },
{ name = "watchfiles" },
@@ -334,20 +335,21 @@
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -314,13 +314,13 @@ fn packse_promote_transitive_to_direct_then_remove() {
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [
{ name = "psutil", specifier = ">=5.9.7" },
{ name = "pytest", specifier = ">=7.4.3" },
{ name = "syrupy", specifier = ">=4.6.0" },
]
"###);
});
@ -335,7 +335,7 @@ fn packse_promote_transitive_to_direct_then_remove() {
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -305,21 +305,20 @@
@@ -306,21 +306,20 @@
[[package]]
name = "packse"
version = "0.0.0"
@ -358,8 +358,8 @@ fn packse_promote_transitive_to_direct_then_remove() {
{ name = "pypiserver" },
{ name = "watchfiles" },
@@ -335,21 +334,20 @@
[package.metadata]
provides-extras = ["index", "serve"]
requires-dist = [
{ name = "chevron-blue", specifier = ">=0.2.1" },
{ name = "hatchling", specifier = ">=1.20.0" },
@ -372,13 +372,13 @@ fn packse_promote_transitive_to_direct_then_remove() {
{ name = "twine", specifier = ">=4.0.2" },
{ name = "watchfiles", marker = "extra == 'serve'", specifier = ">=0.21.0" },
]
provides-extras = ["index", "serve"]
[package.metadata.requires-dev]
dev = [
{ name = "psutil", specifier = ">=5.9.7" },
{ name = "pytest", specifier = ">=7.4.3" },
{ name = "syrupy", specifier = ">=4.6.0" },
]
"###);
});
@ -431,10 +431,10 @@ fn jax_instability() -> Result<()> {
insta::with_settings!({
filters => context.filters(),
}, {
assert_snapshot!(diff, @r#"
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -8,21 +8,21 @@
@@ -9,21 +9,21 @@
]
[options]
@ -457,7 +457,7 @@ fn jax_instability() -> Result<()> {
name = "jax"
version = "0.4.17"
source = { registry = "https://pypi.org/simple" }
@@ -149,29 +149,42 @@
@@ -150,28 +150,41 @@
{ url = "https://files.pythonhosted.org/packages/f3/31/91a2a3c5eb85d2bfa86d7c98f2df5d77dcdefb3d80ca9f9037ad04393acf/scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c", size = 45816713 },
{ url = "https://files.pythonhosted.org/packages/ed/be/49a3f999dc91f1a653847f38c34763dcdeaa8a327f3665bdfe9bf5555109/scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35", size = 38929252 },
{ url = "https://files.pythonhosted.org/packages/32/48/f605bad3e610efe05a51b56698578f7a98f900513a4bad2c9f12df845cd6/scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067", size = 31356374 },
@ -486,7 +486,6 @@ fn jax_instability() -> Result<()> {
]
[package.metadata]
provides-extras = []
-requires-dist = [{ name = "jax", specifier = "==0.4.17" }]
+requires-dist = [
+ { name = "jax", specifier = "==0.4.17" },
@ -501,7 +500,7 @@ fn jax_instability() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/0a/ba9d0ee9536d3ef73a3448e931776e658b36f128d344e175bc32b092a8bf/zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b", size = 8247 },
]
"#);
"###);
});
let diff = context.diff_lock(|context| {
@ -512,10 +511,10 @@ fn jax_instability() -> Result<()> {
insta::with_settings!({
filters => context.filters(),
}, {
assert_snapshot!(diff, @r#"
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -149,42 +149,29 @@
@@ -150,41 +150,28 @@
{ url = "https://files.pythonhosted.org/packages/f3/31/91a2a3c5eb85d2bfa86d7c98f2df5d77dcdefb3d80ca9f9037ad04393acf/scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c", size = 45816713 },
{ url = "https://files.pythonhosted.org/packages/ed/be/49a3f999dc91f1a653847f38c34763dcdeaa8a327f3665bdfe9bf5555109/scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35", size = 38929252 },
{ url = "https://files.pythonhosted.org/packages/32/48/f605bad3e610efe05a51b56698578f7a98f900513a4bad2c9f12df845cd6/scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067", size = 31356374 },
@ -544,7 +543,6 @@ fn jax_instability() -> Result<()> {
]
[package.metadata]
provides-extras = []
-requires-dist = [
- { name = "jax", specifier = "==0.4.17" },
- { name = "tzdata", specifier = ">=2024.1" },
@ -559,7 +557,7 @@ fn jax_instability() -> Result<()> {
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/0a/ba9d0ee9536d3ef73a3448e931776e658b36f128d344e175bc32b092a8bf/zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b", size = 8247 },
]
"#);
"###);
});
// Back to where we started.
@ -577,7 +575,7 @@ fn jax_instability() -> Result<()> {
assert_snapshot!(diff, @r###"
--- old
+++ new
@@ -8,21 +8,21 @@
@@ -9,21 +9,21 @@
]
[options]

View file

@ -1199,8 +1199,9 @@ fn workspace_inherit_sources() -> Result<()> {
filters => context.filters(),
}, {
assert_snapshot!(
lock, @r#"
lock, @r###"
version = 1
revision = 1
requires-python = ">=3.12"
[options]
@ -1221,7 +1222,6 @@ fn workspace_inherit_sources() -> Result<()> {
]
[package.metadata]
provides-extras = []
requires-dist = [{ name = "library", editable = "../library" }]
[[package]]
@ -1229,19 +1229,11 @@ fn workspace_inherit_sources() -> Result<()> {
version = "0.1.0"
source = { editable = "../library" }
[package.metadata]
provides-extras = []
requires-dist = []
[[package]]
name = "workspace"
version = "0.1.0"
source = { editable = "." }
[package.metadata]
provides-extras = []
requires-dist = []
"#
"###
);
});