-
Notifications
You must be signed in to change notification settings - Fork 61
chore(deps): update dependency astral-sh/uv to v0.9.2 #1214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
develop
Choose a base branch
from
renovate/astral-sh-uv-0.x
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LGTM ✅ No issues found. |
3424953
to
14038eb
Compare
08219f1
to
12a0144
Compare
12a0144
to
dfba6f0
Compare
004d00e
to
9a17cc6
Compare
4694fb7
to
7645476
Compare
c3fe0dd
to
b04e238
Compare
b04e238
to
0b074c2
Compare
031c48b
to
ed9ebd5
Compare
0f3b31e
to
0d9f537
Compare
c19d13f
to
57661e9
Compare
57f2b53
to
8bfba00
Compare
8bfba00
to
f908efb
Compare
f908efb
to
e28d2e2
Compare
e28d2e2
to
60eba17
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.5.24
->0.9.2
Release Notes
astral-sh/uv (astral-sh/uv)
v0.9.2
Compare Source
Released on 2025-10-10.
Python
Enhancements
uv publish
(#16234)uv tool list --show-python
(#15814)Documentation
v0.9.1
Compare Source
Released on 2025-10-09.
Enhancements
uv init
(#16182)pylock.toml
config conflict error messages (#16211)Configuration
UV_UPLOAD_HTTP_TIMEOUT
and respectUV_HTTP_TIMEOUT
in uploads (#16040)UV_WORKING_DIRECTORY
for setting--directory
(#16125)Bug fixes
Scripts
directory (#16206)Documentation
requires-python
(#15927)v0.9.0
Compare Source
Released on 2025-10-07.
Breaking changes
This breaking release is primarily motivated by the release of Python 3.14, which contains some breaking changes (we recommend reading the "What's new in Python 3.14" page). uv may use Python 3.14 in cases where it previously used 3.13, e.g., if you have not pinned your Python version and do not have any Python versions installed on your machine. While we think this is uncommon, we prefer to be cautious. We've included some additional small changes that could break workflows.
There are no breaking changes to
uv_build
. If you have an upper bound in your[build-system]
table, you should update it.Python 3.14 is now the default stable version
The default Python version has changed from 3.13 to 3.14. This applies to Python version installation when no Python version is requested, e.g.,
uv python install
. By default, uv will use the system Python version if present, so this may not cause changes to general use of uv. For example, if Python 3.13 is installed already, thenuv venv
will use that version. If no Python versions are installed on a machine and automatic downloads are enabled, uv will now use 3.14 instead of 3.13, e.g., foruv venv
oruvx python
. This change will not affect users who are using a.python-version
file to pin to a specific Python version.Allow use of free-threaded variants in Python 3.14+ without explicit opt-in (#16142)
Previously, free-threaded variants of Python were considered experimental and required explicit opt-in (i.e., with
3.14t
) for usage. Now uv will allow use of free-threaded Python 3.14+ interpreters without explicit selection. The GIL-enabled build of Python will still be preferred, e.g., when performing an installation withuv python install 3.14
. However, e.g., if a free-threaded interpreter comes before a GIL-enabled build on thePATH
, it will be used. This change does not apply to free-threaded Python 3.13 interpreters, which will continue to require opt-in.Use Python 3.14 stable Docker images (#16150)
Previously, the Python 3.14 images had an
-rc
suffix, e.g.,python:3.14-rc-alpine
orpython:3.14-rc-trixie
. Now, the-rc
suffix has been removed to match the stableupstream images. The
-rc
images tags will no longer beupdated. This change should not break existing workflows.
Upgrade Alpine Docker image to Alpine 3.22
Previously, the
uv:alpine
Docker image was based on Alpine 3.21. Now, this image is based on Alpine 3.22. The previous image can be recovered withuv:alpine3.21
and will continue to be updated until a future release.Upgrade Debian Docker images to Debian 13 "Trixie"
Previously, the
uv:debian
anduv:debian-slim
Docker images were based on Debian 12 "Bookworm". Now, these images are based on Debian 13 "Trixie". The previous images can be recovered withuv:bookworm
anduv:bookworm-slim
and will continue to be updated until a future release.Fix incorrect output path when a trailing
/
is used inuv build
(#15133)When using
uv build
in a workspace, the artifacts are intended to be written to adist
directory in the workspace root. A bug caused workspace root determination to fail when the input path included a trailing/
causing thedist
directory to be placed in the child directory. This bug has been fixed in this release. For example,uv build child/
is used, the output path will now be in<workspace root>/dist/
rather than<workspace root>/child/dist/
.Python
Enhancements
Bug fixes
uv python upgrade / install
output when there is a no-op for one request (#16158)uv tool upgrade
can’t move the tool (#16081)uv python upgrade
requests (#16160)uv python upgrade
replacement of installed binaries on pre-release to stable (#16159)Documentation
uv pip compile
args inlayout.md
(#16155)v0.8.24
Compare Source
Released on 2025-10-06.
Enhancements
cache clean
andprune
when lock is held (#16138)--force
flag foruv cache prune
(#16137)Documentation
v0.8.23
Compare Source
Released on 2025-10-03.
Enhancements
s390x
on stable Rust compiler version (#16082)UV_SKIP_WHEEL_FILENAME_CHECK
to allow installing invalid wheels (#16046)Bug fixes
--no-sources
(#16094)--no-color
on the CLI (#16044)uv pip tree
output (#16078)Documentation
_CONDA_ROOT
in reference (#16114)v0.8.22
Compare Source
Released on 2025-09-23.
Python
Security
astral-tokio-tar
to 0.5.5 which hardens tar archive extraction (#16004)v0.8.21
Compare Source
Released on 2025-09-23.
Enhancements
--refresh
is provided (#15994)Preview features
v0.8.20
Compare Source
Released on 2025-09-22.
Enhancements
--force
flag foruv cache clean
(#15992)Preview features
Bug fixes
freethreaded+debug
Python downloads inuv python list
(#15985)uv run
anduvx
(#15990)Documentation
package
level conflicts to the conflicting dependencies docs (#15963)v0.8.19
Compare Source
Released on 2025-09-19.
Python
See the python-build-standalone release notes for more details.
Bug fixes
uv cache clean
parallel process safe (#15888)platform_machine
marker forwin_arm64
platform tag (#15921)v0.8.18
Compare Source
Released on 2025-09-17.
Enhancements
uv init
defaults for native build backend cache keys (#15705)pyproject.toml
target does not exist for dependency groups (#15831)--no-clear
touv venv
to disable removal prompts (#15795)--only-group
and--extra
flags (#15788)[project]
to be missing from apyproject.toml
(#14113)base
androot
as base environments (#15682)uv_build
is skipped (#15898)_CONDA_ROOT
to detect Conda base environments (#15680)uv publish
upload form (#15794)uv sync
(#15881)Deprecations
tool.uv.dev-dependencies
(#15469)Preview features
native-auth
feature (#15872)Bug fixes
uv sync --no-sources
not switching from editable to registry installations (#15234)@latest
(#15827)triton
as a torch backend package (#15910)UV_INSECURE_NO_ZIP_VALIDATION=1
in duplicate header errors (#15912)Documentation
NO_PROXY
support (#15816)requires-python
(#14282)v0.8.17
Compare Source
Released on 2025-09-10.
Enhancements
PYX_API_URL
when suggestinguv auth login
on 401 (#15774)Bug fixes
uv init --script
(#15747)v0.8.16
Compare Source
Enhancements
--editable
to overrideeditable = false
annotations (#15712)editable = false
for workspace sources (#15708)--with-requirements
and--requirements
(#12763)Preview features
--no-project
inuv format
(#15572)uv format
in unmanaged projects (#15553)Bug fixes
match-runtime
target is optional (#15671)uv auth
(#15743)uv publish
(#15759)Documentation
uv auth
commands take a URL (#15664)v0.8.15
Compare Source
Python
Enhancements
uv auth
commands for credential management (#15570)uv auth
commands (#15636)uv tree --show-sizes
to show package sizes (#15531)--python-platform riscv64-unknown-linux
(#15630)--python-platform
touv run
anduv tool
(#15515)uv publish --dry-run
(#15638)Bug fixes
extra-build-dependencies
(#15622)Error messages
v0.8.14
Compare Source
Python
Enhancements
--python-platform
touv pip check
(#15486)UV_ISOLATED
(#15428)--no-install-local
option touv sync
,uv add
anduv export
(#15328)uv pip
CLI (#15453)Preview features
{version}
onuv format
failure (#15527)uv format
to prevent races (#15551)--project
inuv format
(#15438)uv format
in the project root (#15440)Configuration
Performance
WHEEL
andMETADATA
reads in installed distributions (#15489)Bug fixes
venv
in current working directory (#15537)uv publish
checks (#15545)uv venv
(#15538)CLICOLOR_FORCE=1
when calling build backends (#15472)Documentation
uvw.exe
needs to be removed (#15536)v0.8.13
Compare Source
Enhancements
--no-install-*
arguments touv add
(#15375)uv init
(#15377)Preview features
uv format
command (#15017)extra-build-dependencies
if match-runtime is explicitlyfalse
(#15420)Bug fixes
triton
totorch-backend
manifest (#15405)uv_build
wheel hashes (#15400)--upgrade-package
on the command-line as overridingupgrade = false
in configuration (#15395)v0.8.12
Compare Source
Python
See the python-build-standalone release notes for details.
Enhancements
aarch64-pc-windows-msvc
target forpython-platform
(#15347)uv tool update-shell
(#15356)buildpack-deps:trixie
,debian:trixie-slim
,alpine:3.22
(#15351)Bug fixes
match-runtime = true
for dynamic packages (#15292)Documentation
uv cache clean
instead ofclear
(#15313)v0.8.11
Compare Source
Python
Enhancements
extra-build-dependencies
hint for any missing module on build failure (#15252)Bug fixes
Rust API
reqwest
clients toRegistryClient
(#15281)v0.8.10
Compare Source
Python
Enhancements
aarch64
(#14399)Preview
v0.8.9
Compare Source
Enhancements
--reinstall
flag touv python upgrade
(#15194)Bug fixes
uv python upgrade
if they don't already exist (#15192)Documentation
v0.8.8
Compare Source
Bug fixes
find_uv_bin
compatibility with Python <3.10 (#15177)v0.8.7
Compare Source
Python
tkagg
backend (the default on Linux), Pillow'sPIL.ImageTk
library, and other extension modules that need to use libtcl/libtk directly.See the
python-build-standalone
release notes for details.Enhancements
uv.lock
when using--isolated
(#15154)--prefix
and--with
installations infind_uv_bin
(#14184)find_uv_bin
(#14181)find_uv_bin
(#14182)Preview features
package
-level conflicts in workspaces (#14906)Configuration
UV_DEV
andUV_NO_DEV
environment variables (for--dev
and--no-dev
) (#15010)Bug fixes
--require-hashes
applied to build dependencies inuv pip install
(#15153)find_uv_bin
(#14191)Documentation
.
) to list elements inFeatures
docs page (#15138)v0.8.6
Compare Source
This release contains hardening measures to address differentials in behavior between uv and Python's built-in ZIP parser (CVE-2025-54368).
Prior to this release, attackers could construct ZIP files that would be extracted differently by pip, uv, and other tools. As a result, ZIPs could be constructed that would be considered harmless by (e.g.) scanners, but contain a malicious payload when extracted by uv. As of v0.8.6, uv now applies additional checks to reject such ZIPs.
Thanks to a triage effort with the Python Security Response Team and PyPI maintainers, we were able to determine that these differentials were not exploited via PyPI during the time they were present. The PyPI team has also implemented similar checks and now guards against these parsing differentials on upload.
Although the practical risk of exploitation is low, we take the hypothetical risk of parser differentials very seriously. Out of an abundance of caution, we have assigned this advisory a CVE identifier and have given it a "moderate" severity suggestion.
These changes have been validated against the top 15,000 PyPI packages; however, it's plausible that a non-malicious ZIP could be falsely rejected with this additional hardening. As an escape hatch, users who do encounter breaking changes can enable
UV_INSECURE_NO_ZIP_VALIDATION
to restore the previous behavior. If you encounter such a rejection, please file an issue in uv and to the upstream package.For additional information, please refer to the following blog posts:
Security
Python
Configuration
Bug fixes
UV_HTTP_RETRIES
inuv publish
(#15106)UV_NO_EDITABLE
where--no-editable
is supported (#15107)cargo-dist
to addUV_INSTALLER_URL
to PowerShell installer (#15114)h2
again to avoidtoo_many_internal_resets
errors (#15111)pythonw
when copying entry points in uv run (#15134)Documentation
v0.8.5
Compare Source
Enhancements
uv run
with a GitHub Gist (#15058)uv tool install
(#14014)Preview features
extra-build-dependencies
warnings foruv pip
(#15088)pylock
warning (#15089)Bug fixes
python-preference = system
when managed interpreters are on the PATH (#15059)--system
is used (#15061)h2
upgrade (#15079)Documentation
v0.8.4
Compare Source
Enhancements
Preview features
extra-build-dependencies
(#14735)Configuration
exclude-newer
dates viaexclude-newer-package
(#14489)Bug fixes
python
vspython3
(#14970)environments
andrequired-environments
inuv.toml
(#14905)Documentation
uv_build
in projects documentation (#14968)UV_
prefix to installer environment variables (#14964)uv
from--build-backend
options (#14939)v0.8.3
Compare Source
Python
See the
python-build-standalone
release notes for more details.Enhancements
uv_build
(#14867)Bug fixes
--with
versions over base environment versions (#14863)Documentation
uv_build
reference documentation (#14853)v0.8.2
Compare Source
Released on 2025-10-06.
Enhancements
cache clean
andprune
when lock is held (#16138)--force
flag foruv cache prune
(#16137)Documentation
v0.8.1
Compare Source
Released on 2025-09-19.
Python
See the python-build-standalone release notes for more details.
Bug fixes
uv cache clean
parallel process safe (#15888)platform_machine
marker forwin_arm64
platform tag (#15921)v0.8.0
Compare Source
Since we released uv 0.7.0 in April, we've accumulated various changes that improve correctness and user experience, but could break some workflows. This release contains those changes; many have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes.
This release also includes the stabilization of a couple
uv python install
features, which have been available under preview since late last year.Breaking changes
Install Python executables into a directory on the
PATH
(#14626)uv python install
now installs a versioned Python executable (e.g.,python3.13
) into a directory on thePATH
(e.g.,~/.local/bin
) by default. This behavior has been available under the--preview
flag since Oct 2024. This change should not be breaking unless it shadows a Python executable elsewhere on thePATH
.To install unversioned executables, i.e.,
python3
andpython
, use the--default
flag. The--default
flag has also been in preview, but is not stabilized in this release.Note that these executables point to the base Python installation and only include the standard library. That means they will not include dependencies from your current project (use
uv run python
instead) and you cannot install packages into their environment (useuvx --with <package> python
instead).As with tool installation, the target directory respects common variables like
XDG_BIN_HOME
and can be overridden with aUV_PYTHON_BIN_DIR
variable.You can opt out of this behavior with
uv python install --no-bin
orUV_PYTHON_INSTALL_BIN=0
.See the documentation on installing Python executables for more details.
Register Python versions with the Windows Registry (#14625)
uv python install
now registers the installed Python version with the Windows Registry as specified by PEP 514. This allows using uv installed Python versions via thepy
launcher. This behavior has been available under the--preview
flag since Jan 2025. This change should not be breaking, as using the uv Python versions withpy
requires explicit opt in.You can opt out of this behavior with
uv python install --no-registry
orUV_PYTHON_INSTALL_REGISTRY=0
.Prompt before removing an existing directory in
uv venv
(#14309)Previously,
uv venv
would remove an existing virtual environment without confirmation. While this is consistent with the behavior of project commands (e.g.,uv sync
), it's surprising to users that are using imperative workflows (i.e.,uv pip
). Now,uv venv
will prompt for confirmation before removing an existing virtual environment. If not in an interactive context, uv will still remove the virtual environment for backwards compatibility. However, this behavior is likely to change in a future release.The behavior for other commands (e.g.,
uv sync
) is unchanged.You can opt out of this behavior by setting
UV_VENV_CLEAR=1
or passing the--clear
flag.Validate that discovered interpreters meet the Python preference (#7934)
uv allows opting out of its managed Python versions with the
--no-managed-python
andpython-preference
options.Previously, uv would not enforce this option for Python interpreters discovered on the
PATH
. For example, if a symlink to a managed Python interpreter was created, uv would allow it to be used even if--no-managed-python
was provided. Now, uv ignores Python interpreters that do not match the Python preference unless they are in an active virtual environment or are explicitly requested, e.g., with--python /path/to/python3.13
.Similarly, uv would previously not invalidate existing project environments if they did not match the Python preference. Now, uv will invalidate and recreate project environments when the Python preference changes.
You can opt out of this behavior by providing the explicit path to the Python interpreter providing
--managed-python
/--no-managed-python
matching the interpreter you want.Install dependencies without build systems when they are
path
sources (#14413)When working on a project, uv uses the presence of a build system to determine if it should be built and installed into the environment. However, when a project is a dependency of another project, it can be surprising for the dependency to be missing from the environment.
Previously, uv would not build and install dependencies with
path
sources unless they declared a build system or settool.uv.package = true
. Now, dependencies withpath
sources are built and installed regardless of the presence of a build system. If a build system is not present, thesetuptools.build_meta:__legacy__
backend will be used (per PEP 517).You can opt out of this behavior by setting
package = false
in the source declaration, e.g.:Or, by setting
tool.uv.package = false
in the dependentpyproject.toml
.See the documentation on virtual dependencies for details.
Install dependencies without build systems when they are workspace members (#14663)
As described above for dependencies with
path
sources, uv previously would not build and install workspace members that did not declare a build system. Now, uv will build and install workspace members that are a dependency of another workspace member regardless of the presence of a build system. The behavior is unchanged for workspace members that are not included in theproject.dependencies
,project.optional-dependencies
, ordependency-groups
tables of another workspace member.You can opt out of this behavior by setting
tool.uv.package = false
in the workspace member'spyproject.toml
.See the documentation on virtual dependencies for details.
Bump
--python-platform linux
tomanylinux_2_28
(#14300)uv allows performing platform-specific resolution for explicit targets and provides short aliases, e.g.,
linux
, for common targets.Previously, the default target for
--python-platform linux
wasmanylinux_2_17
, which is compatible with most Linux distributions from 2014 or newer. We now default tomanylinux_2_28
, which is compatible with most Linux distributions from 2019 or newer. This change follows the lead of other tools, such ascibuildwheel
, which changed their default tomanylinux_2_28
in Mar 2025.This change only affects users requesting a specific target platform. Otherwise, uv detects the
manylinux
target from your local glibc version.You can opt out of this behavior by using
--python-platform x86_64-manylinux_2_17
instead.Remove
uv version
fallback (#14161)In Apr 2025, uv changed the
uv version
command to an interface for viewing and updating the version of the current project. However, when outside a project,uv version
would continue to display uv's version for backwards compatibility. Now, when used outside of a project,uv version
will fail.You cannot opt out of this behavior. Use
uv self version
instead.Require
--global
for removal of the global Python pin (#14169)Previously,
uv python pin --rm
would allow you to remove the global Python pin without opt in. Now, uv requires the--global
flag to remove the global Python pin.You cannot opt out of this behavior. Use the
--global
flag instead.Support conflicting editable settings across groups (#14197)
Previously, uv would always treat a package as editable if any requirement requested it as editable. However, this prevented users from declaring
path
sources that toggled theeditable
setting across dependency groups. Now, uv allows declaring differenteditable
values for conflicting groups. However, if a project includes a path dependency twice, once witheditable = true
and once without any editable annotation, those are now considered conflicting, and uv will exit with an error.You cannot opt out of this behavior. Us