[package]
name = "uv"
version = "0.6.8"
edition = { workspace = true }
rust-version = { workspace = true }
homepage = { workspace = true }
documentation = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
default-run = "uv"

[lints]
workspace = true

[dependencies]
uv-auth = { workspace = true }
uv-build-backend = { workspace = true }
uv-build-frontend = { workspace = true }
uv-cache = { workspace = true }
uv-cache-info = { workspace = true }
uv-cache-key = { workspace = true }
uv-cli = { workspace = true }
uv-client = { workspace = true }
uv-configuration = { workspace = true }
uv-console = { workspace = true }
uv-dirs = { workspace = true }
uv-dispatch = { workspace = true }
uv-distribution = { workspace = true }
uv-distribution-filename = { workspace = true }
uv-distribution-types = { workspace = true }
uv-extract = { workspace = true }
uv-fs = { workspace = true }
uv-git = { workspace = true }
uv-git-types = { workspace = true }
uv-install-wheel = { workspace = true, default-features = false }
uv-installer = { workspace = true }
uv-normalize = { workspace = true }
uv-pep440 = { workspace = true }
uv-pep508 = { workspace = true }
uv-performance-memory-allocator = { path = "../uv-performance-memory-allocator", optional = true }
uv-platform-tags = { workspace = true }
uv-publish = { workspace = true }
uv-pypi-types = { workspace = true }
uv-python = { workspace = true, features = ["schemars"] }
uv-requirements = { workspace = true }
uv-requirements-txt = { workspace = true }
uv-resolver = { workspace = true }
uv-scripts = { workspace = true }
uv-settings = { workspace = true, features = ["schemars"] }
uv-shell = { workspace = true }
uv-static = { workspace = true }
uv-tool = { workspace = true }
uv-trampoline-builder = { workspace = true }
uv-types = { workspace = true }
uv-version = { workspace = true }
uv-virtualenv = { workspace = true }
uv-warnings = { workspace = true }
uv-workspace = { workspace = true }

anstream = { workspace = true }
anyhow = { workspace = true }
axoupdater = { workspace = true, features = [
    "github_releases",
    "tokio",
], optional = true }
clap = { workspace = true, features = ["derive", "string", "wrap_help"] }
console = { workspace = true }
ctrlc = { workspace = true }
dotenvy = { workspace = true }
flate2 = { workspace = true, default-features = false }
fs-err = { workspace = true, features = ["tokio"] }
futures = { workspace = true }
http = { workspace = true }
indicatif = { workspace = true }
indoc = { workspace = true }
itertools = { workspace = true }
jiff = { workspace = true }
miette = { workspace = true, features = ["fancy-no-backtrace"] }
owo-colors = { workspace = true }
petgraph = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true }
rkyv = { workspace = true }
rustc-hash = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tempfile = { workspace = true }
textwrap = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
toml = { workspace = true }
toml_edit = { workspace = true }
tracing = { workspace = true }
tracing-durations-export = { workspace = true, features = ["plot"], optional = true }
tracing-subscriber = { workspace = true, features = ["json"] }
tracing-tree = { workspace = true }
unicode-width = { workspace = true }
url = { workspace = true }
version-ranges = { workspace = true }
walkdir = { workspace = true }
which = { workspace = true }
zip = { workspace = true }

[target.'cfg(target_os = "windows")'.dependencies]
self-replace = { workspace = true }

[dev-dependencies]
assert_cmd = { version = "2.0.16" }
assert_fs = { version = "1.1.2" }
base64 = { workspace = true }
byteorder = { version = "1.5.0" }
etcetera = { workspace = true }
filetime = { version = "0.2.25" }
flate2 = { workspace = true, default-features = false }
ignore = { version = "0.4.23" }
indoc = { workspace = true }
insta = { version = "1.40.0", features = ["filters", "json"] }
predicates = { version = "3.1.2" }
regex = { workspace = true }
reqwest = { workspace = true, features = ["blocking"], default-features = false }
similar = { version = "2.6.0" }
tar = { workspace = true }
tempfile = { workspace = true }
zip = { workspace = true }

[target.'cfg(unix)'.dependencies]
nix = { workspace = true }

[package.metadata.cargo-shear]
ignored = [
    "flate2",
    "uv-performance-memory-allocator",
]

[features]
default = ["python", "python-managed", "pypi", "git", "performance", "crates-io", "slow-tests", "test-ecosystem"]
# Use better memory allocators, etc.
performance = [
    "performance-memory-allocator",
    "uv-distribution/performance",
]
performance-memory-allocator = ["dep:uv-performance-memory-allocator"]
tracing-durations-export = ["dep:tracing-durations-export", "uv-resolver/tracing-durations-export"]

# Introduces a dependency on a local Python installation.
python = []
# Introduces a dependency on a local Python installation with specific patch versions.
python-patch = []
# Introduces a dependency on managed Python installations.
python-managed = []
# Introduces a dependency on PyPI.
pypi = []
# Introduces a dependency on Git.
git = []
# Introduces a dependency on crates.io.
crates-io = []
# Include "slow" test cases.
slow-tests = []
# Includes test cases that require ecosystem packages
test-ecosystem = []
# Adds self-update functionality.
self-update = ["axoupdater", "uv-cli/self-update"]
