- Add support for
--no-build-isolation
(#2258) - Add support for
--break-system-packages
(#2249) - Add support for
.netrc
authentication (#2241) - Add support for
--format=freeze
and--format=json
inuv pip list
(#1998) - Add support for remote
https://
requirements files (#1332) (#2081) - Implement
uv pip show
(#2115) - Allow
UV_PRERELEASE
to be set via environment variable (#2240) - Include exit code for build failures (#2108)
- Query interpreter to determine correct
virtualenv
paths, enablinguv venv
with PyPy and others (#2188) - Respect non-
sysconfig
-based system Pythons, enabling--system
installs on Debian and others (#2193)
- Fallback to fresh request on non-validating 304 (#2218)
- Add
.stdout()
and.stderr()
outputs toPrinter
(#2227) - Close
RECORD
after reading entries during uninstall (#2259) - Fix Conda Python detection on Windows (#2279)
- Fix parsing requirement where a variable follows an operator without a space (#2273)
- Prefer more recent minor versions in wheel tags (#2263)
- Retry on Python interpreter launch failures during
--compile
(#2278) - Show appropriate activation command based on shell detection (#2221)
- Escape Windows paths with spaces in
venv
activation command (#2223) - Add specialized activation message for
cmd.exe
(#2226) - Cache wheel metadata in no-PEP 658 fallback (#2255)
- Use reparse points to detect Windows installer shims (#2284)
- Add
PIP_COMPATIBILITY.md
to document known deviations frompip
(#2244)
- Add a
--compile
option toinstall
to enable bytecode compilation (#2086) - Expose the
--exclude-newer
flag to limit candidate packages based on date (#2166) - Add
uv
version to user agent (#2136)
- Set
.metadata
suffix on URL path (#2123) - Fallback to non-range requests when HEAD returns 404 (#2186)
- Allow direct URLs in optional dependencies in editables (#2206)
- Allow empty values in WHEEL files (#2170)
- Avoid Windows Store shims in
--python python3
-like invocations (#2212) - Expand Windows shim detection to include
python3.12.exe
(#2209) - HTML-decode URLs in HTML indexes (#2215)
- Make direct dependency detection respect markers (#2207)
- Respect
py --list-paths
fallback in--python python3
invocations on Windows (#2214) - Respect local freshness when auditing installed environment (#2169)
- Respect markers on URL dependencies in editables (#2176)
- Respect nested editable requirements in parser (#2204)
- Run Windows against Python 3.13 (#2171)
- Error when editables don't match
Requires-Python
(#2194)
- Add support for
--system-site-packages
inuv venv
(#2101) - Add support for Python installed from Windows Store (#2122)
- Expand environment variables in
-r
and-c
subfile paths (#2143) - Treat empty index URL strings as null instead of erroring (#2137)
- Use space as delimiter for
UV_EXTRA_INDEX_URL
(#2140) - Report line and column numbers in
requirements.txt
parser errors (#2100) - Improve error messages when
uv
is offline (#2110)
- Future-proof the
pip
entrypoints special-case (#1982) - Allow empty extras in
pep508-rs
and add more corner case to tests (#2128) - Adjust base Python lookup logic for Windows to respect Windows Store (#2121)
- Consider editable dependencies to be 'direct' for
--resolution
(#2114) - Preserve environment variables in resolved Git dependencies (#2125)
- Use
prefix
instead ofbase_prefix
for environment root (#2117) - Wrap unsafe script shebangs in
/bin/sh
(#2097) - Make WHEEL parsing error line numbers one indexed (#2151)
- Determine
site-packages
path based on implementation name (#2094)
- Add caveats on
--system
support to the README (#2131) - Add instructions for
SSL_CERT_FILE
env var (#2124)
- Prioritize
PATH
overpy --list-paths
in Windows selection (#2057). This fixes an issue in which the--system
flag would not work correctly on Windows in GitHub Actions. - Avoid canonicalizing user-provided interpreters (#2072). This fixes an issue in which the
--python
flag would not work correctly with pyenv and other interpreters. - Allow pre-releases for requirements in constraints files (#2069)
- Avoid truncating EXTERNALLY-MANAGED error message (#2073)
- Extend activation highlighting to entire
venv
command (#2070) - Reverse the order of
--index-url
and--extra-index-url
priority (#2083) - Avoid assuming
RECORD
file is inplatlib
(#2091)
- Add a
--python
flag to allow installation into arbitrary Python interpreters (#2000) - Add a
--system
flag for opt-in non-virtualenv installs (#2046)
- Add a
--pre
alias for--prerelease=allow
(#2049) - Enable
freeze
andlist
to introspect non-virtualenv Pythons (#2033) - Support environment variables in index URLs in requirements files (#2036)
- Add
--exclude-editable
and--exclude
args touv pip list
(#1985) - Always remove color codes from output file (#2018)
- Support recursive extras in direct
pyproject.toml
files (#1990) - Un-cache editable requirements with dynamic metadata (#2029)
- Use a non-local lock file for locking system interpreters (#2045)
- Surface the
EXTERNALLY-MANAGED
message to users (#2032)
- Add support for pip-compile's
--unsafe-package
flag (#1889) - Improve interpreter discovery logging (#1909)
- Implement
uv pip list
(#1662) - Allow round-trip via
freeze
command (#1936) - Don't write pip compile output to stdout with
-q
(#1962) - Add long-form version output (#1930)
- Accept single string for
backend-path
(#1969) - Add compatibility for deprecated
python_implementation
marker (#1933) - Generate versioned
pip
launchers (#1918)
- Avoid erroring for source distributions with symlinks in archive (#1944)
- Expand scope of archive timestamping (#1960)
- Gracefully handle virtual environments with conflicting packages (#1893)
- Invalidate dependencies when editables are updated (#1955)
- Make < exclusive for non-prerelease markers (#1878)
- Properly apply constraints in venv audit (#1956)
- Re-sync editables on-change (#1959)
- Remove current directory from PATH in PEP 517 hooks (#1975)
- Remove
--upgrade
and--quiet
flags from generated output files (#1873) - Use full python version in
pyvenv.cfg
(#1979)
- fix
uv pip install
handling of gzip'd response and PEP 691 (#1978) - Remove
spawn_blocking
from version map (#1966)
- Clarify
lowest
vs.lowest-direct
resolution strategies (#1954) - Improve error message for network timeouts (#1961)
- Omit
--find-links
from annotation header unless requested (#1898) - Write to stdout when
--output-file
is present (#1892)
- Retain authentication when making range requests (#1902)
- Fix uv-created venv detection (#1908)
- Fix Windows
py
failure from spurious stderr (#1885) - Ignore Python 2 installations when querying for interpreters (#1905)
- Add support for
config_settings
in PEP 517 hooks (#1833) - feat: allow passing extra config k,v pairs for pyvenv.cfg when creating a venv (#1852)
- Ensure authentication is passed from the index url to distribution files (#1886)
- Use
rustls-tls-native-roots
inuv
crate (#1888) - pep440: fix version ordering (#1883)
- Hide index URLs from header if not emitted (#1835)
- Add changelog (#1881)
- Allow duplicate URLs that resolve to the same canonical URL (#1877)
- Retain authentication attached to URLs when making requests to the same host (#1874)
- Win Trampoline: Use Python executable path encoded in binary (#1803)
- Expose types to implement custom
ResolverProvider
(#1862) - Search
PATH
whenpython
can't be found withpy
(#1711) - Avoid displaying "root" package when formatting terms (#1871)
- Use more universal windows install instructions (#1811)
- Expose types to implement custom ResolverProvider (#1862)
- Stream zip archive when fetching non-range-request metadata (#1792)
- Support setting request timeout with
UV_HTTP_TIMEOUT
andHTTP_TIMEOUT
(#1780) - Improve error message when git ref cannot be fetched (#1826)
- Implement
--annotation-style
parameter foruv pip compile
(#1679)
- Add fixup for
prefect<1.0.0
(#1825) - Add support for
>dev
specifier (#1776) - Avoid enforcing URL correctness for installed distributions (#1793)
- Don't expect pinned packages for editables with non-existent extras (#1847)
- Linker copies files as a fallback when ref-linking fails (#1773)
- Move conflicting dependencies into PubGrub (#1796)
- Normalize
VIRTUAL_ENV
path in activation scripts (#1817) - Preserve executable bit when untarring archives (#1790)
- Retain passwords in Git URLs (#1717)
- Sort output when installing seed packages (#1822)
- Treat ARM wheels as higher-priority than universal (#1843)
- Use
git
command to fetch repositories instead oflibgit2
for robust SSH support (#1781) - Use redirected URL as base for relative paths (#1816)
- Use the right marker for the
implementation
field ofpyvenv.cfg
(#1785) - Wait for distribution metadata with
--no-deps
(#1812) - platform-host: check /bin/sh, then /bin/dash and then /bin/ls (#1818)
- Ensure that builds within the cache aren't considered Git repositories (#1782)
- Strip trailing
+
from version number of local Python builds (#1771)
- Add docs for git authentication (#1844)
- Update venv activation for windows (#1836)
- Update README.md to include extras example (#1806)
- Expose find_uv_bin and declare typing support (#1728)
- Implement
uv cache dir
(#1734) - Support
venv --prompt
(#1570) - Print activation instructions for a venv after one has been created (#1580)
- Add shell completions generation (#1675)
- Move
uv clean
touv cache clean
(#1733) - Allow
-f
alias for--find-links
(#1735)
- Control pip timeout duration via environment variable (#1694)
- Add support for absolute paths on Windows (#1725)
- Don't preserve timestamp in streaming unzip (#1749)
- Ensure extras trigger an install (#1727)
- Only preserve the executable bit (#1743)
- Preserve trailing slash for
--find-links
URLs (#1720) - Respect
--index-url
provided via requirements.txt (#1719) - Set index URLs for seeding venv (#1755)
- Support dotted function paths for script entrypoints (#1622)
- Support recursive extras for URL dependencies (#1729)
- Better error message for missing space before semicolon in requirements (#1746)
- Add warning when dependencies are empty with Poetry metadata (#1650)
- Ignore invalid extras from PyPI (#1731)
- Improve Poetry warning (#1730)
- Remove uv version from uv pip compile header (#1716)
- Fix handling of range requests on servers that return "Method not allowed" (#1713)
- re-introduce cache healing when we see an invalid cache entry (#1707)
- Clarify Windows install command in README.md (#1751)
- Add instructions for installing on Arch Linux (#1765)
- Allow passing in a custom reqwest Client (#1745)
- Add
CACHEDIR.TAG
to uv-created virtualenvs (#1653)
- Build source distributions in the cache directory instead of the global temporary directory (#1628)
- Do not remove uv itself on pip sync (#1649)
- Ensure we retain existing environment variables during
python -m uv
(#1667) - Add yank warnings at end of messages (#1669)
- Add brew to readme (#1629)
- Document RUST_LOG=trace for additional logging verbosity (#1670)
- Document local testing instructions (#1672)
- Minimal markdown nits (#1664)
- Use
--override
rather than-o
to specify overrides in README.md (#1668) - Remove setuptools & wheel from seed packages on Python 3.12+ (#1602) (#1613)
- Add graceful fallback for Artifactory indexes (#1574)
- Allow URL requirements in editable installs (#1614)
- Allow repeated dependencies when installing (#1558)
- Always run
get_requires_for_build_wheel
(#1590) - Avoid propagating top-level options to sub-resolutions (#1607)
- Consistent use of
BIN_NAME
in activation scripts (#1577) - Enforce URL constraints for non-URL dependencies (#1565)
- Allow non-nested archives for
hexdump
and others (#1564) - Avoid using
white
coloring in terminal output (#1576) - Bump simple metadata cache version (#1617)
- Better error messages on expect failures in resolver (#1583)
- Add license to activator scripts (#1610)
- Add support for
UV_EXTRA_INDEX_URL
(#1515) - Use the system trust store for HTTPS requests (#1512)
- Automatically detect virtual environments when used via
python -m uv
(#1504) - Add warning for empty requirements files (#1519)
- Support MD5 hashes (#1556)
- Add support for extras in editable requirements (#1531)
- Apply percent-decoding to file-based URLs (#1541)
- Apply percent-decoding to filepaths in HTML find-links (#1544)
- Avoid attempting rename in copy fallback path (#1546)
- Fix list rendering in
venv --help
output (#1459) - Fix trailing commas on
Requires-Python
in HTML indexes (#1507) - Read from
/bin/sh
if/bin/ls
cannot be found when determing libc path (#1433) - Remove URL encoding when determining file name (#1555)
- Support recursive extras (#1435)
- Use comparable representation for
PackageId
(#1543) - fix OS detection for Alpine Linux (#1545)
- only parse /bin/sh (not /bin/ls) (#1493)
- pypi-types: fix lenient requirement parsing (#1529)
- Loosen package script regexp to match spec (#1482)
- Use string display instead of debug for url parse trace (#1498)
- Provide example of file based package install. (#1424)
- Adjust link (#1434)
- Add troubleshooting section to benchmarks guide (#1485)
- infra: source github templates (#1425)
- Add
--upgrade
support topip install
(#1379) - Add
-U
/-P
short flags for--upgrade
/--upgrade-package
(#1394) - Add
UV_NO_CACHE
environment variable (#1383) - uv-cache: Add hidden alias for --no-cache-dir (#1380)
- Add fix-up for invalid star comparison with major-only version (#1410)
- Add fix-up for trailing comma with trailing space (#1409)
- Allow empty fragments in HTML parser (#1443)
- Fix search for
python.exe
on Windows (#1381) - Ignore invalid extra named
.none
(#1428) - Parse
-r
and-c
entries as relative to containing file (#1421) - Avoid import contextlib in
_virtualenv
(#1406) - Decode HTML escapes when extracting SHA (#1440)
- Fix broken URLs parsed from relative paths in registries (#1413)
- Improve error message for invalid sdist archives (#1389)
- Re-add license badge to the README (#1333)
- Replace "novel" in README (#1365)
- Tweak some grammar in the README (#1387)
- Update README.md to include venv activate (#1411)
- Update wording and add
alt
tag (#1423)
- Fix bug where
python3
is not found in the global path (#1351)