Change8

0.8.0

Breaking Changes
📦 uvView on GitHub →
8 breaking1 features🔧 12 symbols

Summary

uv 0.7.x introduces stable Python executable installation, Windows Registry registration, safer venv removal, stricter interpreter preference enforcement, and automatic packaging of path and workspace dependencies, while updating the default manylinux target and removing the version fallback.

⚠️ Breaking Changes

  • uv python install now installs versioned executables (e.g., python3.13) into a directory on the PATH by default, which can shadow existing Python binaries. Use the --default flag for unversioned executables or opt out with --no-bin / UV_PYTHON_INSTALL_BIN=0.
  • uv python install now registers installed Python versions with the Windows Registry per PEP 514, enabling use via the py launcher. Opt out with --no-registry / UV_PYTHON_INSTALL_REGISTRY=0.
  • uv venv now prompts for confirmation before deleting an existing virtual environment, changing the previous silent removal behavior. Disable the prompt by setting UV_VENV_CLEAR=1 or using the --clear flag.
  • uv now validates that discovered interpreters on the PATH respect the --no-managed-python / python-preference settings, invalidating mismatched environments. Provide an explicit interpreter path matching the preference to avoid this.
  • Dependencies with `path` sources are now built and installed even without a declared build system, using the legacy setuptools backend. Opt out by setting `package = false` in the source declaration or `tool.uv.package = false` in the dependent pyproject.toml.
  • Workspace members used as dependencies are now built and installed even without a build system. Opt out by setting `tool.uv.package = false` in the workspace member's pyproject.toml.
  • `uv --python-platform linux` now defaults to manylinux_2_28 instead of manylinux_2_17, affecting users who rely on the older default. Opt out by specifying the older target explicitly (e.g., --python-platform x86_64-manylinux_2_17).
  • The fallback behavior of `uv version` has been removed, which may break scripts that relied on the previous fallback mechanism.

Migration Steps

  1. Review your PATH for potential shadowing of versioned Python executables installed by `uv python install`; switch to the --default flag or disable binary installation if needed.
  2. If you rely on the previous `uv version` fallback, update scripts to handle the absence of a fallback or pin to an earlier uv version.
  3. Adjust any custom `uv venv` workflows to handle the new confirmation prompt, or set UV_VENV_CLEAR=1 / use --clear to retain the old behavior.
  4. Update pyproject.toml files for path‑based or workspace member dependencies where you do not want automatic packaging: set `package = false` or `tool.uv.package = false` accordingly.
  5. If you depend on the older manylinux_2_17 platform target, explicitly pass the older target flag (e.g., `--python-platform x86_64-manylinux_2_17`).
  6. For Windows users who do not want Registry registration, add `--no-registry` or set `UV_PYTHON_INSTALL_REGISTRY=0` in your environment.

✨ New Features

  • Stabilization of `uv python install` features that were previously under preview, including default installation of versioned executables and Windows Registry registration.

🔧 Affected Symbols

uv python installuv venvuv syncuv runuvxuv versiontool.uv.sourcestool.uv.packageUV_PYTHON_BIN_DIRUV_PYTHON_INSTALL_BINUV_PYTHON_INSTALL_REGISTRYUV_VENV_CLEAR