[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "uv"
version = "0.11.19"
description = "An extremely fast Python package and project manager, written in Rust."
authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }]
requires-python = ">=3.8"
keywords = [
  "uv", "requirements", "packaging"
]
license="MIT OR Apache-2.0"
license-files = ["LICENSE-APACHE", "LICENSE-MIT"]
classifiers = [
  "Development Status :: 5 - Production/Stable",
  "Environment :: Console",
  "Intended Audience :: Developers",
  "Operating System :: OS Independent",
  "Programming Language :: Python",
  "Programming Language :: Python :: 3.8",
  "Programming Language :: Python :: 3.9",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: 3.14",
  "Programming Language :: Python :: 3.15",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Rust",
  "Topic :: Software Development :: Quality Assurance",
  "Topic :: Software Development :: Testing",
  "Topic :: Software Development :: Libraries",
]
readme = "README.md"

[project.urls]
Repository = "https://github.com/astral-sh/uv"
Documentation = "https://docs.astral.sh/uv"
Changelog = "https://github.com/astral-sh/uv/blob/main/CHANGELOG.md"
Releases = "https://github.com/astral-sh/uv/releases"
Discord = "https://discord.gg/astral-sh"

[tool.maturin]
bindings = "bin"
editable-profile = "dev"
manifest-path = "crates/uv/Cargo.toml"
module-name = "uv"
python-source = "python"
strip = true
include = [
    { path = "rust-toolchain.toml", format = "sdist" },
    # this one isn't discovered by maturin because it's behind a feature flag
    { path = "crates/uv-performance-memory-allocator/**/*", format = "sdist" },
    { path = "crates/uv-trampoline-builder/trampolines/*", format = "sdist" },
    # https://github.com/rust-lang/cargo/issues/5933
    { path = "LICENSE-APACHE", format = "sdist" },
    { path = "LICENSE-MIT", format = "sdist" },
]

[tool.rooster]
changelog-contributors = false  # We exclude contributors from the CHANGELOG file
major-labels = []  # We do not use the major version number yet
minor-labels = ["breaking"]
ignore-labels = ["internal", "ci", "testing"]
version_files = [
  "README.md",
  "pyproject.toml",
  "crates/uv/Cargo.toml",
  "crates/uv-version/Cargo.toml",
  "crates/uv-build/Cargo.toml",
  "crates/uv-build/pyproject.toml",
  { target = "crates/uv-static/src/env_vars.rs", replace = "next release" },
  "docs/getting-started/installation.md",
  "docs/guides/integration/docker.md",
  "docs/guides/integration/pre-commit.md",
  "docs/guides/integration/github.md",
  "docs/guides/integration/gitlab.md",
  "docs/guides/integration/aws-lambda.md",
  "docs/concepts/build-backend.md",
  "docs/concepts/projects/init.md",
  "docs/concepts/projects/workspaces.md",
  { target = "docs/reference/environment.md", replace = "next release" },
]

[tool.rooster.section-labels]
"Breaking changes" = ["breaking"]
"Enhancements" = ["enhancement", "compatibility", "error messages"]
"Preview features" = ["preview"]
"Configuration" = ["configuration"]
"Performance" = ["performance"]
"Bug fixes" = ["bug"]
"Rust API" = ["rustlib"]
"Documentation" = ["documentation"]
"Other changes" = ["__unknown__"]

[dependency-groups]
docs = [
  "black>=23.10.0",
  "mkdocs>=1.5.0",
  "mkdocs-material>=9.1.18",
  "mkdocs-redirects>=1.2.2",
  "mkdocs-git-revision-date-localized-plugin>=1.3.0",
  "mkdocs-llmstxt>=0.2.0",
  "mdformat>=0.7.17",
  "mdformat-mkdocs>=2.0.4",
  "mdformat-admon>=2.0.2",
]
docker = [
  "cargo-zigbuild>=0.19.8",
]

[tool.uv]
cache-keys = [
    { file = "pyproject.toml" },
    { file = "Cargo.toml" },
    { file = "Cargo.lock" },
    { file = "crates/**/*.rs" },
    { file = "crates/**/Cargo.toml" },
]

[tool.uv.dependency-groups]
docs = { requires-python = ">=3.12" }
docker = { requires-python = ">=3.12" }
