Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: astral-sh/uv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.8.19
Choose a base ref
Loading
...
head repository: astral-sh/uv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.8.20
Choose a head ref
Loading
  • 19 commits
  • 43 files changed
  • 9 contributors

Commits on Sep 20, 2025

  1. Sync latest Python releases (#15958)

    Automated update for Python releases.
    
    Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
    github-actions[bot] and zanieb authored Sep 20, 2025
    Configuration menu
    Copy the full SHA
    3979c59 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1d7d7fd View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2025

  1. Add incompatibility from proxy to base package (#15200)

    Add an incompatibility that lets pubgrub skip of marker packages when
    the base package already has an incompatible version to improve the
    error messages (#15199).
    
    The change is also a small perf improvement. Overall this should be able
    to improve performance in slow cases by avoiding trying proxy package
    versions that are impossible anyway, for a (ideally very small cost) for
    tracking the additional incompatibility and tracking the base package
    for each proxy package.
    
    ```
    $ hhyperfine --warmup 2 "uv pip compile --universal scripts/requirements/airflow.in" "target/release/uv pip compile --universal scripts/requirements/airflow.in"
    Benchmark 1: uv pip compile --universal scripts/requirements/airflow.in
      Time (mean ± σ):     145.5 ms ±   3.9 ms    [User: 154.7 ms, System: 140.7 ms]
      Range (min … max):   139.2 ms … 153.4 ms    20 runs
     
    Benchmark 2: target/release/uv pip compile --universal scripts/requirements/airflow.in
      Time (mean ± σ):     128.7 ms ±   5.5 ms    [User: 141.9 ms, System: 137.3 ms]
      Range (min … max):   121.8 ms … 142.0 ms    23 runs
     
    Summary
      target/release/uv pip compile --universal scripts/requirements/airflow.in ran
        1.13 ± 0.06 times faster than uv pip compile --universal scripts/requirements/airflow.in
    ```
    
    This implementation is the basic version: When we see a proxy
    `foo{...}>=x,<y` we add a dependency edge `foo{...}>=x,<y` ->
    `foo>=x,<y`. There are several way to extend this, which likely help
    more with performance than with error messages.
    
    One idea is that if we see `foo{...}>=x,<y` but we already made a
    selection for `foo==z` outside that range, we can insert a dependency
    `foo{...}!=z` -> `foo!=z`. This avoids trying any version of the proxy
    package except the version that matches our previous selection.
    
    Another is that if we see a dependency `foo>=x,<y`, we also add
    `foo{...}>=x,y` -> `foo>=x,<y`. This allows backtracking beyond `foo`
    immediately if all version of `foo{...}>=x,<y` are incompatible, since
    `foo{...}>=x,<y` incompatible -> `foo>=x,<y` incompatible -> the package
    that depended of `foo>=x,<y` is incompatible.
    
    The cost for each of these operations is tracking an additional
    incompatibility per virtual package. An alternative approach is to only
    add the incompatibility lazily, only when we've tried several version of
    the virtual package already. This needs to be weighed of with the better
    error messages that the incompatibility gives, we unfortunately have
    only few large reference examples.
    
    Requires astral-sh/pubgrub#45
    
    Closes #15199
    konstin authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    a6daab4 View commit details
    Browse the repository at this point in the history
  2. Update Rust crate cargo-util to v0.2.23 (#15975)

    Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
    from Renovate will soon appear from 'Mend'. Learn more
    [here](https://redirect.github.com/renovatebot/renovate/discussions/37842).
    
    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    | [cargo-util](https://redirect.github.com/rust-lang/cargo) |
    workspace.dependencies | patch | `0.2.22` -> `0.2.23` |
    
    ---
    
    > [!WARNING]
    > Some dependencies could not be looked up. Check the Dependency
    Dashboard for more information.
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/uv).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    5dd9a10 View commit details
    Browse the repository at this point in the history
  3. Update Rust crate clap to v4.5.48 (#15976)

    Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
    from Renovate will soon appear from 'Mend'. Learn more
    [here](https://redirect.github.com/renovatebot/renovate/discussions/37842).
    
    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    | [clap](https://redirect.github.com/clap-rs/clap) |
    workspace.dependencies | patch | `4.5.47` -> `4.5.48` |
    
    ---
    
    > [!WARNING]
    > Some dependencies could not be looked up. Check the Dependency
    Dashboard for more information.
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>clap-rs/clap (clap)</summary>
    
    ###
    [`v4.5.48`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4548---2025-09-19)
    
    [Compare
    Source](https://redirect.github.com/clap-rs/clap/compare/v4.5.47...v4.5.48)
    
    ##### Documentation
    
    - Add a new CLI Concepts document as another way of framing clap
    - Expand the `typed_derive` cookbook entry
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/uv).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    39f1c27 View commit details
    Browse the repository at this point in the history
  4. Update pre-commit hook astral-sh/ruff-pre-commit to v0.13.1 (#15973)

    Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
    from Renovate will soon appear from 'Mend'. Learn more
    [here](https://redirect.github.com/renovatebot/renovate/discussions/37842).
    
    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    |
    [astral-sh/ruff-pre-commit](https://redirect.github.com/astral-sh/ruff-pre-commit)
    | repository | patch | `v0.13.0` -> `v0.13.1` |
    
    ---
    
    > [!WARNING]
    > Some dependencies could not be looked up. Check the Dependency
    Dashboard for more information.
    
    Note: The `pre-commit` manager in Renovate is not supported by the
    `pre-commit` maintainers or community. Please do not report any problems
    there, instead [create a Discussion in the Renovate
    repository](https://redirect.github.com/renovatebot/renovate/discussions/new)
    if you have any questions.
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)</summary>
    
    ###
    [`v0.13.1`](https://redirect.github.com/astral-sh/ruff-pre-commit/releases/tag/v0.13.1)
    
    [Compare
    Source](https://redirect.github.com/astral-sh/ruff-pre-commit/compare/v0.13.0...v0.13.1)
    
    See: <https://github.com/astral-sh/ruff/releases/tag/0.13.1>
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/uv).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    d8c5f37 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e9987b3 View commit details
    Browse the repository at this point in the history
  6. Document support for free-threaded and debug Python versions (#15961)

    Closes #12707
    
    ---------
    
    Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
    zanieb and geofft authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    0edc567 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9cabf63 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    022a8f1 View commit details
    Browse the repository at this point in the history
  9. Allow upgrading prerelease versions of the same minor Python version (#…

    …15959)
    
    Turns out if the minor versions matched we returned false from
    `is_upgrade_of` instead of continuing to compare prerelease versions.
    
    Closes #15955.
    
    Note: test cases were initially generated by Claude - I tried making
    them shorter.
    
    ## Test plan
    
    ```
    ❯ cargo run -- -v python upgrade 3.14
    [...]
    DEBUG Inspecting existing executable at `/Users/zsol/.local/bin/python3.14`
    DEBUG Replacing existing executable for `cpython-3.14.0rc2-macos-aarch64-none` at `/Users/zsol/.local/bin/python3.14` with executable for `cpython-3.14.0rc3-macos-aarch64-none` since it is an upgrade
    DEBUG Updated executable at `/Users/zsol/.local/bin/python3.14` to cpython-3.14.0rc3-macos-aarch64-none
    Installed Python 3.14.0rc3 in 5.04s
     + cpython-3.14.0rc3-macos-aarch64-none (python3.14)
    [...]
    ❯ uvx python3.14 -V
    Python 3.14.0rc3
    ```
    zsol authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    46bf420 View commit details
    Browse the repository at this point in the history
  10. Re-upstream to dist to axodotdev/cargo-dist (#15798)

    ## Summary
    
    Both https://github.com/axodotdev/cargo-dist/releases/tag/v0.29.0 and
    https://github.com/axodotdev/cargo-dist/releases/tag/v0.30.0 seem to
    contain all relevant changes from
    https://github.com/astral-sh/cargo-dist
    
    ## Test Plan
    
    Not tested yet given I'd be running from a fork, but a dry-run run from
    astral-sh/uv would be great 😅
    samypr100 authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    6263d10 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    1224f65 View commit details
    Browse the repository at this point in the history
  12. Retain the cache lock and temporary caches during uv run and uvx (#…

    …15990)
    
    We're seeing reports of a regression from
    #15888 where `--no-cache` causes `uv
    run` and `uvx` to fail to spawn a command.
    
    The intent of this code was to allow destructive cache operations
    _after_ we'd finished setting up the environment. However, it's unclear
    to me that it's safe to run `uv cache clean` during a `uv run` operation
    (e.g., `uv run --script` uses an environment in the cache) and, more
    importantly, we cannot drop non-persistent caches (e.g., from
    `--no-cache`) as they include the environment we're spawning the command
    in.
    
    Alternative to #15977 which retains release of the lock — we may want to
    consider that approach still but this regression needs to be resolved
    quickly.
    
    Closes #15989
    Closes #15987
    Closes #15967
    zanieb authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    a502464 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    7697fa6 View commit details
    Browse the repository at this point in the history
  14. Refresh lockfile when --refresh is provided (#15991)

    ## Summary
    
    If you provide `--refresh` to `uv lock`, we'll now always resolve (even
    though it might return the same result).
    charliermarsh authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    aeb7ee0 View commit details
    Browse the repository at this point in the history
  15. Revert "Refresh lockfile when --refresh is provided (#15991)" (#15993)

    This reverts commit aeb7ee0 from
    #15991 since it will break `uv lock
    --locked --refresh` otherwise.
    zanieb authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    c21b11e View commit details
    Browse the repository at this point in the history
  16. Add --force flag for uv cache clean (#15992)

    Follows #15990 to address concerns
    there.
    zanieb authored Sep 22, 2025
    Configuration menu
    Copy the full SHA
    107d4e0 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    3e6fd0b View commit details
    Browse the repository at this point in the history
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.