diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce6c94d63..7ecb956f6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,27 @@
+## 0.9.12
+
+Released on 2025-11-24.
+
+### Enhancements
+
+- Allow `--with-requirements` to load extensionless inline-metadata scripts ([#16744](https://github.com/astral-sh/uv/pull/16744))
+- Collect and upload PEP 740 attestations during `uv publish` ([#16731](https://github.com/astral-sh/uv/pull/16731))
+- Prevent `uv export` from overwriting `pyproject.toml` ([#16745](https://github.com/astral-sh/uv/pull/16745))
+
+### Documentation
+
+- Add a crates.io README for uv ([#16809](https://github.com/astral-sh/uv/pull/16809))
+- Add documentation for intermediate Docker layers in a workspace ([#16787](https://github.com/astral-sh/uv/pull/16787))
+- Enumerate workspace members in the uv crate README ([#16811](https://github.com/astral-sh/uv/pull/16811))
+- Fix documentation links for crates ([#16801](https://github.com/astral-sh/uv/pull/16801))
+- Generate a crates.io README for uv workspace members ([#16812](https://github.com/astral-sh/uv/pull/16812))
+- Move the "Export" guide to the projects concept section ([#16835](https://github.com/astral-sh/uv/pull/16835))
+- Update the cargo install recommendation to use crates ([#16800](https://github.com/astral-sh/uv/pull/16800))
+- Use the word "internal" in crate descriptions ([#16810](https://github.com/astral-sh/uv/pull/16810))
+
## 0.9.11
Released on 2025-11-20.
diff --git a/Cargo.lock b/Cargo.lock
index 2ff6067b5..bb6e2c15c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5378,7 +5378,7 @@ dependencies = [
[[package]]
name = "uv"
-version = "0.9.11"
+version = "0.9.12"
dependencies = [
"anstream",
"anyhow",
@@ -5496,7 +5496,7 @@ dependencies = [
[[package]]
name = "uv-auth"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"arcstr",
@@ -5539,7 +5539,7 @@ dependencies = [
[[package]]
name = "uv-bench"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"codspeed-criterion-compat",
@@ -5566,7 +5566,7 @@ dependencies = [
[[package]]
name = "uv-bin-install"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"astral-reqwest-middleware",
"astral-reqwest-retry",
@@ -5590,7 +5590,7 @@ dependencies = [
[[package]]
name = "uv-build"
-version = "0.9.11"
+version = "0.9.12"
dependencies = [
"anstream",
"anyhow",
@@ -5602,7 +5602,7 @@ dependencies = [
[[package]]
name = "uv-build-backend"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"astral-version-ranges",
"base64 0.22.1",
@@ -5642,7 +5642,7 @@ dependencies = [
[[package]]
name = "uv-build-frontend"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anstream",
"fs-err",
@@ -5679,7 +5679,7 @@ dependencies = [
[[package]]
name = "uv-cache"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"clap",
"fs-err",
@@ -5704,7 +5704,7 @@ dependencies = [
[[package]]
name = "uv-cache-info"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"fs-err",
@@ -5721,7 +5721,7 @@ dependencies = [
[[package]]
name = "uv-cache-key"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"hex",
"memchr",
@@ -5733,7 +5733,7 @@ dependencies = [
[[package]]
name = "uv-cli"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anstream",
"anyhow",
@@ -5765,7 +5765,7 @@ dependencies = [
[[package]]
name = "uv-client"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"astral-reqwest-middleware",
@@ -5828,7 +5828,7 @@ dependencies = [
[[package]]
name = "uv-configuration"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"clap",
@@ -5857,14 +5857,14 @@ dependencies = [
[[package]]
name = "uv-console"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"console 0.16.1",
]
[[package]]
name = "uv-dev"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anstream",
"anyhow",
@@ -5913,7 +5913,7 @@ dependencies = [
[[package]]
name = "uv-dirs"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"assert_fs",
"etcetera",
@@ -5925,7 +5925,7 @@ dependencies = [
[[package]]
name = "uv-dispatch"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"futures",
@@ -5957,7 +5957,7 @@ dependencies = [
[[package]]
name = "uv-distribution"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"astral-reqwest-middleware",
@@ -6005,7 +6005,7 @@ dependencies = [
[[package]]
name = "uv-distribution-filename"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"insta",
"memchr",
@@ -6022,7 +6022,7 @@ dependencies = [
[[package]]
name = "uv-distribution-types"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"arcstr",
"astral-version-ranges",
@@ -6062,7 +6062,7 @@ dependencies = [
[[package]]
name = "uv-extract"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"astral-tokio-tar",
"astral_async_zip",
@@ -6092,14 +6092,14 @@ dependencies = [
[[package]]
name = "uv-flags"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"bitflags 2.9.4",
]
[[package]]
name = "uv-fs"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"backon",
"dunce",
@@ -6121,7 +6121,7 @@ dependencies = [
[[package]]
name = "uv-git"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"astral-reqwest-middleware",
@@ -6145,7 +6145,7 @@ dependencies = [
[[package]]
name = "uv-git-types"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"serde",
"thiserror 2.0.17",
@@ -6156,7 +6156,7 @@ dependencies = [
[[package]]
name = "uv-globfilter"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anstream",
"fs-err",
@@ -6173,7 +6173,7 @@ dependencies = [
[[package]]
name = "uv-install-wheel"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"assert_fs",
@@ -6213,7 +6213,7 @@ dependencies = [
[[package]]
name = "uv-installer"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"async-channel",
@@ -6254,7 +6254,7 @@ dependencies = [
[[package]]
name = "uv-keyring"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"async-trait",
"byteorder",
@@ -6271,7 +6271,7 @@ dependencies = [
[[package]]
name = "uv-logging"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"jiff",
"owo-colors",
@@ -6281,7 +6281,7 @@ dependencies = [
[[package]]
name = "uv-macros"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"proc-macro2",
"quote",
@@ -6291,7 +6291,7 @@ dependencies = [
[[package]]
name = "uv-metadata"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"astral_async_zip",
"fs-err",
@@ -6308,7 +6308,7 @@ dependencies = [
[[package]]
name = "uv-normalize"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"rkyv",
"schemars",
@@ -6318,7 +6318,7 @@ dependencies = [
[[package]]
name = "uv-once-map"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"dashmap",
"futures",
@@ -6327,14 +6327,14 @@ dependencies = [
[[package]]
name = "uv-options-metadata"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"serde",
]
[[package]]
name = "uv-pep440"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"astral-version-ranges",
"indoc",
@@ -6348,7 +6348,7 @@ dependencies = [
[[package]]
name = "uv-pep508"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"arcstr",
"astral-version-ranges",
@@ -6377,7 +6377,7 @@ dependencies = [
[[package]]
name = "uv-performance-memory-allocator"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"mimalloc",
"tikv-jemallocator",
@@ -6385,7 +6385,7 @@ dependencies = [
[[package]]
name = "uv-platform"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"fs-err",
"goblin",
@@ -6402,7 +6402,7 @@ dependencies = [
[[package]]
name = "uv-platform-tags"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"insta",
"memchr",
@@ -6415,7 +6415,7 @@ dependencies = [
[[package]]
name = "uv-preview"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"bitflags 2.9.4",
"thiserror 2.0.17",
@@ -6424,7 +6424,7 @@ dependencies = [
[[package]]
name = "uv-publish"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"ambient-id",
"astral-reqwest-middleware",
@@ -6464,7 +6464,7 @@ dependencies = [
[[package]]
name = "uv-pypi-types"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"hashbrown 0.16.1",
@@ -6496,7 +6496,7 @@ dependencies = [
[[package]]
name = "uv-python"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"assert_fs",
@@ -6558,7 +6558,7 @@ dependencies = [
[[package]]
name = "uv-redacted"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"ref-cast",
"schemars",
@@ -6569,7 +6569,7 @@ dependencies = [
[[package]]
name = "uv-requirements"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"configparser",
@@ -6604,7 +6604,7 @@ dependencies = [
[[package]]
name = "uv-requirements-txt"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"assert_fs",
@@ -6637,7 +6637,7 @@ dependencies = [
[[package]]
name = "uv-resolver"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"arcstr",
"astral-pubgrub",
@@ -6702,7 +6702,7 @@ dependencies = [
[[package]]
name = "uv-scripts"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"fs-err",
"indoc",
@@ -6726,7 +6726,7 @@ dependencies = [
[[package]]
name = "uv-settings"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"clap",
"fs-err",
@@ -6761,7 +6761,7 @@ dependencies = [
[[package]]
name = "uv-shell"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"fs-err",
@@ -6777,7 +6777,7 @@ dependencies = [
[[package]]
name = "uv-small-str"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"arcstr",
"rkyv",
@@ -6787,7 +6787,7 @@ dependencies = [
[[package]]
name = "uv-state"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"fs-err",
"tempfile",
@@ -6796,14 +6796,14 @@ dependencies = [
[[package]]
name = "uv-static"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"uv-macros",
]
[[package]]
name = "uv-tool"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"fs-err",
"pathdiff",
@@ -6832,7 +6832,7 @@ dependencies = [
[[package]]
name = "uv-torch"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"clap",
"either",
@@ -6852,7 +6852,7 @@ dependencies = [
[[package]]
name = "uv-trampoline-builder"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"assert_cmd",
@@ -6869,7 +6869,7 @@ dependencies = [
[[package]]
name = "uv-types"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"dashmap",
@@ -6891,11 +6891,11 @@ dependencies = [
[[package]]
name = "uv-version"
-version = "0.9.11"
+version = "0.9.12"
[[package]]
name = "uv-virtualenv"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"console 0.16.1",
"fs-err",
@@ -6917,7 +6917,7 @@ dependencies = [
[[package]]
name = "uv-warnings"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anstream",
"owo-colors",
@@ -6926,7 +6926,7 @@ dependencies = [
[[package]]
name = "uv-workspace"
-version = "0.0.1"
+version = "0.0.2"
dependencies = [
"anyhow",
"assert_fs",
diff --git a/Cargo.toml b/Cargo.toml
index f455d579b..af6a8227e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,64 +16,64 @@ authors = ["uv"]
license = "MIT OR Apache-2.0"
[workspace.dependencies]
-uv-auth = { version = "0.0.1", path = "crates/uv-auth" }
-uv-bin-install = { version = "0.0.1", path = "crates/uv-bin-install" }
-uv-build-backend = { version = "0.0.1", path = "crates/uv-build-backend" }
-uv-build-frontend = { version = "0.0.1", path = "crates/uv-build-frontend" }
-uv-cache = { version = "0.0.1", path = "crates/uv-cache" }
-uv-cache-info = { version = "0.0.1", path = "crates/uv-cache-info" }
-uv-cache-key = { version = "0.0.1", path = "crates/uv-cache-key" }
-uv-cli = { version = "0.0.1", path = "crates/uv-cli" }
-uv-client = { version = "0.0.1", path = "crates/uv-client" }
-uv-configuration = { version = "0.0.1", path = "crates/uv-configuration" }
-uv-console = { version = "0.0.1", path = "crates/uv-console" }
-uv-dirs = { version = "0.0.1", path = "crates/uv-dirs" }
-uv-dispatch = { version = "0.0.1", path = "crates/uv-dispatch" }
-uv-distribution = { version = "0.0.1", path = "crates/uv-distribution" }
-uv-distribution-filename = { version = "0.0.1", path = "crates/uv-distribution-filename" }
-uv-distribution-types = { version = "0.0.1", path = "crates/uv-distribution-types" }
-uv-extract = { version = "0.0.1", path = "crates/uv-extract" }
-uv-flags = { version = "0.0.1", path = "crates/uv-flags" }
-uv-fs = { version = "0.0.1", path = "crates/uv-fs", features = ["serde", "tokio"] }
-uv-git = { version = "0.0.1", path = "crates/uv-git" }
-uv-git-types = { version = "0.0.1", path = "crates/uv-git-types" }
-uv-globfilter = { version = "0.0.1", path = "crates/uv-globfilter" }
-uv-install-wheel = { version = "0.0.1", path = "crates/uv-install-wheel", default-features = false }
-uv-installer = { version = "0.0.1", path = "crates/uv-installer" }
-uv-keyring = { version = "0.0.1", path = "crates/uv-keyring" }
-uv-logging = { version = "0.0.1", path = "crates/uv-logging" }
-uv-macros = { version = "0.0.1", path = "crates/uv-macros" }
-uv-metadata = { version = "0.0.1", path = "crates/uv-metadata" }
-uv-normalize = { version = "0.0.1", path = "crates/uv-normalize" }
-uv-once-map = { version = "0.0.1", path = "crates/uv-once-map" }
-uv-options-metadata = { version = "0.0.1", path = "crates/uv-options-metadata" }
-uv-performance-memory-allocator = { version = "0.0.1", path = "crates/uv-performance-memory-allocator" }
-uv-pep440 = { version = "0.0.1", path = "crates/uv-pep440", features = ["tracing", "rkyv", "version-ranges"] }
-uv-pep508 = { version = "0.0.1", path = "crates/uv-pep508", features = ["non-pep508-extensions"] }
-uv-platform = { version = "0.0.1", path = "crates/uv-platform" }
-uv-platform-tags = { version = "0.0.1", path = "crates/uv-platform-tags" }
-uv-preview = { version = "0.0.1", path = "crates/uv-preview" }
-uv-publish = { version = "0.0.1", path = "crates/uv-publish" }
-uv-pypi-types = { version = "0.0.1", path = "crates/uv-pypi-types" }
-uv-python = { version = "0.0.1", path = "crates/uv-python" }
-uv-redacted = { version = "0.0.1", path = "crates/uv-redacted" }
-uv-requirements = { version = "0.0.1", path = "crates/uv-requirements" }
-uv-requirements-txt = { version = "0.0.1", path = "crates/uv-requirements-txt" }
-uv-resolver = { version = "0.0.1", path = "crates/uv-resolver" }
-uv-scripts = { version = "0.0.1", path = "crates/uv-scripts" }
-uv-settings = { version = "0.0.1", path = "crates/uv-settings" }
-uv-shell = { version = "0.0.1", path = "crates/uv-shell" }
-uv-small-str = { version = "0.0.1", path = "crates/uv-small-str" }
-uv-state = { version = "0.0.1", path = "crates/uv-state" }
-uv-static = { version = "0.0.1", path = "crates/uv-static" }
-uv-tool = { version = "0.0.1", path = "crates/uv-tool" }
-uv-torch = { version = "0.0.1", path = "crates/uv-torch" }
-uv-trampoline-builder = { version = "0.0.1", path = "crates/uv-trampoline-builder" }
-uv-types = { version = "0.0.1", path = "crates/uv-types" }
-uv-version = { version = "0.9.11", path = "crates/uv-version" }
-uv-virtualenv = { version = "0.0.1", path = "crates/uv-virtualenv" }
-uv-warnings = { version = "0.0.1", path = "crates/uv-warnings" }
-uv-workspace = { version = "0.0.1", path = "crates/uv-workspace" }
+uv-auth = { version = "0.0.2", path = "crates/uv-auth" }
+uv-bin-install = { version = "0.0.2", path = "crates/uv-bin-install" }
+uv-build-backend = { version = "0.0.2", path = "crates/uv-build-backend" }
+uv-build-frontend = { version = "0.0.2", path = "crates/uv-build-frontend" }
+uv-cache = { version = "0.0.2", path = "crates/uv-cache" }
+uv-cache-info = { version = "0.0.2", path = "crates/uv-cache-info" }
+uv-cache-key = { version = "0.0.2", path = "crates/uv-cache-key" }
+uv-cli = { version = "0.0.2", path = "crates/uv-cli" }
+uv-client = { version = "0.0.2", path = "crates/uv-client" }
+uv-configuration = { version = "0.0.2", path = "crates/uv-configuration" }
+uv-console = { version = "0.0.2", path = "crates/uv-console" }
+uv-dirs = { version = "0.0.2", path = "crates/uv-dirs" }
+uv-dispatch = { version = "0.0.2", path = "crates/uv-dispatch" }
+uv-distribution = { version = "0.0.2", path = "crates/uv-distribution" }
+uv-distribution-filename = { version = "0.0.2", path = "crates/uv-distribution-filename" }
+uv-distribution-types = { version = "0.0.2", path = "crates/uv-distribution-types" }
+uv-extract = { version = "0.0.2", path = "crates/uv-extract" }
+uv-flags = { version = "0.0.2", path = "crates/uv-flags" }
+uv-fs = { version = "0.0.2", path = "crates/uv-fs", features = ["serde", "tokio"] }
+uv-git = { version = "0.0.2", path = "crates/uv-git" }
+uv-git-types = { version = "0.0.2", path = "crates/uv-git-types" }
+uv-globfilter = { version = "0.0.2", path = "crates/uv-globfilter" }
+uv-install-wheel = { version = "0.0.2", path = "crates/uv-install-wheel", default-features = false }
+uv-installer = { version = "0.0.2", path = "crates/uv-installer" }
+uv-keyring = { version = "0.0.2", path = "crates/uv-keyring" }
+uv-logging = { version = "0.0.2", path = "crates/uv-logging" }
+uv-macros = { version = "0.0.2", path = "crates/uv-macros" }
+uv-metadata = { version = "0.0.2", path = "crates/uv-metadata" }
+uv-normalize = { version = "0.0.2", path = "crates/uv-normalize" }
+uv-once-map = { version = "0.0.2", path = "crates/uv-once-map" }
+uv-options-metadata = { version = "0.0.2", path = "crates/uv-options-metadata" }
+uv-performance-memory-allocator = { version = "0.0.2", path = "crates/uv-performance-memory-allocator" }
+uv-pep440 = { version = "0.0.2", path = "crates/uv-pep440", features = ["tracing", "rkyv", "version-ranges"] }
+uv-pep508 = { version = "0.0.2", path = "crates/uv-pep508", features = ["non-pep508-extensions"] }
+uv-platform = { version = "0.0.2", path = "crates/uv-platform" }
+uv-platform-tags = { version = "0.0.2", path = "crates/uv-platform-tags" }
+uv-preview = { version = "0.0.2", path = "crates/uv-preview" }
+uv-publish = { version = "0.0.2", path = "crates/uv-publish" }
+uv-pypi-types = { version = "0.0.2", path = "crates/uv-pypi-types" }
+uv-python = { version = "0.0.2", path = "crates/uv-python" }
+uv-redacted = { version = "0.0.2", path = "crates/uv-redacted" }
+uv-requirements = { version = "0.0.2", path = "crates/uv-requirements" }
+uv-requirements-txt = { version = "0.0.2", path = "crates/uv-requirements-txt" }
+uv-resolver = { version = "0.0.2", path = "crates/uv-resolver" }
+uv-scripts = { version = "0.0.2", path = "crates/uv-scripts" }
+uv-settings = { version = "0.0.2", path = "crates/uv-settings" }
+uv-shell = { version = "0.0.2", path = "crates/uv-shell" }
+uv-small-str = { version = "0.0.2", path = "crates/uv-small-str" }
+uv-state = { version = "0.0.2", path = "crates/uv-state" }
+uv-static = { version = "0.0.2", path = "crates/uv-static" }
+uv-tool = { version = "0.0.2", path = "crates/uv-tool" }
+uv-torch = { version = "0.0.2", path = "crates/uv-torch" }
+uv-trampoline-builder = { version = "0.0.2", path = "crates/uv-trampoline-builder" }
+uv-types = { version = "0.0.2", path = "crates/uv-types" }
+uv-version = { version = "0.9.12", path = "crates/uv-version" }
+uv-virtualenv = { version = "0.0.2", path = "crates/uv-virtualenv" }
+uv-warnings = { version = "0.0.2", path = "crates/uv-warnings" }
+uv-workspace = { version = "0.0.2", path = "crates/uv-workspace" }
ambient-id = { version = "0.0.6", default-features = false, features = ["astral-reqwest-middleware"] }
anstream = { version = "0.6.15" }
diff --git a/crates/uv-auth/Cargo.toml b/crates/uv-auth/Cargo.toml
index 513134365..5f26fc1a0 100644
--- a/crates/uv-auth/Cargo.toml
+++ b/crates/uv-auth/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-auth"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-bench/Cargo.toml b/crates/uv-bench/Cargo.toml
index 6996fde3e..06906568c 100644
--- a/crates/uv-bench/Cargo.toml
+++ b/crates/uv-bench/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-bench"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
publish = false
authors = { workspace = true }
diff --git a/crates/uv-bin-install/Cargo.toml b/crates/uv-bin-install/Cargo.toml
index f909e65f0..a622aafe6 100644
--- a/crates/uv-bin-install/Cargo.toml
+++ b/crates/uv-bin-install/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-bin-install"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-build-backend/Cargo.toml b/crates/uv-build-backend/Cargo.toml
index 2103d36a8..614f8bd23 100644
--- a/crates/uv-build-backend/Cargo.toml
+++ b/crates/uv-build-backend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-build-backend"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-build-frontend/Cargo.toml b/crates/uv-build-frontend/Cargo.toml
index c381e0875..aca33dbae 100644
--- a/crates/uv-build-frontend/Cargo.toml
+++ b/crates/uv-build-frontend/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-build-frontend"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-build/Cargo.toml b/crates/uv-build/Cargo.toml
index 551504094..62c907db3 100644
--- a/crates/uv-build/Cargo.toml
+++ b/crates/uv-build/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-build"
-version = "0.9.11"
+version = "0.9.12"
description = "A Python build backend"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-build/pyproject.toml b/crates/uv-build/pyproject.toml
index d870ead7f..01d485e82 100644
--- a/crates/uv-build/pyproject.toml
+++ b/crates/uv-build/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "uv-build"
-version = "0.9.11"
+version = "0.9.12"
description = "The uv build backend"
authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }]
requires-python = ">=3.8"
diff --git a/crates/uv-cache-info/Cargo.toml b/crates/uv-cache-info/Cargo.toml
index 9586ee8c0..6463ec8af 100644
--- a/crates/uv-cache-info/Cargo.toml
+++ b/crates/uv-cache-info/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-cache-info"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-cache-key/Cargo.toml b/crates/uv-cache-key/Cargo.toml
index 5c01cbc16..8c758950b 100644
--- a/crates/uv-cache-key/Cargo.toml
+++ b/crates/uv-cache-key/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-cache-key"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-cache/Cargo.toml b/crates/uv-cache/Cargo.toml
index 776a63825..8f9c6567c 100644
--- a/crates/uv-cache/Cargo.toml
+++ b/crates/uv-cache/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-cache"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-cli/Cargo.toml b/crates/uv-cli/Cargo.toml
index 0b67546eb..5a68361fd 100644
--- a/crates/uv-cli/Cargo.toml
+++ b/crates/uv-cli/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-cli"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-client/Cargo.toml b/crates/uv-client/Cargo.toml
index 6135caf73..bbd6e5898 100644
--- a/crates/uv-client/Cargo.toml
+++ b/crates/uv-client/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-client"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-configuration/Cargo.toml b/crates/uv-configuration/Cargo.toml
index 2c7157a89..39d75a739 100644
--- a/crates/uv-configuration/Cargo.toml
+++ b/crates/uv-configuration/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-configuration"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-console/Cargo.toml b/crates/uv-console/Cargo.toml
index 1e9d53197..abf154810 100644
--- a/crates/uv-console/Cargo.toml
+++ b/crates/uv-console/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-console"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-dev/Cargo.toml b/crates/uv-dev/Cargo.toml
index 188833d05..efab98466 100644
--- a/crates/uv-dev/Cargo.toml
+++ b/crates/uv-dev/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-dev"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
publish = false
diff --git a/crates/uv-dirs/Cargo.toml b/crates/uv-dirs/Cargo.toml
index 8e3bf54d0..b18f11935 100644
--- a/crates/uv-dirs/Cargo.toml
+++ b/crates/uv-dirs/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-dirs"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-dispatch/Cargo.toml b/crates/uv-dispatch/Cargo.toml
index cdc0f4d24..a0115445c 100644
--- a/crates/uv-dispatch/Cargo.toml
+++ b/crates/uv-dispatch/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-dispatch"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-distribution-filename/Cargo.toml b/crates/uv-distribution-filename/Cargo.toml
index 7b4e234f9..0e2f53cd3 100644
--- a/crates/uv-distribution-filename/Cargo.toml
+++ b/crates/uv-distribution-filename/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-distribution-filename"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-distribution-types/Cargo.toml b/crates/uv-distribution-types/Cargo.toml
index 18d731917..68758ee13 100644
--- a/crates/uv-distribution-types/Cargo.toml
+++ b/crates/uv-distribution-types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-distribution-types"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-distribution/Cargo.toml b/crates/uv-distribution/Cargo.toml
index 021cd8021..db7c9b249 100644
--- a/crates/uv-distribution/Cargo.toml
+++ b/crates/uv-distribution/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-distribution"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-extract/Cargo.toml b/crates/uv-extract/Cargo.toml
index 8011c8f81..ac2a3afc4 100644
--- a/crates/uv-extract/Cargo.toml
+++ b/crates/uv-extract/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-extract"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-flags/Cargo.toml b/crates/uv-flags/Cargo.toml
index 26eb36ecb..b4a9f3ca0 100644
--- a/crates/uv-flags/Cargo.toml
+++ b/crates/uv-flags/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-flags"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-fs/Cargo.toml b/crates/uv-fs/Cargo.toml
index 8c577c285..8bad22443 100644
--- a/crates/uv-fs/Cargo.toml
+++ b/crates/uv-fs/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-fs"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-git-types/Cargo.toml b/crates/uv-git-types/Cargo.toml
index 755ddf341..dc3c7e461 100644
--- a/crates/uv-git-types/Cargo.toml
+++ b/crates/uv-git-types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-git-types"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-git/Cargo.toml b/crates/uv-git/Cargo.toml
index 7e96715a3..fa501fc50 100644
--- a/crates/uv-git/Cargo.toml
+++ b/crates/uv-git/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-git"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-globfilter/Cargo.toml b/crates/uv-globfilter/Cargo.toml
index 1d435b98c..b376168fa 100644
--- a/crates/uv-globfilter/Cargo.toml
+++ b/crates/uv-globfilter/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-globfilter"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
readme = "README.md"
edition = { workspace = true }
diff --git a/crates/uv-install-wheel/Cargo.toml b/crates/uv-install-wheel/Cargo.toml
index 895c3fc5b..5effa9027 100644
--- a/crates/uv-install-wheel/Cargo.toml
+++ b/crates/uv-install-wheel/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-install-wheel"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
keywords = ["wheel", "python"]
diff --git a/crates/uv-installer/Cargo.toml b/crates/uv-installer/Cargo.toml
index 2702d9dd4..ac163926d 100644
--- a/crates/uv-installer/Cargo.toml
+++ b/crates/uv-installer/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-installer"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-keyring/Cargo.toml b/crates/uv-keyring/Cargo.toml
index f5ecb3aa6..b522d3b79 100644
--- a/crates/uv-keyring/Cargo.toml
+++ b/crates/uv-keyring/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-keyring"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-logging/Cargo.toml b/crates/uv-logging/Cargo.toml
index a824e64b8..ce3fb871e 100644
--- a/crates/uv-logging/Cargo.toml
+++ b/crates/uv-logging/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-logging"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-macros/Cargo.toml b/crates/uv-macros/Cargo.toml
index 2f3ef968c..a991331f3 100644
--- a/crates/uv-macros/Cargo.toml
+++ b/crates/uv-macros/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-macros"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-metadata/Cargo.toml b/crates/uv-metadata/Cargo.toml
index 7a017a108..5b443ad0c 100644
--- a/crates/uv-metadata/Cargo.toml
+++ b/crates/uv-metadata/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-metadata"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-normalize/Cargo.toml b/crates/uv-normalize/Cargo.toml
index 79e2c6d21..f61257c38 100644
--- a/crates/uv-normalize/Cargo.toml
+++ b/crates/uv-normalize/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-normalize"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-once-map/Cargo.toml b/crates/uv-once-map/Cargo.toml
index 7ea749e22..5a59b8aff 100644
--- a/crates/uv-once-map/Cargo.toml
+++ b/crates/uv-once-map/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-once-map"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-options-metadata/Cargo.toml b/crates/uv-options-metadata/Cargo.toml
index 5b20aba78..44fd6bf57 100644
--- a/crates/uv-options-metadata/Cargo.toml
+++ b/crates/uv-options-metadata/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-options-metadata"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-pep440/Cargo.toml b/crates/uv-pep440/Cargo.toml
index a40ad82b1..d23957a96 100644
--- a/crates/uv-pep440/Cargo.toml
+++ b/crates/uv-pep440/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-pep440"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
license = "Apache-2.0 OR BSD-2-Clause"
include = ["/src", "Changelog.md", "License-Apache", "License-BSD", "Readme.md", "pyproject.toml"]
diff --git a/crates/uv-pep508/Cargo.toml b/crates/uv-pep508/Cargo.toml
index 0e417c684..308bb7b47 100644
--- a/crates/uv-pep508/Cargo.toml
+++ b/crates/uv-pep508/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-pep508"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
include = ["/src", "Changelog.md", "License-Apache", "License-BSD", "Readme.md", "pyproject.toml"]
license = "Apache-2.0 OR BSD-2-Clause"
diff --git a/crates/uv-performance-memory-allocator/Cargo.toml b/crates/uv-performance-memory-allocator/Cargo.toml
index 2df4ac784..c90422ce8 100644
--- a/crates/uv-performance-memory-allocator/Cargo.toml
+++ b/crates/uv-performance-memory-allocator/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-performance-memory-allocator"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-platform-tags/Cargo.toml b/crates/uv-platform-tags/Cargo.toml
index ac7940e20..58487d769 100644
--- a/crates/uv-platform-tags/Cargo.toml
+++ b/crates/uv-platform-tags/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-platform-tags"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-platform/Cargo.toml b/crates/uv-platform/Cargo.toml
index 321313d04..c4fdfa460 100644
--- a/crates/uv-platform/Cargo.toml
+++ b/crates/uv-platform/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-platform"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-preview/Cargo.toml b/crates/uv-preview/Cargo.toml
index e6912ecca..6234f78f2 100644
--- a/crates/uv-preview/Cargo.toml
+++ b/crates/uv-preview/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-preview"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-publish/Cargo.toml b/crates/uv-publish/Cargo.toml
index cdada9c94..ecf57606c 100644
--- a/crates/uv-publish/Cargo.toml
+++ b/crates/uv-publish/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-publish"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-pypi-types/Cargo.toml b/crates/uv-pypi-types/Cargo.toml
index 0ca99aea8..060353275 100644
--- a/crates/uv-pypi-types/Cargo.toml
+++ b/crates/uv-pypi-types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-pypi-types"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-python/Cargo.toml b/crates/uv-python/Cargo.toml
index b92484787..741da7073 100644
--- a/crates/uv-python/Cargo.toml
+++ b/crates/uv-python/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-python"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-redacted/Cargo.toml b/crates/uv-redacted/Cargo.toml
index 4a95d5ceb..6ab046cbe 100644
--- a/crates/uv-redacted/Cargo.toml
+++ b/crates/uv-redacted/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-redacted"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-requirements-txt/Cargo.toml b/crates/uv-requirements-txt/Cargo.toml
index b3122d796..8521b6020 100644
--- a/crates/uv-requirements-txt/Cargo.toml
+++ b/crates/uv-requirements-txt/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-requirements-txt"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-requirements/Cargo.toml b/crates/uv-requirements/Cargo.toml
index b7b41bebf..378e4a19f 100644
--- a/crates/uv-requirements/Cargo.toml
+++ b/crates/uv-requirements/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-requirements"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-resolver/Cargo.toml b/crates/uv-resolver/Cargo.toml
index 0f2095512..f7ef1912b 100644
--- a/crates/uv-resolver/Cargo.toml
+++ b/crates/uv-resolver/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-resolver"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-scripts/Cargo.toml b/crates/uv-scripts/Cargo.toml
index 582fca5f5..9e0650eb9 100644
--- a/crates/uv-scripts/Cargo.toml
+++ b/crates/uv-scripts/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-scripts"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-settings/Cargo.toml b/crates/uv-settings/Cargo.toml
index 368905fe4..e15a12eea 100644
--- a/crates/uv-settings/Cargo.toml
+++ b/crates/uv-settings/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-settings"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-shell/Cargo.toml b/crates/uv-shell/Cargo.toml
index 95ef687c2..656b9da7c 100644
--- a/crates/uv-shell/Cargo.toml
+++ b/crates/uv-shell/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-shell"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-small-str/Cargo.toml b/crates/uv-small-str/Cargo.toml
index 7734950de..1016af6b6 100644
--- a/crates/uv-small-str/Cargo.toml
+++ b/crates/uv-small-str/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-small-str"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-state/Cargo.toml b/crates/uv-state/Cargo.toml
index 7d2d50049..491b1fb49 100644
--- a/crates/uv-state/Cargo.toml
+++ b/crates/uv-state/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-state"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-static/Cargo.toml b/crates/uv-static/Cargo.toml
index ba28dfe1f..de2d93386 100644
--- a/crates/uv-static/Cargo.toml
+++ b/crates/uv-static/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-static"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-static/src/env_vars.rs b/crates/uv-static/src/env_vars.rs
index f8290eeb5..e1354e210 100644
--- a/crates/uv-static/src/env_vars.rs
+++ b/crates/uv-static/src/env_vars.rs
@@ -299,7 +299,7 @@ impl EnvVars {
/// Equivalent to the `--no-attestations` command-line argument in `uv publish`. If set,
/// uv will skip uploading any collected attestations for the published distributions.
- #[attr_added_in("next release")]
+ #[attr_added_in("0.9.12")]
pub const UV_PUBLISH_NO_ATTESTATIONS: &'static str = "UV_PUBLISH_NO_ATTESTATIONS";
/// Equivalent to the `--no-sync` command-line argument. If set, uv will skip updating
diff --git a/crates/uv-tool/Cargo.toml b/crates/uv-tool/Cargo.toml
index 4bc33883c..3f254256e 100644
--- a/crates/uv-tool/Cargo.toml
+++ b/crates/uv-tool/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-tool"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-torch/Cargo.toml b/crates/uv-torch/Cargo.toml
index ce1f6da95..23a486376 100644
--- a/crates/uv-torch/Cargo.toml
+++ b/crates/uv-torch/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-torch"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-trampoline-builder/Cargo.toml b/crates/uv-trampoline-builder/Cargo.toml
index c67c3f338..d80a8635a 100644
--- a/crates/uv-trampoline-builder/Cargo.toml
+++ b/crates/uv-trampoline-builder/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-trampoline-builder"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
diff --git a/crates/uv-types/Cargo.toml b/crates/uv-types/Cargo.toml
index 0aa9c12e9..1031ccb13 100644
--- a/crates/uv-types/Cargo.toml
+++ b/crates/uv-types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-types"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-version/Cargo.toml b/crates/uv-version/Cargo.toml
index 77cc2599c..33d980a82 100644
--- a/crates/uv-version/Cargo.toml
+++ b/crates/uv-version/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-version"
-version = "0.9.11"
+version = "0.9.12"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-virtualenv/Cargo.toml b/crates/uv-virtualenv/Cargo.toml
index e3cc4f627..d2673b0c2 100644
--- a/crates/uv-virtualenv/Cargo.toml
+++ b/crates/uv-virtualenv/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-virtualenv"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
keywords = ["virtualenv", "venv", "python"]
diff --git a/crates/uv-warnings/Cargo.toml b/crates/uv-warnings/Cargo.toml
index 864ad5daf..7cddaeeaf 100644
--- a/crates/uv-warnings/Cargo.toml
+++ b/crates/uv-warnings/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-warnings"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv-workspace/Cargo.toml b/crates/uv-workspace/Cargo.toml
index b2ec23646..b6595a6a9 100644
--- a/crates/uv-workspace/Cargo.toml
+++ b/crates/uv-workspace/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv-workspace"
-version = "0.0.1"
+version = "0.0.2"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/crates/uv/Cargo.toml b/crates/uv/Cargo.toml
index 9a9c973b8..8aae02999 100644
--- a/crates/uv/Cargo.toml
+++ b/crates/uv/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "uv"
-version = "0.9.11"
+version = "0.9.12"
description = "A Python package and project manager"
edition = { workspace = true }
rust-version = { workspace = true }
diff --git a/docs/concepts/build-backend.md b/docs/concepts/build-backend.md
index 11c19cad9..f62a80a74 100644
--- a/docs/concepts/build-backend.md
+++ b/docs/concepts/build-backend.md
@@ -31,7 +31,7 @@ To use uv as a build backend in an existing project, add `uv_build` to the
```toml title="pyproject.toml"
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
diff --git a/docs/concepts/projects/init.md b/docs/concepts/projects/init.md
index 46bccafa4..812b58d82 100644
--- a/docs/concepts/projects/init.md
+++ b/docs/concepts/projects/init.md
@@ -113,7 +113,7 @@ dependencies = []
example-pkg = "example_pkg:main"
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
@@ -136,7 +136,7 @@ dependencies = []
example-pkg = "example_pkg:main"
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
@@ -197,7 +197,7 @@ requires-python = ">=3.11"
dependencies = []
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
diff --git a/docs/concepts/projects/workspaces.md b/docs/concepts/projects/workspaces.md
index a62ff4d77..2d90a8f61 100644
--- a/docs/concepts/projects/workspaces.md
+++ b/docs/concepts/projects/workspaces.md
@@ -75,7 +75,7 @@ bird-feeder = { workspace = true }
members = ["packages/*"]
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
@@ -106,7 +106,7 @@ tqdm = { git = "https://github.com/tqdm/tqdm" }
members = ["packages/*"]
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
@@ -188,7 +188,7 @@ dependencies = ["bird-feeder", "tqdm>=4,<5"]
bird-feeder = { path = "packages/bird-feeder" }
[build-system]
-requires = ["uv_build>=0.9.11,<0.10.0"]
+requires = ["uv_build>=0.9.12,<0.10.0"]
build-backend = "uv_build"
```
diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md
index c86eb3bd3..57fda7fb6 100644
--- a/docs/getting-started/installation.md
+++ b/docs/getting-started/installation.md
@@ -25,7 +25,7 @@ uv provides a standalone installer to download and install uv:
Request a specific version by including it in the URL:
```console
- $ curl -LsSf https://astral.sh/uv/0.9.11/install.sh | sh
+ $ curl -LsSf https://astral.sh/uv/0.9.12/install.sh | sh
```
=== "Windows"
@@ -41,7 +41,7 @@ uv provides a standalone installer to download and install uv:
Request a specific version by including it in the URL:
```pwsh-session
- PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.9.11/install.ps1 | iex"
+ PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.9.12/install.ps1 | iex"
```
!!! tip
diff --git a/docs/guides/integration/aws-lambda.md b/docs/guides/integration/aws-lambda.md
index 1bed4eaeb..6d72e8c64 100644
--- a/docs/guides/integration/aws-lambda.md
+++ b/docs/guides/integration/aws-lambda.md
@@ -92,7 +92,7 @@ the second stage, we'll copy this directory over to the final image, omitting th
other unnecessary files.
```dockerfile title="Dockerfile"
-FROM ghcr.io/astral-sh/uv:0.9.11 AS uv
+FROM ghcr.io/astral-sh/uv:0.9.12 AS uv
# First, bundle the dependencies into the task root.
FROM public.ecr.aws/lambda/python:3.13 AS builder
@@ -334,7 +334,7 @@ And confirm that opening http://127.0.0.1:8000/ in a web browser displays, "Hell
Finally, we'll update the Dockerfile to include the local library in the deployment package:
```dockerfile title="Dockerfile"
-FROM ghcr.io/astral-sh/uv:0.9.11 AS uv
+FROM ghcr.io/astral-sh/uv:0.9.12 AS uv
# First, bundle the dependencies into the task root.
FROM public.ecr.aws/lambda/python:3.13 AS builder
diff --git a/docs/guides/integration/docker.md b/docs/guides/integration/docker.md
index a00b0bf0f..e23d12587 100644
--- a/docs/guides/integration/docker.md
+++ b/docs/guides/integration/docker.md
@@ -31,7 +31,7 @@ $ docker run --rm -it ghcr.io/astral-sh/uv:debian uv --help
The following distroless images are available:
- `ghcr.io/astral-sh/uv:latest`
-- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.9.11`
+- `ghcr.io/astral-sh/uv:{major}.{minor}.{patch}`, e.g., `ghcr.io/astral-sh/uv:0.9.12`
- `ghcr.io/astral-sh/uv:{major}.{minor}`, e.g., `ghcr.io/astral-sh/uv:0.8` (the latest patch
version)
@@ -95,7 +95,7 @@ And the following derived images are available:
As with the distroless image, each derived image is published with uv version tags as
`ghcr.io/astral-sh/uv:{major}.{minor}.{patch}-{base}` and
-`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.9.11-alpine`.
+`ghcr.io/astral-sh/uv:{major}.{minor}-{base}`, e.g., `ghcr.io/astral-sh/uv:0.9.12-alpine`.
In addition, starting with `0.8` each derived image also sets `UV_TOOL_BIN_DIR` to `/usr/local/bin`
to allow `uv tool install` to work as expected with the default user.
@@ -136,7 +136,7 @@ Note this requires `curl` to be available.
In either case, it is best practice to pin to a specific uv version, e.g., with:
```dockerfile
-COPY --from=ghcr.io/astral-sh/uv:0.9.11 /uv /uvx /bin/
+COPY --from=ghcr.io/astral-sh/uv:0.9.12 /uv /uvx /bin/
```
!!! tip
@@ -154,7 +154,7 @@ COPY --from=ghcr.io/astral-sh/uv:0.9.11 /uv /uvx /bin/
Or, with the installer:
```dockerfile
-ADD https://astral.sh/uv/0.9.11/install.sh /uv-installer.sh
+ADD https://astral.sh/uv/0.9.12/install.sh /uv-installer.sh
```
### Installing a project
@@ -619,5 +619,5 @@ Verified OK
!!! tip
These examples use `latest`, but best practice is to verify the attestation for a specific
- version tag, e.g., `ghcr.io/astral-sh/uv:0.9.11`, or (even better) the specific image digest,
+ version tag, e.g., `ghcr.io/astral-sh/uv:0.9.12`, or (even better) the specific image digest,
such as `ghcr.io/astral-sh/uv:0.5.27@sha256:5adf09a5a526f380237408032a9308000d14d5947eafa687ad6c6a2476787b4f`.
diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md
index cce459da5..1715dc6e4 100644
--- a/docs/guides/integration/github.md
+++ b/docs/guides/integration/github.md
@@ -47,7 +47,7 @@ jobs:
uses: astral-sh/setup-uv@v6
with:
# Install a specific version of uv.
- version: "0.9.11"
+ version: "0.9.12"
```
## Setting up Python
diff --git a/docs/guides/integration/pre-commit.md b/docs/guides/integration/pre-commit.md
index cfc06fd25..1abcf6aad 100644
--- a/docs/guides/integration/pre-commit.md
+++ b/docs/guides/integration/pre-commit.md
@@ -19,7 +19,7 @@ To make sure your `uv.lock` file is up to date even if your `pyproject.toml` fil
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
- rev: 0.9.11
+ rev: 0.9.12
hooks:
- id: uv-lock
```
@@ -30,7 +30,7 @@ To keep a `requirements.txt` file in sync with your `uv.lock` file:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
- rev: 0.9.11
+ rev: 0.9.12
hooks:
- id: uv-export
```
@@ -41,7 +41,7 @@ To compile requirements files:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
- rev: 0.9.11
+ rev: 0.9.12
hooks:
# Compile requirements
- id: pip-compile
@@ -54,7 +54,7 @@ To compile alternative requirements files, modify `args` and `files`:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
- rev: 0.9.11
+ rev: 0.9.12
hooks:
# Compile requirements
- id: pip-compile
@@ -68,7 +68,7 @@ To run the hook over multiple files at the same time, add additional entries:
repos:
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
- rev: 0.9.11
+ rev: 0.9.12
hooks:
# Compile requirements
- id: pip-compile
diff --git a/docs/reference/environment.md b/docs/reference/environment.md
index 46158bbef..6069b72ca 100644
--- a/docs/reference/environment.md
+++ b/docs/reference/environment.md
@@ -467,7 +467,7 @@ Equivalent to the `--index` command-line argument in `uv publish`. If
set, uv the index with this name in the configuration for publishing.
### `UV_PUBLISH_NO_ATTESTATIONS`
-added in `next release`
+added in `0.9.12`
Equivalent to the `--no-attestations` command-line argument in `uv publish`. If set,
uv will skip uploading any collected attestations for the published distributions.
diff --git a/pyproject.toml b/pyproject.toml
index 3e0d9efe1..1c3a40703 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "maturin"
[project]
name = "uv"
-version = "0.9.11"
+version = "0.9.12"
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"