Skip to content

Latest commit

 

History

History
1075 lines (742 loc) · 60.4 KB

CHANGELOG.md

File metadata and controls

1075 lines (742 loc) · 60.4 KB

Changelog

0.1.45

Enhancements

  • Parse and store extras on editable requirements (#3629)
  • Allow local versions in wheel filenames (#3596)
  • Create lib64 symlink for 64-bit, non-macOS, POSIX environments (#3584)

Configuration

  • Add UV_CONCURRENT_INSTALLS variable in favor of RAYON_NUM_THREADS (#3646)
  • Add serialization and deserialization for --find-links (#3619)
  • Apply combination logic to merge CLI and persistent configuration (#3618)

Performance

  • Parallelize resolver (#3627)

Bug fixes

  • Reduce sensitivity of unknown option error to discard Python 2 interpreters (#3580)
  • Respect installed packages in uv run (#3603)
  • Separate cache construction from initialization (#3607)
  • Add missing "directory" branch in source match (#3608)
  • Fix source annotation in pip compile annotation-style=line output (#3637)
  • Run cargo update to pull in h2 (#3638)
  • URL-decode hashes in HTML fragments (#3655)
  • Always print JSON output with --format json (#3671)

Documentation

  • Add UV_CONFIG_FILE environment variable to documentation (#3653)
  • Explicitly mention --user in compatibility guide (#3666)

Release

  • Add musl ppc64le support (#3537)
  • Retag musl aarch64 for manylinux2014 (#3624)

0.1.44

Release

Reverts "Use manylinux: auto to enable musllinux_1_2 aarch64 builds (#3444)"

The manylinux change appeared to introduce SSL errors when building aarch64 Docker images, e.g.,

invalid peer certificate: BadSignature

The v0.1.42 behavior for aarch64 manylinux builds is restored in this release.

See #3576

0.1.43

Enhancements

  • Annotate sources of requirements in pip compile output (#3269)
  • Track origin for setup.py files and friends (#3481)

Configuration

  • Consolidate concurrency limits and expose as environment variables (#3493)

Release

  • Use manylinux: auto to enable musllinux_1_2 aarch64 builds (#3444)
  • Enable musllinux_1_1 wheels (#3523)

Bug fixes

  • Avoid keyword arguments for PEP 517 build hooks (#3517)
  • Apply advisory locks when building source distributions (#3525)
  • Avoid attempting to build editables when fetching metadata (#3563)
  • Clone individual files on windows ReFS (#3551)
  • Filter irrelevant requirements from source annotations (#3479)
  • Make cache clearing robust to directories without read permissions (#3524)
  • Respect constraints on editable dependencies (#3554)
  • Skip Python 2 versions when locating Python (#3476)
  • Make --isolated a global argument (#3558)
  • Allow unknown pyproject.toml fields (#3511)
  • Change error value detection for glibc (#3487)

0.1.42

This release includes stabilized support for persistent configuration in uv.

uv will now read project configuration from a pyproject.toml or uv.toml file in the current directory or any parent directory, along with user configuration at ~/.config/uv/uv.toml (or $XDG_CONFIG_HOME/uv/uv.toml) on macOS and Linux, and %APPDATA%\uv\uv.toml on Windows.

See: Persistent Configuration for more.

Enhancements

  • Respect MACOSX_DEPLOYMENT_TARGET in --python-platform (#3470)

Configuration

  • Add documentation for persistent configuration (#3467)
  • Add JSON Schema export to SchemaStore (#3461)
  • Merge user and workspace settings (#3462)

Bug fixes

  • Use Metadata10 to parse PKG-INFO of legacy editable (#3450)
  • Apply normcase to line from easy-install.pth (#3451)
  • Upgrade async_http_range_reader to v0.8.0 to respect redirects in range requests (#3460)
  • Use last non-EOL version for --python-platform macOS (#3469)

0.1.41

Bug fixes

  • Remove unconstrained version error from requirements (#3443)

0.1.40

Enhancements

  • Add --allow-existing to overwrite existing virtualenv (#2548)
  • Respect and enable uninstalls of legacy editables (.egg-link) (#3415)
  • Respect and enable uninstalls of existing .egg-info packages (#3380)

CLI

  • Accept --no-upgrade, --no-refresh, etc. on the CLI (#3328)

Configuration

  • Expose UV_NO_BUILD_ISOLATION as environment variable (#3318)
  • Expose UV_PYTHON as an environment variable (#3284)
  • Expose UV_LINK_MODE as environment variable (#3315)
  • Add UV_CUSTOM_COMPILE_COMMAND to environment variable docs (#3382)

Bug fixes

  • Ignore 401 HTTP responses with multiple indexes (#3292)
  • Avoid panic for file URLs (#3306)
  • Quote version parse errors consistently (#3325)
  • Detect current environment when uv is invoked from within a virtualenv (#3379)
  • Unset target when creating virtual environments (#3362)
  • Update activation scripts from virtualenv (#3376)
  • Use canonical URLs in satisfaction check (#3373)

0.1.39

Enhancements

  • Add --target support to sync and install (#3257)
  • Implement --index-strategy unsafe-best-match (#3138)

Bug fixes

  • Fix platform_machine tag for --python-platform on macOS ARM (#3267)

Release

  • Build a separate ARM wheel for macOS (#3268)
  • Use macos-12 to build release wheels (#3264)

0.1.38

Enhancements

  • Add alternate manylinux targets to --python-platform (#3229)
  • An enum and backticks for lookahead error (#3216)
  • Upgrade macOS target to 12.0 (#3228)
  • Add keyring logs for URL and host fetches (#3212)
  • Combine unresolvable error dependency clauses with the same root (#3225)

CLI

  • Gave a better name to the --color placeholder (#3226)
  • Warn when an unsupported Python version is encountered (#3250)

Configuration

  • Use directory instead of file when searching for uv.toml file (#3203)

Performance

  • Only perform fetches of credentials for a realm and username combination once (#3237)
  • Unroll self-dependencies via extras (#3230)
  • Use read-write locks instead of mutexes in authentication handling (#3210)

Bug fixes

  • Avoid removing quites from requirements markers (#3214)
  • Avoid adding extras when expanding constraints (#3232)
  • Reinstall package when editable label is removed (#3219)

Documentation

  • Add RAYON_NUM_THREADS to environment variable docs (#3223)
  • Document support for HTTP proxy variables (#3247)
  • Fix documentation for --python-platform (#3220)

0.1.37

Enhancements

  • Change default HTTP read timeout to 30s (#3182)
  • Add --python-platform to sync and install commands (#3154)
  • Add ticks around error messages more consistently (#3004)
  • Fix Docker publish permissions in release pipeline (#3195)
  • Improve tracing for keyring provider (#3207)

Performance

  • Update keyring provider to be async (#3089)

Bug fixes

  • Fix fetch of credentials when cache is seeded with username (#3206)

Documentation

  • Improve --python-platform documentation (#3202)

0.1.36

Enhancements

  • Add support for embedded Python on Windows (#3161)
  • Add Docker image publishing to release pipeline (#3155)

Configuration

  • Add UV_CONSTRAINT environment variable to provide value for --constraint (#3162)

Bug fixes

  • Avoid waiting for metadata for --no-deps editables (#3188)
  • Fix venvlauncher.exe reference in venv creation (#3160)
  • Fix authentication for URLs with a shared realm (#3130)
  • Restrict observed requirements to direct when --no-deps is specified (#3191)

Documentation

  • Add a versioning policy to the README (#3151)

0.1.35

Enhancements

  • Add a --python-platform argument to enable resolving against a target platform (#3111)
  • Enforce HTTP timeouts on a per-read (rather than per-request) basis (#3144)

Bug fixes

  • Avoid preferring constrained over unconstrained packages (#3148)
  • Allow UV_SYSTEM_PYTHON=1 in addition to UV_SYSTEM_PYTHON=true (#3136)

0.1.34

CLI

  • Allow --python and --system on pip compile (#3115)
  • Remove Option<bool> for --no-cache (#3129)
  • Rename --compile to --compile-bytecode (#3102)
  • Accept 0, 1, and similar values for Boolean environment variables (#3113)

Configuration

  • Add UV_REQUIRE_HASHES environment variable (#3125)
  • Add negation flags to the CLI (#3050)

Bug fixes

  • Avoid fetching unnecessary extra versions during resolution (#3100)
  • Avoid deprioritizing recursive editables (#3133)
  • Avoid treating localhost URLs as local file paths (#3132)
  • Hide password in the index printed via --emit-index-annotation (#3112)
  • Restore seeding of authentication cache from index URLs (#3124)

0.1.33

Breaking changes

Using the keyring requires a username to be provided on index URLs now. Previously, the username oauth2accesstoken was assumed. This will affect Google Artifact Registry users using --keyring-provider subprocess and an index URL without a username. The suggested fix is to add the required username to index URLs, e.g., https://oauth2accesstoken@<url>.

See #2976 for details.

Enhancements

  • Allow passing a virtual environment path to uv pip --python (#3064)
  • Add compatibility argument for pip list --outdated (#3055)

CLI

  • Enable auto-wrapping of --help output (#3058)
  • Show --require-hashes CLI argument in help (#3093)

Performance

  • Incorporate heuristics to improve package prioritization (#3087)

Bug fixes

  • Fix HTTP authentication when the password includes percent encoded characters (e.g. with Google Artifact Registry) (#2822)
  • Use usernames from URLs when looking for credentials in netrc files and the keyring #2563)
  • Skip HEAD requests for indexes that return 403 (e.g. PyPICloud) (#3070)
  • Use kebab-case consistently (#3080)
  • Show package name in no version for direct dependency error (#3056)
  • Avoid erroring when encountering .tar.bz2 source distributions (#3069)

0.1.32

Enhancements

  • Add a --require-hashes command-line setting (#2824)
  • Add hash-checking support to install and sync (#2945)
  • Add support for URL requirements in --generate-hashes (#2952)
  • Allow unnamed requirements for overrides (#2999)
  • Enforce and backtrack on invalid versions in source metadata (#2954)
  • Fall back to distributions without hashes in resolver (#2949)
  • Implement --emit-index-annotation to annotate source index for each package (#2926)
  • Log hard-link failures (#3015)
  • Support free-threaded Python (#2805)
  • Support unnamed requirements in --require-hashes (#2993)
  • Respect link mode for builds, in uv pip compile and for uv venv seed packages (#3016)
  • Force color for build error messages (#3032)
  • Surface invalid metadata as hints in error reports (#2850)

Configuration

  • Add UV_BREAK_SYSTEM_PACKAGES environment variable (#2995)

CLI

  • Remove some restrictions in argument groups (#3001)

Bug fixes

  • Add --find-links source distributions to the registry cache (#2986)
  • Allow comments after all requirements.txt entries (#3018)
  • Avoid cache invalidation on credentials renewal (#3010)
  • Avoid calling normalize_path with relative paths that extend beyond the current directory (#3013)
  • Deduplicate symbolic links between purelib and platlib (#3002)
  • Remove unused --output-file from pip install (#2975)
  • Strip query string when parsing filename from HTML index (#2961)
  • Update hashes without --upgrade if not present (#2966)

0.1.31

Bug fixes

  • Ignore direct URL distributions in prefetcher (#2943)

0.1.30

Enhancements

  • Show resolution diagnostics after pip install (#2829)

Performance

  • Speed up cold-cache urllib3-boto3-botocore performance with batched prefetching (#2452)

Bug fixes

  • Backtrack on distributions with invalid metadata (#2834)
  • Include LICENSE files in source distribution (#2855)
  • Respect --no-build and --no-binary in --find-links (#2826)
  • Respect cached local --find-links in install plan (#2907)
  • Avoid panic with multiple confirmation handlers (#2903)
  • Use scheme parsing to determine absolute vs. relative URLs (#2904)
  • Remove additional 'because' in resolution failure messages (#2849)
  • Use miette when printing pip sync resolution failures (#2848)

0.1.29

Enhancements

  • Allow conflicting Git URLs that refer to the same commit SHA (#2769)
  • Allow package lookups across multiple indexes via explicit opt-in (--index-strategy unsafe-any-match) (#2815)
  • Allow no-op --no-compile flag on CLI (#2816)
  • Upgrade rs-async-zip to support data descriptors (#2809)

Bug fixes

  • Avoid unused extras check in pip install for source trees (#2811)
  • Deduplicate editables during install commands (#2820)
  • Fix windows lock race: lock exclusive after all try lock errors (#2800)
  • Preserve .git suffixes and casing in Git dependencies (#2789)
  • Respect Git tags and branches that look like short commits (#2795)
  • Enable virtualenv creation on Windows with cpython-x86 (#2707)

Documentation

  • Document that uv is safe to run concurrently (#2818)

0.1.28

Enhancements

  • Recursively resolve direct URL references upfront (#2684)

Performance

  • Populate the in-memory index when resolving lookahead URLs (#2761)

Bug fixes

  • Detect Fish via FISH_VERSION (#2781)
  • Exclude installed distributions with multiple versions from consideration in the resolver (#2779)
  • Resolve non-determistic behavior in preferences due to site-packages ordering (#2780)
  • Use canonical URL to key redirect map (#2764)
  • Use distribution database and index for all pre-resolution phases (#2766)
  • Fix uv self update on Linux (#2783)

0.1.27

Enhancements

  • Add --exclude-editable support to pip-freeze (#2740)
  • Add pyproject.toml et al to list of prompted packages (#2746)
  • Consider installed packages during resolution (#2596)
  • Recursively allow URL requirements for local dependencies (#2702)

Configuration

  • Add UV_RESOLUTION environment variable for --resolution (#2720)

Bug fixes

  • Respect overrides in all direct-dependency iterators (#2742)
  • Respect subdirectories when reading static metadata (#2728)

0.1.26

Bug fixes

  • Bump simple cache version (#2712)

0.1.25

Breaking changes

  • Limit overrides and constraints to requirements.txt format (#2632)

Enhancements

  • Accept setup.py and setup.cfg files in compile (#2634)
  • Add --no-binary and --only-binary support to requirements.txt (#2680)
  • Allow prereleases, locals, and URLs in non-editable path requirements (#2671)
  • Use PEP 517 to extract dynamic pyproject.toml metadata (#2633)
  • Add Editable project location and Required-by to pip show (#2589)
  • Avoid prepare_metadata_for_build_wheel calls for Hatch packages with dynamic dependencies (#2645)
  • Fall back to PEP 517 hooks for non-compliant PEP 621 metadata (#2662)
  • Support file://localhost/ schemes (#2657)
  • Use normal resolver in pip sync (#2696)

CLI

  • Disallow pyproject.toml from pip uninstall -r (#2663)
  • Unhide --emit-index-url and --emit-find-links (#2691)
  • Use dense formatting for requirement version specifiers in diagnostics (#2601)

Performance

  • Add an in-memory cache for Git references (#2682)
  • Do not force-recompile .pyc files (#2642)
  • Read package metadata from pyproject.toml when it is statically defined (#2676)

Bug fixes

  • Don't error on multiple matching index URLs (#2627)
  • Extract local versions from direct URL requirements (#2624)
  • Respect --no-index with --find-links in pip sync (#2692)
  • Use Scripts folder for virtualenv activation prompt (#2690)

0.1.24

Breaking changes

  • uv pip uninstall no longer supports specifying targets with the -e / --editable flag (#2577)

Enhancements

  • Add a garbage collection mechanism to the CLI (#1217)
  • Add progress reporting for named requirement resolution (#2605)
  • Add support for parsing unnamed URL requirements (#2567)
  • Add support for unnamed local directory requirements (#2571)
  • Enable PEP 517 builds for unnamed requirements (#2600)
  • Enable install audits without resolving named requirements (#2575)
  • Enable unnamed requirements for direct URLs (#2569)
  • Respect HTTP client options when reading remote requirements files (#2434)
  • Use PEP 517 build hooks to resolve unnamed requirements (#2604)
  • Use c-string literals and update trampolines (#2590)
  • Support unnamed requirements directly in uv pip uninstall (#2577)
  • Add support for unnamed Git and HTTP requirements (#2578)
  • Make self-update an opt-in Cargo feature (#2606)
  • Update minimum rust version (cargo) to 1.76 (#2618)

Bug fixes

  • Fix self-updates on Windows (#2598)
  • Fix authentication with usernames that contain @ characters (#2592)
  • Do not error when there are warnings on Python interpreter stderr (#2599)
  • Prevent discovery of cache gitignore when building distributions (#2615)

Rust API

  • Make InstallDist.direct_url public (#2584)
  • Make AllowedYanks public (#2608)

Documentation

  • Fix badge to current CI status (#2612)

0.1.23

Enhancements

  • Implement --no-strip-extras to preserve extras in compilation (#2555)
  • Preserve hashes for pinned packages when compiling without --upgrade (#2532)
  • Add a uv self update command (#2228)
  • Use relative paths for user-facing messages (#2559)
  • Add CUSTOM_COMPILE_COMMAND support to uv pip compile (#2554)
  • Add SHA384 and SHA512 hash algorithms (#2534)
  • Treat uninstallable packages as warnings, rather than errors (#2557)

Bug fixes

  • Allow VIRTUAL_ENV to take precedence over CONDA_PREFIX (#2574)
  • Ensure mtime of site packages is updated during wheel installation (#2545)
  • Re-test validity after every lenient parsing change (#2550)
  • Run interpreter discovery under -I mode (#2552)
  • Search in both purelib and platlib for site-packages population (#2537)
  • Fix wheel builds and uploads for musl ARM (#2518)

Documentation

  • Add --link-mode defaults to CLI (#2549)
  • Add an example workflow for compiling the current environment's packages (#1968)
  • Add uv pip check diagnostics to PIP_COMPATIBILITY.md (#2544)

0.1.22

Enhancements

  • Add support for PyTorch-style local version semantics (#2430)
  • Add support for Hatch's {root:uri} paths in editable installs (#2492)
  • Implement uv pip check (#2397)
  • Add pip-like linehaul information to user agent (#2493)
  • Add additional ARM targets to release (#2417)

Bug fixes

  • Allow direct file path requirements to include fragments (#2502)
  • Avoid panicking on cannot-be-a-base URLs (#2461)
  • Drop macosx_10_0 from compatible wheel tags on aarch64 (#2496)
  • Fix operating system detection on *BSD (#2505)
  • Fix priority of ABI tags (#2489)
  • Fix priority of platform tags for manylinux (#2483)
  • Make > operator exclude post and local releases (#2471)
  • Re-add support for pyenv shims (#2503)
  • Validate required package names against wheel package names (#2516)

0.1.21

Enhancements

  • Loosen .dist-info validation to accept arbitrary versions (#2441)

Bug fixes

  • Fix macOS architecture detection on i386 machines (#2454)

0.1.20

Bug fixes

  • Add in-URL credentials to store prior to creating requests (#2446)
  • Error when direct URL requirements don't match Requires-Python (#2196)

0.1.19

Configuration

  • Add UV_NATIVE_TLS environment variable (#2412)
  • Allow SSL_CERT_FILE without requiring --native-tls (#2401)
  • Add support for retrieving credentials from keyring (#2254)

Bug fixes

  • Add backoff for transient Windows failures (#2419)
  • Move architecture and operating system probing to Python (#2381)
  • Respect --native-tls in venv (#2433)
  • Treat non-existent site-packages as empty (#2413)

Documentation

  • Document HTTP authentication (#2425)

Performance

  • Improve performance of version range operations (#2421)

0.1.18

Breaking changes

Users that rely on native root certificates (or the SSL_CERT_FILE) environment variable must now pass the --native-tls command-line flag to enable this behavior.

  • Enable TLS native root toggling at runtime (#2362)

Enhancements

  • Add --dry-run flag to uv pip install (#1436)
  • Implement "Requires" field in pip show (#2347)
  • Remove wheel from default PEP 517 backend (#2341)
  • Add UV_SYSTEM_PYTHON environment variable as alias to --system (#2354)
  • Add a -vv log level and make -v more readable (#2301)

Bug fixes

  • Expand environment variables prior to detecting scheme (#2394)
  • Fix bug where --no-binary :all: prevented build of editable packages (#2393)
  • Ignore inverse dependencies when building graph (#2360)
  • Skip prefetching when --no-deps is specified (#2373)
  • Trim injected python_version marker to (major, minor) (#2395)
  • Wait for request stream to flush before returning resolution (#2374)
  • Write relative paths for scripts in data directory (#2348)
  • Add dedicated error message for direct filesystem paths in requirements (#2369)

0.1.17

Enhancements

  • Allow more-precise Git URLs to override less-precise Git URLs (#2285)
  • Add support for Metadata 2.2 (#2293)
  • Added ability to select bytecode invalidation mode of generated .pyc files (#2297)
  • Add Seek fallback for zip files with data descriptors (#2320)

Bug fixes

  • Support reading UTF-16 requirements files (#2283)
  • Trim rows in pip list (#2298)
  • Avoid using setuptools shim of distutils (#2305)
  • Communicate PEP 517 hook results via files (#2314)
  • Increase default buffer size for wheel and source downloads (#2319)
  • Add Accept-Encoding: identity to remaining stream paths (#2321)
  • Avoid duplicating authorization header with netrc (#2325)
  • Remove duplicate INSTALLER in RECORD (#2336)

Documentation

  • Add a custom suggestion to install wheel into the build environment (#2307)
  • Document the environment variables that uv respects (#2318)

0.1.16

Enhancements

  • 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 in uv 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, enabling uv venv with PyPy and others (#2188)
  • Respect non-sysconfig-based system Pythons, enabling --system installs on Debian and others (#2193)

Bug fixes

  • Fallback to fresh request on non-validating 304 (#2218)
  • Add .stdout() and .stderr() outputs to Printer (#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)

Documentation

  • Add PIP_COMPATIBILITY.md to document known deviations from pip (#2244)

0.1.15

Enhancements

  • Add a --compile option to install 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)

Bug fixes

  • 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)

0.1.14

Enhancements

  • Add support for --system-site-packages in uv 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)

Bug fixes

  • 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 of base_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)

Documentation

  • Add caveats on --system support to the README (#2131)
  • Add instructions for SSL_CERT_FILE env var (#2124)

0.1.13

Bug fixes

  • Prioritize PATH over py --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 in platlib (#2091)

0.1.12

CLI

  • Add a --python flag to allow installation into arbitrary Python interpreters (#2000)
  • Add a --system flag for opt-in non-virtualenv installs (#2046)

Enhancements

  • Add a --pre alias for --prerelease=allow (#2049)
  • Enable freeze and list to introspect non-virtualenv Pythons (#2033)
  • Support environment variables in index URLs in requirements files (#2036)
  • Add --exclude-editable and --exclude args to uv 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)

0.1.11

Enhancements

  • 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)

Compatibility

  • Accept single string for backend-path (#1969)
  • Add compatibility for deprecated python_implementation marker (#1933)
  • Generate versioned pip launchers (#1918)

Bug fixes

  • 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)

Performance

  • fix uv pip install handling of gzip'd response and PEP 691 (#1978)
  • Remove spawn_blocking from version map (#1966)

Documentation

  • Clarify lowest vs. lowest-direct resolution strategies (#1954)
  • Improve error message for network timeouts (#1961)

0.1.10

Enhancements

  • Omit --find-links from annotation header unless requested (#1898)
  • Write to stdout when --output-file is present (#1892)

Bug fixes

  • 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)

0.1.9

Enhancements

  • 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)

Bug fixes

  • Ensure authentication is passed from the index url to distribution files (#1886)
  • Use rustls-tls-native-roots in uv crate (#1888)
  • pep440: fix version ordering (#1883)
  • Hide index URLs from header if not emitted (#1835)

Documentation

0.1.8

Bug fixes

  • 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 when python can't be found with py (#1711)
  • Avoid displaying "root" package when formatting terms (#1871)

Documentation

  • Use more universal windows install instructions (#1811)

Rust API

  • Expose types to implement custom ResolverProvider (#1862)

0.1.7

Enhancements

  • Stream zip archive when fetching non-range-request metadata (#1792)
  • Support setting request timeout with UV_HTTP_TIMEOUT and HTTP_TIMEOUT (#1780)
  • Improve error message when git ref cannot be fetched (#1826)

Configuration

  • Implement --annotation-style parameter for uv pip compile (#1679)

Bug fixes

  • 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 of libgit2 for robust SSH support (#1781)
  • Use redirected URL as base for relative paths (#1816)
  • Use the right marker for the implementation field of pyvenv.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)

Documentation

  • Add docs for git authentication (#1844)
  • Update venv activation for windows (#1836)
  • Update README.md to include extras example (#1806)

0.1.6

Enhancements

  • 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)

CLI

  • Add shell completions generation (#1675)
  • Move uv clean to uv cache clean (#1733)
  • Allow -f alias for --find-links (#1735)

Configuration

  • Control pip timeout duration via environment variable (#1694)

Bug fixes

  • 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)

Documentation

  • Clarify Windows install command in README.md (#1751)
  • Add instructions for installing on Arch Linux (#1765)

Rust API

  • Allow passing in a custom reqwest Client (#1745)

0.1.5

Enhancements

  • Add CACHEDIR.TAG to uv-created virtualenvs (#1653)

Bug fixes

  • 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)

Documentation

  • 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)

0.1.4

Enhancements

  • Add CMD support (#1523)
  • Improve tracing when encountering invalid requires-python values (#1568)

Bug fixes

  • 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)

Documentation

  • Add license to activator scripts (#1610)

0.1.3

Enhancements

  • 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)

Bug fixes

  • 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 determining 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)

Documentation

  • Provide example of file based package install. (#1424)
  • Adjust link (#1434)
  • Add troubleshooting section to benchmarks guide (#1485)
  • infra: source github templates (#1425)

0.1.2

Enhancements

  • Add --upgrade support to pip 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)

Bug fixes

  • 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)

Documentation

  • 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)

0.1.1

Bug fixes

  • Fix bug where python3 is not found in the global path (#1351)

Documentation

  • Fix diagram alignment (#1354)
  • Grammar nit (#1345)