- Add
uv tool list
(#4630) - Add
uv tool uninstall
(#4641) - Add support for specifying
name@version
inuv tool run
(#4572) - Allow
uv add
to specify optional dependency groups (#4607) - Allow the package spec to be passed positionally in
uv tool install
(#4564) - Avoid infinite loop for cyclic installs (#4633)
- Indent wheels like dependencies in the lockfile (#4582)
- Sync all packages in a virtual workspace (#4636)
- Use inline table for dependencies in lockfile (#4581)
- Make
source
field in lock file more structured (#4627)
- Add
--extra
touv add
and enable fine-grained updates (#4566)
- Add
--package
argument touv add
anduv remove
(#4556) - Add
uv tool install
(#4492) - Fallback to interpreter discovery in
uv run
(#4549) - Make
uv.sources
without--preview
non-fatal (#4558) - Remove non-existent extras from lockfile (#4479)
- Support conflicting URL in separate forks (#4435)
- Automatically detect workspace packages in
uv add
(#4557) - Omit
distribution.sdist
from lockfile when it is redundant (#4528) - Remove
source
andversion
from lock file when unambiguous (#4513) - Allow
uv lock
to read overrides fromtool.uv
(#4108) (#4369)
- Expose
toolchain-preference
as a CLI and configuration file option (#4424) - Improve handling of command arguments in
uv run
anduv tool run
(#4404) - Add
tool.uv.sources
support foruv add
(#4406) - Use correct lock path for workspace dependencies (#4421)
- Filter out sibling dependencies in resolver forks (#4415)
- Add
--workspace
option touv add
(#4362) - Ignore query errors during
uv toolchain list
(#4382) - Respect
.python-version
files and fetch manged toolchains in uv project commands (#4361) - Respect
.python-version
inuv venv --preview
(#4360)
- Add
--force
option touv toolchain install
(#4313) - Add
--no-build
,--no-build-package
, and binary variants (#4322) - Add
EXTERNALLY-MANAGED
markers to managed toolchains (#4312) - Add
uv toolchain find
(#4206) - Add persistent configuration for non-
pip
APIs (#4294) - Add support for adding/removing development dependencies (#4327)
- Add support for listing system toolchains (#4172)
- Add support for toolchain requests by key (#4332)
- Allow multiple toolchains to be requested in
uv toolchain install
(#4334) - Fix relative and absolute path handling in lockfiles (#4266)
- Load configuration options from workspace root (#4295)
- Omit project name from workspace errors (#4299)
- Read Python version files during toolchain installs (#4335)
- Remove extraneous installations in
uv sync
by default (#4366) - Respect
requires-python
inuv lock
(#4282) - Respect workspace-wide
requires-python
in interpreter selection (#4298) - Support unnamed requirements in
uv add
(#4326) - Use portable slash paths in lockfile (#4324)
- Use registry URL for fetching source distributions from lockfile (#4280)
uv sync --no-clean
(#4367)- Filter dependencies by tracking markers on resolver forks (#4339)
- Use
Requires-Python
to filter dependencies during universal resolution (#4273)
- Add changelog for preview changes (#4251)
- Allow direct URLs for dev dependencies (#4233)
- Create temporary environments in dedicated cache bucket (#4223)
- Improve output when an older toolchain version is already installed (#4248)
- Initial implementation of
uv add
anduv remove
(#4193) - Refactor project interpreter request for
requires-python
specifiers (#4216) - Replace
toolchain fetch
withtoolchain install
(#4228) - Support locking relative paths (#4205)
- Warn when 'requires-python' does not include a lower bound (#4234)
- Add
uv toolchain install
(#4164) - Add
uv toolchain list
(#4163) - Add extra and dev dependency validation to lockfile (#4112)
- Add markers to edges rather than distributions (#4166)
- Cap
Requires-Python
comparisons at the patch version (#4150) - Do not create a virtual environment when locking (#4147)
- Don't panic with invalid wheel source (#4191)
- Fetch managed toolchains in
uv run
(#4143) - Fix PEP 508 link in preview doc
specifying_dependencies
(#4158) - Ignore tags in universal resolution (#4174)
- Implement
Toolchain::find_or_fetch
and use inuv venv --preview
(#4138) - Lock all packages in workspace (#4016)
- Recreate project environment if
--python
orrequires-python
doesn't match (#3945) - Respect
--find-links
inlock
andsync
(#4183) - Set
--dev
to default foruv run
anduv sync
(#4118) - Track
Markers
via a PubGrub package variant (#4123) - Use union of
requires-python
in workspace (#4041) - make universal resolver fork only when markers are disjoint (#4135)
- Add support for development dependencies (#4036)
- Avoid enforcing distribution ID uniqueness for extras (#4104)
- Ignore upper-bounds on
Requires-Python
(#4086)
- Default to current Python minor if
Requires-Python
is absent (#4070) - Enforce
Requires-Python
when syncing (#4068) - Track supported Python range in lockfile (#4065)
- Fix a bug where no warning is output when parsing of workspace settings fails. (#4014)
- Normalize extras in lockfile (#3958)
- Respect
Requires-Python
in universal resolution (#3998)
- Add
uv run --package
(#3864) - Add index URL parameters to Project CLI (#3984)
- Avoid re-adding solutions to forked state (#3967)
- Draft for user docs for workspaces (#3866)
- Include all extras when generating lockfile (#3912)
- Remove unstable uv lock from pip interface (#3970)
- Respect resolved Git SHAs in
uv lock
(#3956) - Use lockfile in
uv run
(#3894) - Use lockfile versions as resolution preferences (#3921)
- Use universal resolution in
uv lock
(#3969)
- Add context to failed
uv tool run
(#3882) - Add persistent storage of installed toolchains (#3797)
- Gate discovery of managed toolchains with preview (#3835)
- Initial workspace support (#3705)
- Move editable discovery behind
--preview
for now (#3884)
- Allow specification of additional requirements in
uv tool run
(#3678)
- Allow users to specify a custom source package to
uv tool run
(#3677)
- Add initial implementation of
uv tool run
(#3657) - Add offline support to
uv tool run
anduv run
(#3676) - Better error message for
uv run
failures (#3691) - Discover workspaces without using them in resolution (#3585)
- Support editables in
uv sync
(#3692) - Track editable requirements in lockfile (#3725)
- Add direct URL conversion to lockfile (#3633)
- Add hashes and versions to all distributions (#3589)
- Add local path conversions from lockfile (#3609)
- Add missing
"directory"
branch in source match (#3608) - Add registry file size to lockfile (#3652)
- Add registry source distribution support to lockfile (#3649)
- Refactor editables for supporting them in bluejay commands (#3639)
- Rename
sourcedist
tosdist
in lockfile (#3590) - Respect installed packages in
uv run
(#3603) - Support lossless serialization for Git dependencies in lockfile (#3630)
- Create virtualenv if it doesn't exist in project API (#3499)
- Discover
uv run
projects hierarchically (#3494) - Read and write
uv.lock
based on project root (#3497) - Read package name from
pyproject.toml
inuv run
(#3496) - Rebrand workspace API as project API (#3489)
- Use environment layering for
uv run --with
(#3447) - Warn when missing minimal bounds when using
tool.uv.sources
(#3452)
- Add basic
tool.uv.sources
support (#3263) - Improve non-git error message (#3403)
- Preserve given for
tool.uv.sources
paths (#3412) - Restore verbatim in error message (#3402)
- Use preview mode for tool.uv.sources (#3277)
- Use top-level
--isolated
foruv run
(#3431) - add basic "install from lock file" operation (#3340)
- uv-resolver: add initial version of universal lock file format (#3314)