Update astral-sh/setup-uv action to v8 #8

Merged
fzorb merged 1 commit from renovate/astral-sh-setup-uv-8.x into master 2026-06-25 10:43:56 +00:00
Owner

This PR contains the following updates:

Package Type Update Change
astral-sh/setup-uv action major v3v8.2.0

Release Notes

astral-sh/setup-uv (astral-sh/setup-uv)

v8.2.0: 🌈 New inputs quiet and download-from-astral-mirror

Compare Source

Changes

This release brings two new inputs and a few bug fixes.

New inputs

Lets talk about the new inputs first.

quiet

Pretty simple. It turns of all info loggings. Useful if you use this in a composite action and are not interested in all the details.
In the upcoming releases we will add log groups to fully implement support for "less noise"

[!NOTE]
Warnings and errors are always logged.

download-from-astral-mirror

In some cases you may want to directly use the fallback of checking for available versions and downloading releases from GitHub instead of using the astral.sh mirror. Setting download-from-astral-mirror: false allows you to do that.

Bugfixes

When using the astral.sh mirror to query available versions and download releases (done by default) we now stop sending the GitHub token in the header. The mirror never looked at it but we shouldn't be handing out that data even if it is just a short lived token.
All other bugfixes try to limit the impact of failed GitHub queries due to retries and other faults.

We couldn't pinpoint all rootcauses yet but added more logging for error cases to track them down.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v8.1.0: 🌈 New input no-project

Compare Source

Changes

This add the a new boolean input no-project.
It only makes sense to use in combination with activate-environment: true and will append --no project to the uv venv call. This is for example useful if you have a pyproject.toml file with parts unparseable by uv

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v8.0.0: 🌈 Immutable releases and secure tags

Compare Source

This is the first immutable release of setup-uv 🥳

All future releases are also immutable, if you want to know more about what this means checkout the docs.

This release also has two breaking changes

New format for manifest-file

The previously deprecated way of defining a custom version manifest to control which uv versions are available and where to download them from got removed. The functionality is still there but you have to use the new format.

No more major and minor tags

To increase security even more we will stop publishing minor tags. You won't be able to use @v8 or @v8.0 any longer. We do this because pinning to major releases opens up users to supply chain attacks like what happened to tj-actions.

[!TIP]
Use the immutable tag as a version astral-sh/setup-uv@v8.0.0
Or even better the githash astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57

🚨 Breaking changes

🧰 Maintenance

v7.6

Compare Source

v7.6.0: 🌈 Fetch uv from Astral's mirror by default

Compare Source

Changes

We now default to download uv from releases.astral.sh.
This means by default we don't hit the GitHub API at all and shouldn't see any rate limits and timeouts any more.

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v7.5

Compare Source

v7.5.0: 🌈 Use astral-sh/versions as version provider

Compare Source

No more rate-limits

This release addresses a long-standing source of timeouts and rate-limit failures in setup-uv.

Previously, the action resolved version identifiers like 0.5.x by iterating over available uv releases via the GitHub API to find the best match. In contrast, latest and exact versions such as 0.5.0 skipped version resolution entirely and downloaded uv directly.

The manifest-file input was an earlier attempt to improve this. It allows providing an url to a file that lists available versions, checksums, and even custom download URLs. The action also shipped with such a manifest.
However, because that bundled file could become outdated whenever new uv releases were published, the action still had to fall back to the GitHub API in many cases.

This release solves the problem by sourcing version data from Astral’s versions repository via the raw content endpoint:

https://raw.githubusercontent.com/astral-sh/versions/refs/heads/main/v1/uv.ndjson

By using the raw endpoint instead of the GitHub API, version resolution no longer depends on API authentication and is much less likely to run into rate limits or timeouts.


[!TIP]
The next section is only interesting for users of the manifest-file input

The manifest-file input lets you override that source with your own URL, for example to test custom uv builds or alternate download locations.

The manifest file must be in NDJSON format, where each line is a JSON object representing a version and its artifacts. For example:

{"version":"0.10.7","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
{"version":"0.10.6","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}

[!WARNING]
The old format still works but is deprecated. A warning will be logged when you use it.

Changes

🚀 Enhancements

📚 Documentation

v7.4

Compare Source

v7.4.0: 🌈 Add riscv64 architecture support to platform detection

Compare Source

Changes

Thank you @​luhenry for adding support for riscv64 arch

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v7.3.1: 🌈 fall back to VERSION_CODENAME when VERSION_ID is not available

Compare Source

Changes

This release adds support for running in containers like debian:testing or debian:unstable

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v7.3.0: 🌈 New features and bug fixes for activate-environment

Compare Source

Changes

This release contains a few bug fixes and a new feature for the activate-environment functionality.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v7.3

Compare Source

v7.2.1: 🌈 update known checksums up to 0.9.28

Compare Source

Changes

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v7.2.0: 🌈 add outputs python-version and python-cache-hit

Compare Source

Changes

Among some minor typo fixes and quality of life features for developers of actions the main feature of this release are new outputs:

  • python-version: The Python version that was set (same content as existing UV_PYTHON)
  • python-cache-hit: A boolean value to indicate the Python cache entry was found

While implementing this it became clear, that it is easier to handle the Python binaries in a separate cache entry. The added benefit for users is that the "normal" cache containing the dependencies can be used in all runs no matter if these cache the Python binaries or not.

[!NOTE]
This release will invalidate caches that contain the Python binaries. This happens a single time.

🐛 Bug fixes

  • chore: remove stray space from UV_PYTHON_INSTALL_DIR message @​akx (#​720)

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v7.2

Compare Source

v7.1.6: 🌈 add OS version to cache key to prevent binary incompatibility

Compare Source

Changes

This release will invalidate your cache existing keys!

The os version e.g. ubuntu-22.04 is now part of the cache key. This prevents failing builds when a cache got populated with wheels built with different tools (e.g. glibc) than are present on the runner where the cache got restored.

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v7.1.5: 🌈 allow setting cache-local-path without enable-cache: true

Compare Source

Changes

#​612 fixed a faulty behavior where this action set UV_CACHE_DIR even though enable-cache was false. It also fixed the cases were the cache dir is already configured in a settings file like pyproject.toml or UV_CACHE_DIR was already set. Here the action shouldn't overwrite or set UV_CACHE_DIR.

These fixes introduced an unwanted behavior: You can still set cache-local-path but this action didn't do anything. This release fixes that.

You can now use cache-local-path to automatically set UV_CACHE_DIR even when enable-cache is false (or gets set to false by default e.g. on self-hosted runners)

- name: This is now possible
  uses: astral-sh/setup-uv@v7
  with:
    enable-cache: false
    cache-local-path: "/path/to/cache"

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v7.1.4: 🌈 Fix libuv closing bug on Windows

Compare Source

Changes

This release fixes the bug Assertion failed: !(handle->flags & UV_HANDLE_CLOSING) on Windows runners

🐛 Bug fixes

🧰 Maintenance

v7.1.3: 🌈 Support act

Compare Source

Changes

This bug fix release adds support for https://github.com/nektos/act
It was previously broken because of a too new undici version and TS transpilation target.

Compatibility with act is now automatically tested.

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

v7.1.2: 🌈 Speed up extraction on Windows

Compare Source

Changes

@​lazka fixed a bug that caused extracting uv to take up to 30s. Thank you!

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v7.1.1: 🌈 Fix empty workdir detection and lowest resolution strategy

Compare Source

Changes

This release fixes a bug where the working-directory input was not used to detect an empty work dir. It also fixes the lowest resolution strategy resolving to latest when only a lower bound was specified.

Special thanks to @​tpgillam for the first contribution!

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v7.1.0: 🌈 Support all the use cases

Compare Source

Changes

Support all the use cases!!!
... well, that we know of.

This release adds support for some use cases that most users don't encounter but are useful for e.g. people running Gitea.

The input resolution-strategy lets you use the lowest possible version of uv from a version range. Useful if you want to test your tool with different versions of uv.

If you use activate-environment the path to the activated venv is now also exposed under the output venv.

Downloaded python installations can now also be uploaded to the GitHub Actions cache backend. Useful if you are running in act and have configured your own backend and don't want to download python again, and again over a slow internet connection.

Finally the path to installed python interpreters is now added to the PATH on Windows.

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v7.1

Compare Source

v7.0

Compare Source

v7.0.0: 🌈 node24 and a lot of bugfixes

Compare Source

Changes

This release comes with a load of bug fixes and a speed up. Because of switching from node20 to node24 it is also a breaking change. If you are running on GitHub hosted runners this will just work, if you are using self-hosted runners make sure, that your runners are up to date. If you followed the normal installation instructions your self-hosted runner will keep itself updated.

This release also removes the deprecated input server-url which was used to download uv releases from a different server.
The manifest-file input supersedes that functionality by adding a flexible way to define available versions and where they should be downloaded from.

Fixes
  • The action now respects when the environment variable UV_CACHE_DIR is already set and does not overwrite it. It now also finds cache-dir settings in config files if you set them.
  • Some users encountered problems that cache pruning took forever because they had some uv processes running in the background. Starting with uv version 0.8.24 this action uses uv cache prune --ci --force to ignore the running processes
  • If you just want to install uv but not have it available in path, this action now respects UV_NO_MODIFY_PATH
  • Some other actions also set the env var UV_CACHE_DIR. This action can now deal with that but as this could lead to unwanted behavior in some edgecases a warning is now displayed.
Improvements

If you are using minimum version specifiers for the version of uv to install for example

[tool.uv]
required-version = ">=0.8.17"

This action now detects that and directly uses the latest version. Previously it would download all available releases from the uv repo
to determine the highest matching candidate for the version specifier, which took much more time.

If you are using other specifiers like 0.8.x this action still needs to download all available releases because the specifier defines an upper bound (not 0.9.0 or later) and "latest" would possibly not satisfy that.

🚨 Breaking changes

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v7

Compare Source

v6.8

Compare Source

v6.8.0: 🌈 Add **/*.py.lock to cache-dependency-glob

Compare Source

Changes

Thanks to @​parched the default cache-dependency-glob now also find all lock files generated by uv lock --script

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v6.7

Compare Source

v6.7.0: 🌈 New inputs restore-cache and save-cache

Compare Source

Changes

This release adds fine-grained control over the caching steps.

  • The input restore-cache (true by default) can be set to false to skip restoring the cache while still allowing to save the cache.
  • The input save-cache (true by default) can be set to false to skip saving the cache.

Skipping cache saving can be useful if you know, that you will never use this version of the cache again and don't want to waste storage space:

- name: Save cache only on main branch
  uses: astral-sh/setup-uv@v6
  with:
    enable-cache: true
    save-cache: ${{ github.ref == 'refs/heads/main' }}

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v6.6.1: 🌈 Fix exclusions in cache-dependency-glob

Compare Source

Changes

Exclusions with a leading ! in the cache-dependency-glob did not work and got fixed with this release. Thank you @​KnisterPeter for raising this!

🐛 Bug fixes

🧰 Maintenance

v6.6.0: 🌈 Support for .tools-versions

Compare Source

Changes

This release adds support for asdf .tool-versions in the version-file input

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

v6.6

Compare Source

v6.5

Compare Source

v6.5.0: 🌈 Better error messages, bug fixes and copilot agent settings

Compare Source

Changes

This release brings better error messages in case the GitHub API is impacted, fixes a few bugs and allows to disable problem matchers for better use in Copilot Agent workspaces.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v6.4.3: 🌈 fix relative paths starting with dots

Compare Source

🐛 Bug fixes

v6.4.2: 🌈 Interpret relative inputs as under working-directory

Compare Source

Changes

This release will interpret relative paths in inputs as relative
to the value of working-directory (default is ${{ github.workspace }}) .
This means the following configuration

- uses: astral-sh/setup-uv@v6
   with:
     working-directory: /my/path
     cache-dependency-glob: uv.lock

will look for the cache-dependency-glob under /my/path/uv.lock

🐛 Bug fixes

🧰 Maintenance

v6.4.1: 🌈 Hotfix: Ignore deps starting with uv when finding uv version

Compare Source

Changes

Thank you @​phpmypython for raising a PR to fix this issue!

🐛 Bug fixes

v6.4.0: 🌈 Add input version-file

Compare Source

Changes

You can now use the version-file input to specify a file that contains the version of uv to install.
This can either be a pyproject.toml or uv.toml file which defines a required-version or
uv defined as a dependency in pyproject.toml or requirements.txt.

- name: Install uv based on the version defined in requirements.txt
  uses: astral-sh/setup-uv@v6
  with:
    version-file: "requirements.txt"

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v6.4

Compare Source

v6.3.1: 🌈 Do not warn when version not in manifest-file

Compare Source

Changes

This is a hotfix to change the warning messages that a version could not be found in the local manifest-file to info level.

A setup-uv release contains a version-manifest.json file with infos in all available uv releases. When a new uv version is released this is not contained in this file until the file gets updated and a new setup-uv release is made.
We will overhaul this process in the future but for now the spamming of warnings is removed.

🐛 Bug fixes

🧰 Maintenance

v6.3.0: 🌈 Use latest version from manifest-file

Compare Source

Changes

If a manifest-file is supplied the default value of the version input (latest) will get the latest version available in the manifest. That might not be the actual latest version available in the official uv repo.

🚀 Enhancements

v6.3

Compare Source

v6.2.1: 🌈 Fix "No such file or directory version-manifest.json"

Compare Source

Changes

Release v6.2.0 contained a bug that slipped through the automated test. The action tried to look for the default version-manifest.json in the root of the repostory using this action instead of relative to the action itself.

🐛 Bug fixes

v6.2

Compare Source

v6.2.0: 🌈 New input manifest-file

Compare Source

Changes

This release adds a new input manifest-file.

The manifest-file input allows you to specify a JSON manifest that lists available uv versions,
architectures, and their download URLs. By default, this action uses the manifest file contained
in this repository, which is automatically updated with each release of uv.

The manifest file contains an array of objects, each describing a version,
architecture, platform, and the corresponding download URL.

You can supply a custom manifest file URL to define additional versions,
architectures, or different download URLs.
This is useful if you maintain your own uv builds or want to override the default sources.

For example:

[
  {
    "version": "0.7.12-alpha.1",
    "artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
    "arch": "x86_64",
    "platform": "unknown-linux-gnu",
    "downloadUrl": "https://release.pyx.dev/0.7.12-alpha.1/uv-x86_64-unknown-linux-gnu.tar.gz"
  },
  ...
]
- name: Use a custom manifest file
  uses: astral-sh/setup-uv@v6
  with:
    manifest-file: "https://example.com/my-custom-manifest.json"

[!WARNING]
If you have previously used server-url to use your self hosted uv binaries use this new way instead.
server-url is deprecated and will be removed in a future release

🚀 Enhancements

🧰 Maintenance

v6.1

Compare Source

v6.1.0: 🌈

Compare Source

Changes

This release adds the input server-url which defaults to https://github.com. You can set this to a custom url to control where this action downloads the uv release from. This is useful for users of gitea and comparable solutions.

@​sebadevo pointed out that we don't invalidate the cache when the prune-cache input is changed. This leads to unnessecarily big caches. The input is now used to compute the cache key, properly invalidating the cache when it is changed.

[!NOTE]
For most users this release will invalidate the cache once.
You will see the known warning no-github-actions-cache-found-for-key
This is expected and will only appear once.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

  • Add section to README explaining if packages are installed by setup-uv @​pirate (#​398)

⬆️ Dependency updates

v6.0.1: 🌈 Fix default cache dependency glob

Compare Source

Changes

The new default in v6 used illegal patterns and therefore didn't match requirements files. This is now fixed.

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v6.0.0: 🌈 activate-environment and working-directory

Compare Source

Changes

This version contains some breaking changes which have been gathering up for a while. Lets dive into them:

Activate environment

In previous versions using the input python-version automatically activated a venv at the repository root.
This led to some unwanted side-effects, was sometimes unexpected and not flexible enough.

The venv activation is now explicitly controlled with the new input activate-environment (false by default):

- name: Install the latest version of uv and activate the environment
  uses: astral-sh/setup-uv@v6
  with:
    activate-environment: true
- run: uv pip install pip

The venv gets created by the uv venv command so the python version is controlled by the python-version input or the files pyproject.toml, uv.toml, .python-version in the working-directory.

Working Directory

The new input working-directory controls where we look for pyproject.toml, uv.toml and .python-version files
which are used to determine the version of uv and python to install.

It can also be used to control where the venv gets created.

- name: Install uv based on the config files in the working-directory
  uses: astral-sh/setup-uv@v6
  with:
    working-directory: my/subproject/dir

[!CAUTION]

The inputs pyproject-file and uv-file have been removed.

Default cache-dependency-glob

@​ssbarnea found out that the default cache-dependency-glob was not suitable for a lot of users.

The old default

cache-dependency-glob: |
  **/requirements*.txt
  **/uv.lock

is changed and should cover over 99.5% of use cases:

cache-dependency-glob: |
  **/*(requirements|constraints)*.(txt|in)
  **/pyproject.toml
  **/uv.lock

[!NOTE]

This shouldn't be a breaking change. The only thing you may notice is that your caches get invalidated once.

Use default cache dir on self hosted runners

The directory where uv stores its cache was always set to a directory in RUNNER_TEMP. For self-hosted runners this made no sense as this gets cleaned after every run and led to slower runs than necessary.

On self-hosted runners UV_CACHE_DIR is no longer set and the default cache directory is used instead.

🚨 Breaking changes

🧰 Maintenance

📚 Documentation

v6.0

Compare Source

v6

Compare Source

v5.4.2: 🌈 Make sure uv installed by setup-uv is first in PATH

Compare Source

Changes

This release fixes an issue on self-hosted runners.
If you manually installed uv with version 0.5.0 or later this version would overwrite the uv version installed by this action.
We now make sure the version installed by this action is the first found in PATH

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

v5.4.1: 🌈 Add support for pep440 version specifiers

Compare Source

Changes

With this release you can also use pep440 version specifiers as required-version in filesuv.toml, pyroject.toml and in the version input:

- name: Install a pep440-specifier-satisfying version of uv
  uses: astral-sh/setup-uv@v5
  with:
    version: ">=0.4.25,<0.5"

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

v5.4.0: 🌈 uv and uvx path as outputs

Compare Source

Changes

The absolute paths to the uv and uvx binaries can now be accessed via the outputs uv-path and uvx-path.

setup-uv now also issues a warning if the working directory is empty. This makes users aware of the common mistake to run setup-uv before actions/checkout. You can remove the warning by setting ignore-empty-workdir: true

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v5.4

Compare Source

v5.3.1: 🌈 - Fix issues with GHES and HTTP proxies

Compare Source

Changes

This release fixes some issues when this action was used behind a HTTP proxy or with GHES.
If you have been seeing ENOTFOUND or timeout errors, this release should fix that.

A huge thank you to everyone who helped investigating this and testing the fixes:

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v5.3.0: 🌈 Support MUSL, s390x and powerpc

Compare Source

In this release we add support for MUSL based systems.
This is helpful if you are running your workflow inside a docker image based on alpine.

[!TIP]
Please be aware that you have to make sure a python interpreter is already present (apk add python3), see also https://docs.astral.sh/uv/concepts/python-versions/#cpython-distributions and astral-sh/uv#6890

@​Zxilly also added support for running this action on self-hosted runners using s390x and powerpc architectures. Thank you!

This release also includes more debug logs which makes tracking down issues easier in the future.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

v5.3

Compare Source

v5.2.2: 🌈 Full support for GHES

Compare Source

Changes

This release fixes some issues that prevented use with GitHub Enterprise Server instances.

🐛 Bug fixes

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v5.2.1: 🌈 Support toml spec 1.0.0

Compare Source

v5.2.0 introduced TOML parsing using @​iarna/toml because we already found out in astral-sh/ruff-action that toml has missing features.

As it turns out @​iarna/toml also is not fully TOML spec (1.0.0) compliant.

We now use smol-toml

🐛 Bug fixes

v5.2.0: 🌈 Detect required-version from config file

Compare Source

This release adds support to derive the version of uv to be installed from pyproject.toml and uv.toml files.
If no version input is defined the default is now to look for a required-version in uv.toml and then pyproject.toml in the repository root. If it cannot find any it falls back to latest.

If your files are at a different place you can use the new inputs uv-file or pyproject-file.

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v5.2

Compare Source

v5.1

Compare Source

v5.1.0: 🌈 Fewer cache invalidations

Compare Source

Changes

This release includes less frequently invalidated caches and a fix for setting the correct VIRTUAL_ENV

🐛 Bug fixes

🚀 Enhancements

📚 Documentation

v5.0.1: 🌈 The christmas elves overlooked something

Compare Source

Changes

With so many breaking changes so close to the end of the year we missed something.

Thank you @​ryanhiebert for quickly reporting that our new defaults fail the workflow if neither a uv.lock nor a requirements*.txt can be found. This is now a warning instead.

🐛 Bug fixes

v5.0

Compare Source

v5.0.0: 🎄 Merry Christmas - Help fastly and users by default

Compare Source

Changes

This christmans 🎄 release is a bit early bit still full of presents 🎁
Since we are changing some of the defaults this can lead to breaking changes, thus the major version increase.

Here are the highlights:

Default to enable-cache: true on GitHub hosted runners

Did you know that that Fastly, the company hosting PyPI, theoretically has to pay $12.5 million per month and so far have served more than 2.41 exabytes of data?
image

This is why they asked us to turn on caching by default. After weighting the pros and cons we decided to automatically upload the cache to the GitHub Actions cache when running on GitHub hosted runners. You can still disable that with enable-cache: false.

I remember when I first got into actions and didn't understand all the magic. I was baffled that some actions did something behind the scenes to make everything faster. I hope with this change we help a lot of users who are don't want to or are afraid to understand what enable-cache does.

Add **/requirements*.txt to default cache-dependency-glob

If caching is enabled we automatically searched for a uv.lock file and when this changed we knew we had to refresh the cache. A lot of projects don't use this but rather the good old requirements.txt. We now automatically search for both uv.lockand requirements*.txt (this means also requirements-test.txt, requirements-dev.txt, ...) files.
You can change this with cache-dependency-glob

Auto activate venv when python-version is set

Some workflows install packages on the fly. This automatically works when using a python version that is already present on the runner. But if uv installs the version, e.g. because it is a free-threaded version or an old one, it is a standalone-build and installing packages "into the system" is not possible.

We now automatically create a new virtual environment with uv venv and activate it for the rest of the workflow if python-version is used. This means you can now do

- name: Install uv
  uses: astral-sh/setup-uv@auto-environment
  with:
    python-version: 3.13t
- run: uv pip install -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython

🚨 Breaking changes

🐛 Bug fixes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v5

Compare Source

v4.2

Compare Source

v4.2.0: 🌈 Resolve latest version instead of downloading latest release

Compare Source

Changes

We got a frist contribution from @​pollenjp!

Thanks to this we are now resolving the latest version and try to find it in the local cache instead of always downloading the latest release from the uv repository.
This new approach is not only more efficient, it also fixes a latent bug in the self-hosted runners tools cache and makes the code more maintainable.

Thank you @​pollenjp!

🚀 Enhancements

🧰 Maintenance

v4.1

Compare Source

v4.1.0: 🌈 Set UV_PYTHON for your workflow

Compare Source

Changes

You can now use the input python-version to set the environment variable UV_PYTHON for the rest of your workflow.
This will override any python version specifications in pyproject.toml and .python-version

- name: Install the latest version of uv and set the python version to 3.12
  uses: astral-sh/setup-uv@v4
  with:
    python-version: "3.12"

You can combine this with a matrix to test multiple python versions:

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12"]
    steps:
      - uses: actions/checkout@v4
      - name: Install the latest version of uv and set the python version
        uses: astral-sh/setup-uv@v4
        with:
          python-version: ${{ matrix.python-version }}
      - name: Test with python ${{ matrix.python-version }}
        run: uv run --frozen pytest

🚀 Enhancements

🧰 Maintenance

📚 Documentation

v4.0

Compare Source

v4.0.0: 🌈 Fail when cache local path does not exist when trying to cache

Compare Source

🚨 Breaking change 🚨

By default, the action will now fail if caching is enabled but there is nothing to upload (the uv cache directory does not exist).
If you want to ignore this, set the ignore-nothing-to-cache input to true.

- name: Ignore nothing to cache
  uses: astral-sh/setup-uv@v3
  with:
    enable-cache: true
    ignore-nothing-to-cache: true

In previous releases only an error got logged when saving the cache failed. In most cases users did not realize something was wrong with their config.

image

Changes

🚨 Breaking changes

🐛 Bug fixes

📚 Documentation

v4

Compare Source

v3.2.4: 🌈 Expand ~ tilde in input paths

Compare Source

This release adds support for expanding the ~ character to the user's home directory for the following inputs:

  • cache-local-path
  • tool-dir
  • tool-bin-dir
  • cache-dependency-glob
- name: Expand the tilde character
  uses: astral-sh/setup-uv@v3
  with:
    cache-local-path: "~/path/to/cache"
    tool-dir: "~/path/to/tool/dir"
    tool-bin-dir: "~/path/to/tool-bin/dir"
    cache-dependency-glob: "~/my-cache-buster"

In order to make this work cache-dependency-glob also got support to glob files outside the working directory:

- name: Define an absolute cache dependency glob
  uses: astral-sh/setup-uv@v3
  with:
    enable-cache: true
    cache-dependency-glob: "/tmp/my-folder/requirements*.txt"

Thank you @​fynnsu for raising this issue!

🚀 Enhancements

🧰 Maintenance

⬆️ Dependency updates

v3.2.3: 🌈 update known checksums for 0.5.2

Compare Source

Changes

🧰 Maintenance

v3.2.2: 🌈 Avoid leftover files by using temp dir

Compare Source

Changes

The previous release left over downloaded files.

🐛 Bug fixes

v3.2.1: 🌈 Fix extracting with old PowerShell versions

Compare Source

Changes

Old PowerShell versions (5.1) have a problem with extracting files without the .zip extension. To fix that we now make sure the extension is part of the filename.

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v3.2.0: 🌈 add option to disable cache pruning

Compare Source

Changes

Big thanks to @​merlinz01 for adding the option to disable the cache pruning prior to saving it to the Github Actions Cache.

This is useful if downloading the GitHub Actions cache is fast and cheap for you but downloading from an index is slow or expensive.

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v3.2

Compare Source

v3.1.7: 🌈 update known checksums for 0.4.21

Compare Source

Changes

🧰 Maintenance

v3.1.6: 🌈 Fix cache linebreak in linux runner

Compare Source

Changes

🐛 Bug fixes

v3.1.5: 🌈 update known checksums for 0.4.20

Compare Source

Changes

🧰 Maintenance

⬆️ Dependency updates

v3.1.4: 🌈 update known checksums for 0.4.18

Compare Source

Changes

🧰 Maintenance

⬆️ Dependency updates

v3.1.3: 🌈 update known checksums for 0.4.17

Compare Source

Changes

🧰 Maintenance

⬆️ Dependency updates

v3.1.2: 🌈 update known checksums for 0.4.16

Compare Source

Changes

🐛 Bug fixes

🧰 Maintenance

⬆️ Dependency updates

v3.1.1: 🌈 update known checksums for 0.4.15

Compare Source

Changes

🧰 Maintenance

📚 Documentation

v3.1.0: 🌈 Support for semver version ranges

Compare Source

You can now also use semver ranges to define the version of uv to install:

- name: Install a semver range of uv
  uses: astral-sh/setup-uv@v3
  with:
    version: ">=0.3.0"
- name: Pinning a minor version of uv
  uses: astral-sh/setup-uv@v3
  with:
    version: "0.3.x"

Learn more in the README

Changes

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v3.1

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | action | major | `v3` → `v8.2.0` | --- ### Release Notes <details> <summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary> ### [`v8.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v8.2.0): 🌈 New inputs `quiet` and `download-from-astral-mirror` [Compare Source](https://github.com/astral-sh/setup-uv/compare/v8.1.0...v8.2.0) #### Changes This release brings two new inputs and a few bug fixes. ##### New inputs Lets talk about the new inputs first. ##### quiet Pretty simple. It turns of all `info` loggings. Useful if you use this in a composite action and are not interested in all the details. In the upcoming releases we will add log groups to fully implement support for "less noise" > \[!NOTE]\ > Warnings and errors are always logged. ##### download-from-astral-mirror In some cases you may want to directly use the fallback of checking for available versions and downloading releases from GitHub instead of using the astral.sh mirror. Setting `download-from-astral-mirror: false` allows you to do that. ##### Bugfixes When using the astral.sh mirror to query available versions and download releases (done by default) we now stop sending the GitHub token in the header. The mirror never looked at it but we shouldn't be handing out that data even if it is just a short lived token. All other bugfixes try to limit the impact of failed GitHub queries due to retries and other faults. We couldn't pinpoint all rootcauses yet but added more logging for error cases to track them down. #### 🐛 Bug fixes - fix: report unexpected cache save failures [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;896](https://github.com/astral-sh/setup-uv/issues/896)) - fix: report unexpected setup failures [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;895](https://github.com/astral-sh/setup-uv/issues/895)) - fix: add timeout to fetch to prevent silent hangs [@&#8203;eifinger-bot](https://github.com/eifinger-bot) ([#&#8203;883](https://github.com/astral-sh/setup-uv/issues/883)) - Limit GitHub tokens to github.com download URLs [@&#8203;zsol](https://github.com/zsol) ([#&#8203;878](https://github.com/astral-sh/setup-uv/issues/878)) - increase libuv-workaround timeout to 100ms [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;880](https://github.com/astral-sh/setup-uv/issues/880)) #### 🚀 Enhancements - Add quiet input to suppress info-level log output [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;898](https://github.com/astral-sh/setup-uv/issues/898)) - feat: add `download-from-astral-mirror` input [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;897](https://github.com/astral-sh/setup-uv/issues/897)) #### 🧰 Maintenance - docs: update dependabot rollup biome guidance [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;902](https://github.com/astral-sh/setup-uv/issues/902)) - chore: update known checksums for 0.11.18 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;899](https://github.com/astral-sh/setup-uv/issues/899)) - chore: update known checksums for 0.11.17 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;892](https://github.com/astral-sh/setup-uv/issues/892)) - chore: update known checksums for 0.11.16 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;889](https://github.com/astral-sh/setup-uv/issues/889)) - chore: update known checksums for 0.11.15 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;885](https://github.com/astral-sh/setup-uv/issues/885)) - chore: update known checksums for 0.11.14 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;879](https://github.com/astral-sh/setup-uv/issues/879)) - chore: update known checksums for 0.11.13 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;877](https://github.com/astral-sh/setup-uv/issues/877)) - chore: update known checksums for 0.11.12 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;876](https://github.com/astral-sh/setup-uv/issues/876)) - chore: update known checksums for 0.11.11 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;873](https://github.com/astral-sh/setup-uv/issues/873)) - chore: update known checksums for 0.11.9/0.11.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;871](https://github.com/astral-sh/setup-uv/issues/871)) - chore: update known checksums for 0.11.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;867](https://github.com/astral-sh/setup-uv/issues/867)) - Bump setup-uv references to v8.1.0 SHA in docs [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;862](https://github.com/astral-sh/setup-uv/issues/862)) - Add update-docs.yml workflow [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;861](https://github.com/astral-sh/setup-uv/issues/861)) #### ⬆️ Dependency updates - chore(deps): roll up dependabot updates [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;903](https://github.com/astral-sh/setup-uv/issues/903)) - chore(deps): roll up dependabot updates [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;901](https://github.com/astral-sh/setup-uv/issues/901)) - chore(deps): bump release-drafter/release-drafter from 7.3.0 to 7.3.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;900](https://github.com/astral-sh/setup-uv/issues/900)) - chore(deps): bump eifinger/actionlint-action from 1.10.1 to 1.10.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;842](https://github.com/astral-sh/setup-uv/issues/842)) - chore(deps): bump github/codeql-action from 4.35.4 to 4.36.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;893](https://github.com/astral-sh/setup-uv/issues/893)) - chore(deps): bump zizmorcore/zizmor-action from 0.5.5 to 0.5.6 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;891](https://github.com/astral-sh/setup-uv/issues/891)) - chore(deps): bump release-drafter/release-drafter from 7.2.0 to 7.3.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;884](https://github.com/astral-sh/setup-uv/issues/884)) - chore(deps): bump zizmorcore/zizmor-action from 0.5.3 to 0.5.5 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;888](https://github.com/astral-sh/setup-uv/issues/888)) - chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;881](https://github.com/astral-sh/setup-uv/issues/881)) - chore(deps): bump github/codeql-action from 4.32.2 to 4.35.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;875](https://github.com/astral-sh/setup-uv/issues/875)) - chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;866](https://github.com/astral-sh/setup-uv/issues/866)) - chore(deps): bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;864](https://github.com/astral-sh/setup-uv/issues/864)) - chore(deps): bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;863](https://github.com/astral-sh/setup-uv/issues/863)) ### [`v8.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v8.1.0): 🌈 New input `no-project` [Compare Source](https://github.com/astral-sh/setup-uv/compare/v8.0.0...v8.1.0) #### Changes This add the a new boolean input `no-project`. It only makes sense to use in combination with `activate-environment: true` and will append `--no project` to the `uv venv` call. This is for example useful [if you have a pyproject.toml file with parts unparseable by uv](https://github.com/astral-sh/setup-uv/issues/854) #### 🚀 Enhancements - Add input no-project in combination with activate-environment [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;856](https://github.com/astral-sh/setup-uv/issues/856)) #### 🧰 Maintenance - fix: grant contents:write to validate-release job [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;860](https://github.com/astral-sh/setup-uv/issues/860)) - Add a release-gate step to the release workflow [@&#8203;zanieb](https://github.com/zanieb) ([#&#8203;859](https://github.com/astral-sh/setup-uv/issues/859)) - Draft commitish releases [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;858](https://github.com/astral-sh/setup-uv/issues/858)) - Add action-types.yml to instructions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;857](https://github.com/astral-sh/setup-uv/issues/857)) - chore: update known checksums for 0.11.7 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;853](https://github.com/astral-sh/setup-uv/issues/853)) - Refactor version resolving [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;852](https://github.com/astral-sh/setup-uv/issues/852)) - chore: update known checksums for 0.11.6 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;850](https://github.com/astral-sh/setup-uv/issues/850)) - chore: update known checksums for 0.11.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;845](https://github.com/astral-sh/setup-uv/issues/845)) - chore: update known checksums for 0.11.4 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;843](https://github.com/astral-sh/setup-uv/issues/843)) - Add a release workflow [@&#8203;zanieb](https://github.com/zanieb) ([#&#8203;839](https://github.com/astral-sh/setup-uv/issues/839)) - chore: update known checksums for 0.11.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;836](https://github.com/astral-sh/setup-uv/issues/836)) #### 📚 Documentation - Update ignore-nothing-to-cache documentation [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;833](https://github.com/astral-sh/setup-uv/issues/833)) - Pin setup-uv docs to v8 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;829](https://github.com/astral-sh/setup-uv/issues/829)) #### ⬆️ Dependency updates - chore(deps): bump release-drafter/release-drafter from 7.1.1 to 7.2.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;855](https://github.com/astral-sh/setup-uv/issues/855)) ### [`v8.0.0`](https://github.com/astral-sh/setup-uv/releases/tag/v8.0.0): 🌈 Immutable releases and secure tags [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.6.0...v8.0.0) ### This is the first immutable release of `setup-uv` 🥳 All future releases are also immutable, if you want to know more about what this means checkout [the docs](https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases). This release also has two breaking changes #### New format for `manifest-file` The previously deprecated way of defining a custom version manifest to control which `uv` versions are available and where to download them from got removed. The functionality is still there but you have to use the [new format](https://github.com/astral-sh/setup-uv/blob/main/docs/customization.md#format). #### No more major and minor tags To increase **security** even more we will **stop publishing minor tags**. You won't be able to use `@v8` or `@v8.0` any longer. We do this because pinning to major releases opens up users to supply chain attacks like what happened to [tj-actions](https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/). > \[!TIP] > Use the immutable tag as a version `astral-sh/setup-uv@v8.0.0` > Or even better the githash `astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57` #### 🚨 Breaking changes - Remove update-major-minor-tags workflow [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;826](https://github.com/astral-sh/setup-uv/issues/826)) - Remove deprecrated custom manifest [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;813](https://github.com/astral-sh/setup-uv/issues/813)) #### 🧰 Maintenance - Shortcircuit latest version from manifest [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;828](https://github.com/astral-sh/setup-uv/issues/828)) - Simplify inputs.ts [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;827](https://github.com/astral-sh/setup-uv/issues/827)) - Bump release-drafter to v7.1.1 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;825](https://github.com/astral-sh/setup-uv/issues/825)) - Refactor inputs [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;823](https://github.com/astral-sh/setup-uv/issues/823)) - Replace inline compile args with tsconfig [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;824](https://github.com/astral-sh/setup-uv/issues/824)) - chore: update known checksums for 0.11.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;821](https://github.com/astral-sh/setup-uv/issues/821)) - chore: update known checksums for 0.11.1 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;817](https://github.com/astral-sh/setup-uv/issues/817)) - chore: update known checksums for 0.11.0 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;815](https://github.com/astral-sh/setup-uv/issues/815)) - Fix latest-version workflow check [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;812](https://github.com/astral-sh/setup-uv/issues/812)) - chore: update known checksums for 0.10.11/0.10.12 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;811](https://github.com/astral-sh/setup-uv/issues/811)) ### [`v7.6`](https://github.com/astral-sh/setup-uv/compare/v7.6.0...v7.6.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.6.0...v7.6.0) ### [`v7.6.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.6.0): 🌈 Fetch uv from Astral's mirror by default [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.5.0...v7.6.0) #### Changes We now default to download uv from `releases.astral.sh`. This means by default we don't hit the GitHub API at all and shouldn't see any rate limits and timeouts any more. #### 🚀 Enhancements - Fetch uv from Astral's mirror by default [@&#8203;zsol](https://github.com/zsol) ([#&#8203;809](https://github.com/astral-sh/setup-uv/issues/809)) #### 🧰 Maintenance - Switch to ESM for source and test, use CommonJS for dist [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;806](https://github.com/astral-sh/setup-uv/issues/806)) - chore: update known checksums for 0.10.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;804](https://github.com/astral-sh/setup-uv/issues/804)) #### ⬆️ Dependency updates - chore(deps): bump zizmorcore/zizmor-action from 0.5.0 to 0.5.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;808](https://github.com/astral-sh/setup-uv/issues/808)) - Bump deps [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;805](https://github.com/astral-sh/setup-uv/issues/805)) ### [`v7.5`](https://github.com/astral-sh/setup-uv/compare/v7.5.0...v7.5.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.5.0...v7.5.0) ### [`v7.5.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.5.0): 🌈 Use `astral-sh/versions` as version provider [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.4.0...v7.5.0) ### No more rate-limits This release addresses a long-standing source of timeouts and rate-limit failures in setup-uv. Previously, the action resolved version identifiers like 0.5.x by iterating over available uv releases via the GitHub API to find the best match. In contrast, latest and exact versions such as 0.5.0 skipped version resolution entirely and downloaded uv directly. The `manifest-file` input was an earlier attempt to improve this. It allows providing an url to a file that lists available versions, checksums, and even custom download URLs. The action also shipped with such a manifest. However, because that bundled file could become outdated whenever new uv releases were published, the action still had to fall back to the GitHub API in many cases. This release solves the problem by sourcing version data from Astral’s versions repository via the raw content endpoint: <https://raw.githubusercontent.com/astral-sh/versions/refs/heads/main/v1/uv.ndjson> By using the raw endpoint instead of the GitHub API, version resolution no longer depends on API authentication and is much less likely to run into rate limits or timeouts. *** > \[!TIP] > The next section is only interesting for users of the `manifest-file` input The `manifest-file` input lets you override that source with your own URL, for example to test custom uv builds or alternate download locations. The manifest file must be in NDJSON format, where each line is a JSON object representing a version and its artifacts. For example: ```json {"version":"0.10.7","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]} {"version":"0.10.6","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]} ``` > \[!WARNING]\ > The old format still works but is deprecated. A warning will be logged when you use it. #### Changes - docs: replace copilot instructions with AGENTS.md [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;794](https://github.com/astral-sh/setup-uv/issues/794)) #### 🚀 Enhancements - Use astral-sh/versions as primary version provider [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;802](https://github.com/astral-sh/setup-uv/issues/802)) #### 📚 Documentation - docs: add cross-client dependabot rollup skill [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;793](https://github.com/astral-sh/setup-uv/issues/793)) ### [`v7.4`](https://github.com/astral-sh/setup-uv/compare/v7.4.0...v7.4.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.4.0...v7.4.0) ### [`v7.4.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.4.0): 🌈 Add riscv64 architecture support to platform detection [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.3.1...v7.4.0) #### Changes Thank you [@&#8203;luhenry](https://github.com/luhenry) for adding support for riscv64 arch #### 🚀 Enhancements - Add riscv64 architecture support to platform detection [@&#8203;luhenry](https://github.com/luhenry) ([#&#8203;791](https://github.com/astral-sh/setup-uv/issues/791)) #### 🧰 Maintenance - Delete .github/workflows/dependabot-build.yml [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;789](https://github.com/astral-sh/setup-uv/issues/789)) - Harden Dependabot build workflow [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;788](https://github.com/astral-sh/setup-uv/issues/788)) - Fix: check PR author instead of event sender for Dependabot detection [@&#8203;eifinger-bot](https://github.com/eifinger-bot) ([#&#8203;787](https://github.com/astral-sh/setup-uv/issues/787)) - chore: update known checksums for 0.10.9 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;783](https://github.com/astral-sh/setup-uv/issues/783)) - Add workflow to auto-build dist on Dependabot PRs [@&#8203;eifinger-bot](https://github.com/eifinger-bot) ([#&#8203;782](https://github.com/astral-sh/setup-uv/issues/782)) - chore: update known checksums for 0.10.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;779](https://github.com/astral-sh/setup-uv/issues/779)) - chore: update known checksums for 0.10.7 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;775](https://github.com/astral-sh/setup-uv/issues/775)) #### ⬆️ Dependency updates - chore(deps): bump versions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;792](https://github.com/astral-sh/setup-uv/issues/792)) - Bump actions/setup-node from 6.2.0 to 6.3.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;790](https://github.com/astral-sh/setup-uv/issues/790)) - Bump eifinger/actionlint-action from 1.10.0 to 1.10.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;778](https://github.com/astral-sh/setup-uv/issues/778)) ### [`v7.3.1`](https://github.com/astral-sh/setup-uv/releases/tag/v7.3.1): 🌈 fall back to VERSION_CODENAME when VERSION_ID is not available [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.3...v7.3.1) #### Changes This release adds support for running in containers like `debian:testing` or `debian:unstable` #### 🐛 Bug fixes - fix: fall back to VERSION\_CODENAME when VERSION\_ID is not available [@&#8203;eifinger-bot](https://github.com/eifinger-bot) ([#&#8203;774](https://github.com/astral-sh/setup-uv/issues/774)) #### 🧰 Maintenance - chore: update known checksums for 0.10.6 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;771](https://github.com/astral-sh/setup-uv/issues/771)) - chore: update known checksums for 0.10.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;770](https://github.com/astral-sh/setup-uv/issues/770)) - chore: update known checksums for 0.10.4 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;768](https://github.com/astral-sh/setup-uv/issues/768)) - chore: update known checksums for 0.10.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;767](https://github.com/astral-sh/setup-uv/issues/767)) - chore: update known checksums for 0.10.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;765](https://github.com/astral-sh/setup-uv/issues/765)) - chore: update known checksums for 0.10.1 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;764](https://github.com/astral-sh/setup-uv/issues/764)) #### ⬆️ Dependency updates - Bump github/codeql-action from 4.31.9 to 4.32.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;766](https://github.com/astral-sh/setup-uv/issues/766)) - Bump zizmorcore/zizmor-action from 0.4.1 to 0.5.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;763](https://github.com/astral-sh/setup-uv/issues/763)) ### [`v7.3.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.3.0): 🌈 New features and bug fixes for activate-environment [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.3...v7.3) #### Changes This release contains a few bug fixes and a new feature for the activate-environment functionality. #### 🐛 Bug fixes - fix: warn instead of error when no python to cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;762](https://github.com/astral-sh/setup-uv/issues/762)) - fix: use --clear to create venv [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;761](https://github.com/astral-sh/setup-uv/issues/761)) #### 🚀 Enhancements - feat: add venv-path input for activate-environment [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;746](https://github.com/astral-sh/setup-uv/issues/746)) #### 🧰 Maintenance - chore: update known checksums for 0.10.0 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;759](https://github.com/astral-sh/setup-uv/issues/759)) - refactor: tilde-expansion tests as unittests and no self-hosted tests [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;760](https://github.com/astral-sh/setup-uv/issues/760)) - chore: update known checksums for 0.9.30 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;756](https://github.com/astral-sh/setup-uv/issues/756)) - chore: update known checksums for 0.9.29 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;748](https://github.com/astral-sh/setup-uv/issues/748)) #### 📚 Documentation - Fix punctuation [@&#8203;pm-dev563](https://github.com/pm-dev563) ([#&#8203;747](https://github.com/astral-sh/setup-uv/issues/747)) #### ⬆️ Dependency updates - Bump typesafegithub/github-actions-typing from 2.2.1 to 2.2.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;753](https://github.com/astral-sh/setup-uv/issues/753)) - Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;751](https://github.com/astral-sh/setup-uv/issues/751)) - Bump actions/checkout from 6.0.1 to 6.0.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;740](https://github.com/astral-sh/setup-uv/issues/740)) - Bump release-drafter/release-drafter from 6.1.0 to 6.2.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;743](https://github.com/astral-sh/setup-uv/issues/743)) - Bump eifinger/actionlint-action from 1.9.3 to 1.10.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;731](https://github.com/astral-sh/setup-uv/issues/731)) - Bump actions/setup-node from 6.1.0 to 6.2.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;738](https://github.com/astral-sh/setup-uv/issues/738)) ### [`v7.3`](https://github.com/astral-sh/setup-uv/compare/v7.2.1...v7.3) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.2.1...v7.3) ### [`v7.2.1`](https://github.com/astral-sh/setup-uv/releases/tag/v7.2.1): 🌈 update known checksums up to 0.9.28 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.2...v7.2.1) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.9.28 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;744](https://github.com/astral-sh/setup-uv/issues/744)) - chore: update known checksums for 0.9.27 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;742](https://github.com/astral-sh/setup-uv/issues/742)) - chore: update known checksums for 0.9.26 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;734](https://github.com/astral-sh/setup-uv/issues/734)) - chore: update known checksums for 0.9.25 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;733](https://github.com/astral-sh/setup-uv/issues/733)) - chore: update known checksums for 0.9.24 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;730](https://github.com/astral-sh/setup-uv/issues/730)) #### 📚 Documentation - Clarify impact of using actions/setup-python [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;732](https://github.com/astral-sh/setup-uv/issues/732)) #### ⬆️ Dependency updates - Bump zizmorcore/zizmor-action from 0.3.0 to 0.4.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;741](https://github.com/astral-sh/setup-uv/issues/741)) ### [`v7.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.2.0): 🌈 add outputs python-version and python-cache-hit [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.2...v7.2) #### Changes Among some minor typo fixes and quality of life features for developers of actions the main feature of this release are new outputs: - **python-version:** The Python version that was set (same content as existing `UV_PYTHON`) - **python-cache-hit:** A boolean value to indicate the Python cache entry was found While implementing this it became clear, that it is easier to handle the Python binaries in a separate cache entry. The added benefit for users is that the "normal" cache containing the dependencies can be used in all runs no matter if these cache the Python binaries or not. > \[!NOTE]\ > This release will invalidate caches that contain the Python binaries. This happens a single time. #### 🐛 Bug fixes - chore: remove stray space from UV\_PYTHON\_INSTALL\_DIR message [@&#8203;akx](https://github.com/akx) ([#&#8203;720](https://github.com/astral-sh/setup-uv/issues/720)) #### 🚀 Enhancements - add outputs python-version and python-cache-hit [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;728](https://github.com/astral-sh/setup-uv/issues/728)) - Add action typings with validation [@&#8203;krzema12](https://github.com/krzema12) ([#&#8203;721](https://github.com/astral-sh/setup-uv/issues/721)) #### 🧰 Maintenance - fix: use uv\_build backend for old-python-constraint-project [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;729](https://github.com/astral-sh/setup-uv/issues/729)) - chore: update known checksums for 0.9.22 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;727](https://github.com/astral-sh/setup-uv/issues/727)) - chore: update known checksums for 0.9.21 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;726](https://github.com/astral-sh/setup-uv/issues/726)) - chore: update known checksums for 0.9.20 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;725](https://github.com/astral-sh/setup-uv/issues/725)) - chore: update known checksums for 0.9.18 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;718](https://github.com/astral-sh/setup-uv/issues/718)) #### ⬆️ Dependency updates - Bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;719](https://github.com/astral-sh/setup-uv/issues/719)) - Bump github/codeql-action from 4.31.6 to 4.31.9 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;723](https://github.com/astral-sh/setup-uv/issues/723)) ### [`v7.2`](https://github.com/astral-sh/setup-uv/compare/v7.1.6...v7.2) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.6...v7.2) ### [`v7.1.6`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.6): 🌈 add OS version to cache key to prevent binary incompatibility [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.5...v7.1.6) #### Changes This release will invalidate your cache existing keys! The os version e.g. `ubuntu-22.04` is now part of the cache key. This prevents failing builds when a cache got populated with wheels built with different tools (e.g. glibc) than are present on the runner where the cache got restored. #### 🐛 Bug fixes - feat: add OS version to cache key to prevent binary incompatibility [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;716](https://github.com/astral-sh/setup-uv/issues/716)) #### 🧰 Maintenance - chore: update known checksums for 0.9.17 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;714](https://github.com/astral-sh/setup-uv/issues/714)) #### ⬆️ Dependency updates - Bump actions/checkout from 5.0.0 to 6.0.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;712](https://github.com/astral-sh/setup-uv/issues/712)) - Bump actions/setup-node from 6.0.0 to 6.1.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;715](https://github.com/astral-sh/setup-uv/issues/715)) ### [`v7.1.5`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.5): 🌈 allow setting `cache-local-path` without `enable-cache: true` [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.4...v7.1.5) #### Changes [#&#8203;612](https://github.com/astral-sh/setup-uv/pull/612) fixed a faulty behavior where this action set `UV_CACHE_DIR` even though `enable-cache` was `false`. It also fixed the cases were the cache dir is already configured in a settings file like `pyproject.toml` or `UV_CACHE_DIR` was already set. Here the action shouldn't overwrite or set `UV_CACHE_DIR`. These fixes introduced an unwanted behavior: You can still set `cache-local-path` but this action didn't do anything. This release fixes that. You can now use `cache-local-path` to automatically set `UV_CACHE_DIR` even when `enable-cache` is `false` (or gets set to false by default e.g. on self-hosted runners) ```yaml - name: This is now possible uses: astral-sh/setup-uv@v7 with: enable-cache: false cache-local-path: "/path/to/cache" ``` #### 🐛 Bug fixes - allow cache-local-path w/o enable-cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;707](https://github.com/astral-sh/setup-uv/issues/707)) #### 🧰 Maintenance - set biome files.maxSize to 2MiB [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;708](https://github.com/astral-sh/setup-uv/issues/708)) - chore: update known checksums for 0.9.16 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;706](https://github.com/astral-sh/setup-uv/issues/706)) - chore: update known checksums for 0.9.15 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;704](https://github.com/astral-sh/setup-uv/issues/704)) - chore: use `npm ci --ignore-scripts` everywhere [@&#8203;woodruffw](https://github.com/woodruffw) ([#&#8203;699](https://github.com/astral-sh/setup-uv/issues/699)) - chore: update known checksums for 0.9.14 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;700](https://github.com/astral-sh/setup-uv/issues/700)) - chore: update known checksums for 0.9.13 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;694](https://github.com/astral-sh/setup-uv/issues/694)) - chore: update known checksums for 0.9.12 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;693](https://github.com/astral-sh/setup-uv/issues/693)) - chore: update known checksums for 0.9.11 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;688](https://github.com/astral-sh/setup-uv/issues/688)) #### ⬆️ Dependency updates - Bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;695](https://github.com/astral-sh/setup-uv/issues/695)) - bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;709](https://github.com/astral-sh/setup-uv/issues/709)) - Bump github/codeql-action from 4.30.9 to 4.31.6 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;698](https://github.com/astral-sh/setup-uv/issues/698)) - Bump zizmorcore/zizmor-action from 0.2.0 to 0.3.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;696](https://github.com/astral-sh/setup-uv/issues/696)) - Bump eifinger/actionlint-action from 1.9.2 to 1.9.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;690](https://github.com/astral-sh/setup-uv/issues/690)) ### [`v7.1.4`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.4): 🌈 Fix libuv closing bug on Windows [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.3...v7.1.4) #### Changes This release fixes the bug `Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)` on Windows runners #### 🐛 Bug fixes - Wait 50ms before exit to fix libuv bug [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;689](https://github.com/astral-sh/setup-uv/issues/689)) #### 🧰 Maintenance - chore: update known checksums for 0.9.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;681](https://github.com/astral-sh/setup-uv/issues/681)) - chore: update known checksums for 0.9.9 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;679](https://github.com/astral-sh/setup-uv/issues/679)) ### [`v7.1.3`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.3): 🌈 Support act [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.2...v7.1.3) #### Changes This bug fix release adds support for <https://github.com/nektos/act> It was previously broken because of a too new `undici` version and TS transpilation target. Compatibility with act is now automatically tested. #### 🐛 Bug fixes - use old undici and ES2022 target for act support [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;678](https://github.com/astral-sh/setup-uv/issues/678)) #### 🧰 Maintenance - chore: update known checksums for 0.9.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;677](https://github.com/astral-sh/setup-uv/issues/677)) - chore: update known checksums for 0.9.7 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;671](https://github.com/astral-sh/setup-uv/issues/671)) - chore: update known checksums for 0.9.6 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;670](https://github.com/astral-sh/setup-uv/issues/670)) #### 📚 Documentation - Correct description of `cache-dependency-glob` [@&#8203;allanlewis](https://github.com/allanlewis) ([#&#8203;676](https://github.com/astral-sh/setup-uv/issues/676)) ### [`v7.1.2`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.2): 🌈 Speed up extraction on Windows [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1.1...v7.1.2) #### Changes [@&#8203;lazka](https://github.com/lazka) fixed a bug that caused extracting uv to take up to 30s. Thank you! #### 🐛 Bug fixes - Use tar for extracting the uv zip file on Windows too [@&#8203;lazka](https://github.com/lazka) ([#&#8203;660](https://github.com/astral-sh/setup-uv/issues/660)) #### 🧰 Maintenance - chore: update known checksums for 0.9.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;663](https://github.com/astral-sh/setup-uv/issues/663)) #### ⬆️ Dependency updates - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;664](https://github.com/astral-sh/setup-uv/issues/664)) - Bump github/codeql-action from 4.30.8 to 4.30.9 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;652](https://github.com/astral-sh/setup-uv/issues/652)) ### [`v7.1.1`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.1): 🌈 Fix empty workdir detection and lowest resolution strategy [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1...v7.1.1) #### Changes This release fixes a bug where the `working-directory` input was not used to detect an empty work dir. It also fixes the `lowest` resolution strategy resolving to latest when only a lower bound was specified. Special thanks to [@&#8203;tpgillam](https://github.com/tpgillam) for the first contribution! #### 🐛 Bug fixes - Fix "lowest" resolution strategy with lower-bound only [@&#8203;tpgillam](https://github.com/tpgillam) ([#&#8203;649](https://github.com/astral-sh/setup-uv/issues/649)) - Use working-directory to detect empty workdir [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;645](https://github.com/astral-sh/setup-uv/issues/645)) #### 🧰 Maintenance - chore: update known checksums for 0.9.4 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;651](https://github.com/astral-sh/setup-uv/issues/651)) - chore: update known checksums for 0.9.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;644](https://github.com/astral-sh/setup-uv/issues/644)) #### 📚 Documentation - Change version in docs to v7 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;647](https://github.com/astral-sh/setup-uv/issues/647)) #### ⬆️ Dependency updates - Bump github/codeql-action from 4.30.7 to 4.30.8 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;639](https://github.com/astral-sh/setup-uv/issues/639)) - Bump actions/setup-node from 5.0.0 to 6.0.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;641](https://github.com/astral-sh/setup-uv/issues/641)) - Bump eifinger/actionlint-action from 1.9.1 to 1.9.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;634](https://github.com/astral-sh/setup-uv/issues/634)) - Update lockfile with latest npm [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;636](https://github.com/astral-sh/setup-uv/issues/636)) ### [`v7.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.1.0): 🌈 Support all the use cases [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7.1...v7.1) #### Changes **Support all the use cases!!!** ... well, that we know of. This release adds support for some use cases that most users don't encounter but are useful for e.g. people running Gitea. The input `resolution-strategy` lets you use the lowest possible version of uv from a version range. Useful if you want to test your tool with different versions of uv. If you use `activate-environment` the path to the activated venv is now also exposed under the output `venv`. Downloaded python installations can now also be uploaded to the GitHub Actions cache backend. Useful if you are running in `act` and have configured your own backend and don't want to download python again, and again over a slow internet connection. Finally the path to installed python interpreters is now added to the `PATH` on Windows. #### 🚀 Enhancements - Add resolution-strategy input to support oldest compatible version selection @&#8203;[copilot-swe-agent\[bot\]](https://github.com/apps/copilot-swe-agent) ([#&#8203;631](https://github.com/astral-sh/setup-uv/issues/631)) - Add value of UV\_PYTHON\_INSTALL\_DIR to path [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;628](https://github.com/astral-sh/setup-uv/issues/628)) - Set output venv when activate-environment is used [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;627](https://github.com/astral-sh/setup-uv/issues/627)) - Cache python installs [@&#8203;merlinz01](https://github.com/merlinz01) ([#&#8203;621](https://github.com/astral-sh/setup-uv/issues/621)) #### 🧰 Maintenance - Add copilot-instructions.md [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;630](https://github.com/astral-sh/setup-uv/issues/630)) - chore: update known checksums for 0.9.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;626](https://github.com/astral-sh/setup-uv/issues/626)) - chore: update known checksums for 0.9.1 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;625](https://github.com/astral-sh/setup-uv/issues/625)) - Fall back to PR for updating known versions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;623](https://github.com/astral-sh/setup-uv/issues/623)) #### 📚 Documentation - Split up documentation [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;632](https://github.com/astral-sh/setup-uv/issues/632)) #### ⬆️ Dependency updates - Bump deps [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;633](https://github.com/astral-sh/setup-uv/issues/633)) - Bump github/codeql-action from 3.30.6 to 4.30.7 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;614](https://github.com/astral-sh/setup-uv/issues/614)) ### [`v7.1`](https://github.com/astral-sh/setup-uv/compare/v7...v7.1) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7...v7.1) ### [`v7.0`](https://github.com/astral-sh/setup-uv/compare/v7...v7) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7...v7) ### [`v7.0.0`](https://github.com/astral-sh/setup-uv/releases/tag/v7.0.0): 🌈 node24 and a lot of bugfixes [Compare Source](https://github.com/astral-sh/setup-uv/compare/v7...v7) #### Changes This release comes with a load of bug fixes and a speed up. Because of switching from node20 to node24 it is also a breaking change. If you are running on GitHub hosted runners this will just work, if you are using self-hosted runners make sure, that your runners are up to date. If you followed the normal installation instructions your self-hosted runner will keep itself updated. This release also removes the deprecated input `server-url` which was used to download uv releases from a different server. The [manifest-file](https://github.com/astral-sh/setup-uv?tab=readme-ov-file#manifest-file) input supersedes that functionality by adding a flexible way to define available versions and where they should be downloaded from. ##### Fixes - The action now respects when the environment variable `UV_CACHE_DIR` is already set and does not overwrite it. It now also finds [cache-dir](https://docs.astral.sh/uv/reference/settings/#cache-dir) settings in config files if you set them. - Some users encountered problems that [cache pruning](https://github.com/astral-sh/setup-uv?tab=readme-ov-file#disable-cache-pruning) took forever because they had some `uv` processes running in the background. Starting with uv version `0.8.24` this action uses `uv cache prune --ci --force` to ignore the running processes - If you just want to install uv but not have it available in path, this action now respects `UV_NO_MODIFY_PATH` - Some other actions also set the env var `UV_CACHE_DIR`. This action can now deal with that but as this could lead to unwanted behavior in some edgecases a warning is now displayed. ##### Improvements If you are using minimum version specifiers for the version of uv to install for example ```toml [tool.uv] required-version = ">=0.8.17" ``` This action now detects that and directly uses the latest version. Previously it would download all available releases from the uv repo to determine the highest matching candidate for the version specifier, which took much more time. If you are using other specifiers like `0.8.x` this action still needs to download all available releases because the specifier defines an upper bound (not 0.9.0 or later) and "latest" would possibly not satisfy that. #### 🚨 Breaking changes - Use node24 instead of node20 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;608](https://github.com/astral-sh/setup-uv/issues/608)) - Remove deprecated input server-url [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;607](https://github.com/astral-sh/setup-uv/issues/607)) #### 🐛 Bug fixes - Respect UV\_CACHE\_DIR and cache-dir [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;612](https://github.com/astral-sh/setup-uv/issues/612)) - Use --force when pruning cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;611](https://github.com/astral-sh/setup-uv/issues/611)) - Respect UV\_NO\_MODIFY\_PATH [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;603](https://github.com/astral-sh/setup-uv/issues/603)) - Warn when `UV_CACHE_DIR` has changed [@&#8203;jamesbraza](https://github.com/jamesbraza) ([#&#8203;601](https://github.com/astral-sh/setup-uv/issues/601)) #### 🚀 Enhancements - Shortcut to latest version for minimum version specifier [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;598](https://github.com/astral-sh/setup-uv/issues/598)) #### 🧰 Maintenance - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;613](https://github.com/astral-sh/setup-uv/issues/613)) - Fix test-uv-no-modify-path [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;604](https://github.com/astral-sh/setup-uv/issues/604)) - Don't assume all test passed if cancelled [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;599](https://github.com/astral-sh/setup-uv/issues/599)) #### ⬆️ Dependency updates - Bump github/codeql-action from 3.30.5 to 3.30.6 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;605](https://github.com/astral-sh/setup-uv/issues/605)) - Bump github/codeql-action from 3.30.3 to 3.30.5 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;594](https://github.com/astral-sh/setup-uv/issues/594)) - Bump [@&#8203;renovatebot/pep440](https://github.com/renovatebot/pep440) from 4.2.0 to 4.2.1 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;581](https://github.com/astral-sh/setup-uv/issues/581)) ### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6.8.0...v7) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.8.0...v7) ### [`v6.8`](https://github.com/astral-sh/setup-uv/compare/v6.8.0...v6.8.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.8.0...v6.8.0) ### [`v6.8.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.8.0): 🌈 Add **/*.py.lock to cache-dependency-glob [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.7.0...v6.8.0) #### Changes Thanks to [@&#8203;parched](https://github.com/parched) the default `cache-dependency-glob` now also find all lock files generated by `uv lock --script` #### 🚀 Enhancements - Always show prune cache output [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;597](https://github.com/astral-sh/setup-uv/issues/597)) - Add \*\*/\*.py.lock to cache-dependency-glob [@&#8203;parched](https://github.com/parched) ([#&#8203;590](https://github.com/astral-sh/setup-uv/issues/590)) #### 🧰 Maintenance - persist credentials for version update [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;584](https://github.com/astral-sh/setup-uv/issues/584)) #### 📚 Documentation - README.md: Fix Python versions and update checkout action [@&#8203;cclauss](https://github.com/cclauss) ([#&#8203;572](https://github.com/astral-sh/setup-uv/issues/572)) #### ⬆️ Dependency updates - Bump zizmorcore/zizmor-action from 0.1.2 to 0.2.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;571](https://github.com/astral-sh/setup-uv/issues/571)) ### [`v6.7`](https://github.com/astral-sh/setup-uv/compare/v6.7.0...v6.7.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.7.0...v6.7.0) ### [`v6.7.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.7.0): 🌈 New inputs `restore-cache` and `save-cache` [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.6.1...v6.7.0) #### Changes This release adds fine-grained control over the caching steps. - The input `restore-cache` (`true` by default) can be set to `false` to skip restoring the cache while still allowing to save the cache. - The input `save-cache` (`true` by default) can be set to `false` to skip saving the cache. Skipping cache saving can be useful if you know, that you will never use this version of the cache again and don't want to waste storage space: ```yaml - name: Save cache only on main branch uses: astral-sh/setup-uv@v6 with: enable-cache: true save-cache: ${{ github.ref == 'refs/heads/main' }} ``` #### 🚀 Enhancements - Add inputs restore-cache and save-cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;568](https://github.com/astral-sh/setup-uv/issues/568)) #### 🧰 Maintenance - bump deps [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;569](https://github.com/astral-sh/setup-uv/issues/569)) - Automatically push updated known versions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;565](https://github.com/astral-sh/setup-uv/issues/565)) - chore: update known versions for 0.8.16/0.8.17 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;562](https://github.com/astral-sh/setup-uv/issues/562)) - chore: update known versions for 0.8.15 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;550](https://github.com/astral-sh/setup-uv/issues/550)) - chore(ci): address CI lint findings [@&#8203;woodruffw](https://github.com/woodruffw) ([#&#8203;545](https://github.com/astral-sh/setup-uv/issues/545)) #### ⬆️ Dependency updates - Bump github/codeql-action from 3.29.11 to 3.30.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;566](https://github.com/astral-sh/setup-uv/issues/566)) - Bump actions/setup-node from 4.4.0 to 5.0.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;551](https://github.com/astral-sh/setup-uv/issues/551)) ### [`v6.6.1`](https://github.com/astral-sh/setup-uv/releases/tag/v6.6.1): 🌈 Fix exclusions in cache-dependency-glob [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.6...v6.6.1) #### Changes Exclusions with a leading `!` in the [cache-dependency-glob](https://github.com/astral-sh/setup-uv?tab=readme-ov-file#cache-dependency-glob) did not work and got fixed with this release. Thank you [@&#8203;KnisterPeter](https://github.com/KnisterPeter) for raising this! #### 🐛 Bug fixes - Fix exclusions in cache-dependency-glob [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;546](https://github.com/astral-sh/setup-uv/issues/546)) #### 🧰 Maintenance - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;547](https://github.com/astral-sh/setup-uv/issues/547)) - chore: update known versions for 0.8.14 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;543](https://github.com/astral-sh/setup-uv/issues/543)) - chore: update known versions for 0.8.13 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;536](https://github.com/astral-sh/setup-uv/issues/536)) ### [`v6.6.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.6.0): 🌈 Support for .tools-versions [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.6...v6.6) #### Changes This release adds support for [asdf](https://asdf-vm.com/) `.tool-versions` in the `version-file` input #### 🐛 Bug fixes - Add log message before long API calls to GitHub [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;530](https://github.com/astral-sh/setup-uv/issues/530)) #### 🚀 Enhancements - Add support for .tools-versions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;531](https://github.com/astral-sh/setup-uv/issues/531)) #### 🧰 Maintenance - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;532](https://github.com/astral-sh/setup-uv/issues/532)) - chore: update known versions for 0.8.12 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;529](https://github.com/astral-sh/setup-uv/issues/529)) - chore: update known versions for 0.8.11 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;526](https://github.com/astral-sh/setup-uv/issues/526)) - chore: update known versions for 0.8.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;525](https://github.com/astral-sh/setup-uv/issues/525)) ### [`v6.6`](https://github.com/astral-sh/setup-uv/compare/v6.5.0...v6.6) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.5.0...v6.6) ### [`v6.5`](https://github.com/astral-sh/setup-uv/compare/v6.5.0...v6.5.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.5.0...v6.5.0) ### [`v6.5.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.5.0): 🌈 Better error messages, bug fixes and copilot agent settings [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.4.3...v6.5.0) #### Changes This release brings better error messages in case the GitHub API is impacted, fixes a few bugs and allows to disable [problem matchers](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md) for better use in Copilot Agent workspaces. #### 🐛 Bug fixes - Improve error messages on GitHub API errors [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;518](https://github.com/astral-sh/setup-uv/issues/518)) - Ignore backslashes and whitespace in requirements [@&#8203;axm2](https://github.com/axm2) ([#&#8203;501](https://github.com/astral-sh/setup-uv/issues/501)) #### 🚀 Enhancements - Add input add-problem-matchers [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;517](https://github.com/astral-sh/setup-uv/issues/517)) #### 🧰 Maintenance - chore: update known versions for 0.8.9 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;512](https://github.com/astral-sh/setup-uv/issues/512)) - chore: update known versions for 0.8.6-0.8.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;510](https://github.com/astral-sh/setup-uv/issues/510)) - chore: update known versions for 0.8.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;509](https://github.com/astral-sh/setup-uv/issues/509)) - chore: update known versions for 0.8.4 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;505](https://github.com/astral-sh/setup-uv/issues/505)) - chore: update known versions for 0.8.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;502](https://github.com/astral-sh/setup-uv/issues/502)) #### 📚 Documentation - add note on caching to read disable-cache-pruning [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;506](https://github.com/astral-sh/setup-uv/issues/506)) #### ⬆️ Dependency updates - Bump actions/checkout from 4 to 5 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;514](https://github.com/astral-sh/setup-uv/issues/514)) - bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;516](https://github.com/astral-sh/setup-uv/issues/516)) - Bump biome to v2 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;515](https://github.com/astral-sh/setup-uv/issues/515)) ### [`v6.4.3`](https://github.com/astral-sh/setup-uv/releases/tag/v6.4.3): 🌈 fix relative paths starting with dots [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.4.2...v6.4.3) #### 🐛 Bug fixes - fix relative paths starting with dots [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;500](https://github.com/astral-sh/setup-uv/issues/500)) ### [`v6.4.2`](https://github.com/astral-sh/setup-uv/releases/tag/v6.4.2): 🌈 Interpret relative inputs as under working-directory [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.4.1...v6.4.2) #### Changes This release will interpret relative paths in inputs as relative to the value of `working-directory` (default is `${{ github.workspace }}`) . This means the following configuration ```yaml - uses: astral-sh/setup-uv@v6 with: working-directory: /my/path cache-dependency-glob: uv.lock ``` will look for the `cache-dependency-glob` under `/my/path/uv.lock` #### 🐛 Bug fixes - interpret relative inputs as under working-directory [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;498](https://github.com/astral-sh/setup-uv/issues/498)) #### 🧰 Maintenance - chore: update known versions for 0.8.1/0.8.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;497](https://github.com/astral-sh/setup-uv/issues/497)) - chore: update known versions for 0.8.0 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;491](https://github.com/astral-sh/setup-uv/issues/491)) ### [`v6.4.1`](https://github.com/astral-sh/setup-uv/releases/tag/v6.4.1): 🌈 Hotfix: Ignore deps starting with uv when finding uv version [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.4...v6.4.1) #### Changes Thank you [@&#8203;phpmypython](https://github.com/phpmypython) for raising a PR to fix this issue! #### 🐛 Bug fixes - Ignore deps starting with uv when finding uv version [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;492](https://github.com/astral-sh/setup-uv/issues/492)) ### [`v6.4.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.4.0): 🌈 Add input `version-file` [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.4...v6.4) #### Changes You can now use the `version-file` input to specify a file that contains the version of uv to install. This can either be a `pyproject.toml` or `uv.toml` file which defines a `required-version` or uv defined as a dependency in `pyproject.toml` or `requirements.txt`. ```yaml - name: Install uv based on the version defined in requirements.txt uses: astral-sh/setup-uv@v6 with: version-file: "requirements.txt" ``` #### 🚀 Enhancements - Add input version-file [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;486](https://github.com/astral-sh/setup-uv/issues/486)) #### 🧰 Maintenance - chore: update known versions for 0.7.22 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;488](https://github.com/astral-sh/setup-uv/issues/488)) - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;487](https://github.com/astral-sh/setup-uv/issues/487)) - chore: update known versions for 0.7.21 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;483](https://github.com/astral-sh/setup-uv/issues/483)) - chore: update known versions for 0.7.20 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;480](https://github.com/astral-sh/setup-uv/issues/480)) - chore: update known versions for 0.7.19 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;475](https://github.com/astral-sh/setup-uv/issues/475)) - chore: update known versions for 0.7.18 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;473](https://github.com/astral-sh/setup-uv/issues/473)) - chore: update known versions for 0.7.17 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;468](https://github.com/astral-sh/setup-uv/issues/468)) - chore: update known versions for 0.7.16 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;466](https://github.com/astral-sh/setup-uv/issues/466)) - chore: update known versions for 0.7.15 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;463](https://github.com/astral-sh/setup-uv/issues/463)) #### 📚 Documentation - Add FAQ on changed cache and cache upload behavior [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;477](https://github.com/astral-sh/setup-uv/issues/477)) #### ⬆️ Dependency updates - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;487](https://github.com/astral-sh/setup-uv/issues/487)) ### [`v6.4`](https://github.com/astral-sh/setup-uv/compare/v6.3.1...v6.4) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.3.1...v6.4) ### [`v6.3.1`](https://github.com/astral-sh/setup-uv/releases/tag/v6.3.1): 🌈 Do not warn when version not in manifest-file [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.3...v6.3.1) #### Changes This is a hotfix to change the warning messages that a version could not be found in the local manifest-file to info level. A `setup-uv` release contains a version-manifest.json file with infos in all available `uv` releases. When a new `uv` version is released this is not contained in this file until the file gets updated and a new `setup-uv` release is made. We will overhaul this process in the future but for now the spamming of warnings is removed. #### 🐛 Bug fixes - Do not warn when version not in manifest-file [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;462](https://github.com/astral-sh/setup-uv/issues/462)) #### 🧰 Maintenance - chore: update known versions for 0.7.14 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;459](https://github.com/astral-sh/setup-uv/issues/459)) - Revert "Set expected cache dir drive to C: on windows ([#&#8203;451](https://github.com/astral-sh/setup-uv/issues/451))" [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;460](https://github.com/astral-sh/setup-uv/issues/460)) ### [`v6.3.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.3.0): 🌈 Use latest version from manifest-file [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.3...v6.3) #### Changes If a manifest-file is supplied the default value of the version input (latest) will get the latest version available in the manifest. That might not be the actual latest version available in the official uv repo. #### 🚀 Enhancements - Use latest version from manifest-file [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;458](https://github.com/astral-sh/setup-uv/issues/458)) ### [`v6.3`](https://github.com/astral-sh/setup-uv/compare/v6.2.1...v6.3) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.2.1...v6.3) ### [`v6.2.1`](https://github.com/astral-sh/setup-uv/releases/tag/v6.2.1): 🌈 Fix "No such file or directory version-manifest.json" [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.2.0...v6.2.1) #### Changes Release v6.2.0 contained a bug that slipped through the automated test. The action tried to look for the default version-manifest.json in the root of the repostory using this action instead of relative to the action itself. #### 🐛 Bug fixes - Look for version-manifest.json relative to action path [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;456](https://github.com/astral-sh/setup-uv/issues/456)) ### [`v6.2`](https://github.com/astral-sh/setup-uv/compare/v6.2.0...v6.2.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.2.0...v6.2.0) ### [`v6.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.2.0): 🌈 New input manifest-file [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.1.0...v6.2.0) #### Changes This release adds a new input `manifest-file`. The `manifest-file` input allows you to specify a JSON manifest that lists available uv versions, architectures, and their download URLs. By default, this action uses the manifest file contained in this repository, which is automatically updated with each release of uv. The manifest file contains an array of objects, each describing a version, architecture, platform, and the corresponding download URL. You can supply a custom manifest file URL to define additional versions, architectures, or different download URLs. This is useful if you maintain your own uv builds or want to override the default sources. For example: ```json [ { "version": "0.7.12-alpha.1", "artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz", "arch": "x86_64", "platform": "unknown-linux-gnu", "downloadUrl": "https://release.pyx.dev/0.7.12-alpha.1/uv-x86_64-unknown-linux-gnu.tar.gz" }, ... ] ``` ```yaml - name: Use a custom manifest file uses: astral-sh/setup-uv@v6 with: manifest-file: "https://example.com/my-custom-manifest.json" ``` > \[!WARNING]\ > If you have previously used `server-url` to use your self hosted uv binaries use this new way instead. > `server-url` is deprecated and will be removed in a future release #### 🚀 Enhancements - Add input manifest-file [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;454](https://github.com/astral-sh/setup-uv/issues/454)) - Add warning about shadowed uv binaries to `activate-environment` [@&#8203;zanieb](https://github.com/zanieb) ([#&#8203;439](https://github.com/astral-sh/setup-uv/issues/439)) #### 🧰 Maintenance - chore: update known versions for 0.7.13 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;444](https://github.com/astral-sh/setup-uv/issues/444)) - Set expected cache dir drive to C: on windows [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;451](https://github.com/astral-sh/setup-uv/issues/451)) - chore: update known versions for 0.7.11 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;442](https://github.com/astral-sh/setup-uv/issues/442)) - chore: update known versions for 0.7.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;440](https://github.com/astral-sh/setup-uv/issues/440)) - chore: update known versions for 0.7.9 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;437](https://github.com/astral-sh/setup-uv/issues/437)) - Check that all jobs are in all-tests-passed.needs [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;432](https://github.com/astral-sh/setup-uv/issues/432)) - chore: update known versions for 0.7.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;428](https://github.com/astral-sh/setup-uv/issues/428)) ### [`v6.1`](https://github.com/astral-sh/setup-uv/compare/v6.1.0...v6.1.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.1.0...v6.1.0) ### [`v6.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.1.0): 🌈 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6.0.1...v6.1.0) #### Changes This release adds the input `server-url` which defaults to `https://github.com`. You can set this to a custom url to control where this action downloads the uv release from. This is useful for users of gitea and comparable solutions. [@&#8203;sebadevo](https://github.com/sebadevo) pointed out that we don't invalidate the cache when the `prune-cache` input is changed. This leads to unnessecarily big caches. The input is now used to compute the cache key, properly invalidating the cache when it is changed. > \[!NOTE]\ > For most users this release will invalidate the cache once. > You will see the known warning [no-github-actions-cache-found-for-key](https://github.com/astral-sh/setup-uv?tab=readme-ov-file#why-do-i-see-warnings-like-no-github-actions-cache-found-for-key) > This is expected and will only appear once. #### 🐛 Bug fixes - Purge cache in cache key [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;423](https://github.com/astral-sh/setup-uv/issues/423)) #### 🚀 Enhancements - feat: support custom github url [@&#8203;Zoupers](https://github.com/Zoupers) ([#&#8203;414](https://github.com/astral-sh/setup-uv/issues/414)) #### 🧰 Maintenance - chore: update known versions for 0.7.7 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;422](https://github.com/astral-sh/setup-uv/issues/422)) - chore: update known versions for 0.7.6 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;415](https://github.com/astral-sh/setup-uv/issues/415)) - chore: update known versions for 0.7.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;412](https://github.com/astral-sh/setup-uv/issues/412)) - chore: update known versions for 0.7.4 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;410](https://github.com/astral-sh/setup-uv/issues/410)) - chore: update known versions for 0.7.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;405](https://github.com/astral-sh/setup-uv/issues/405)) - Fix path to known-checksums.ts [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;404](https://github.com/astral-sh/setup-uv/issues/404)) - Fix update-known-versions workflow argument [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;401](https://github.com/astral-sh/setup-uv/issues/401)) - Fix update-known-versions workflow [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;400](https://github.com/astral-sh/setup-uv/issues/400)) - Create version-manifest.json on uv release [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;399](https://github.com/astral-sh/setup-uv/issues/399)) - Run infrastructure workflows on arm runners [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;396](https://github.com/astral-sh/setup-uv/issues/396)) - chore: update known checksums for 0.7.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;395](https://github.com/astral-sh/setup-uv/issues/395)) - chore: update known checksums for 0.7.0 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;390](https://github.com/astral-sh/setup-uv/issues/390)) #### 📚 Documentation - Add section to README explaining if packages are installed by setup-uv [@&#8203;pirate](https://github.com/pirate) ([#&#8203;398](https://github.com/astral-sh/setup-uv/issues/398)) #### ⬆️ Dependency updates - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;424](https://github.com/astral-sh/setup-uv/issues/424)) - Bump typescript from 5.8.2 to 5.8.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;393](https://github.com/astral-sh/setup-uv/issues/393)) ### [`v6.0.1`](https://github.com/astral-sh/setup-uv/releases/tag/v6.0.1): 🌈 Fix default cache dependency glob [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v6.0.1) #### Changes The new default in v6 used illegal patterns and therefore didn't match requirements files. This is now fixed. #### 🐛 Bug fixes - Fix default cache dependency glob [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;388](https://github.com/astral-sh/setup-uv/issues/388)) #### 🧰 Maintenance - chore: update known checksums for 0.6.17 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;384](https://github.com/astral-sh/setup-uv/issues/384)) #### ⬆️ Dependency updates - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;389](https://github.com/astral-sh/setup-uv/issues/389)) ### [`v6.0.0`](https://github.com/astral-sh/setup-uv/releases/tag/v6.0.0): 🌈 activate-environment and working-directory [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v6) #### Changes This version contains some breaking changes which have been gathering up for a while. Lets dive into them: - [Activate environment](#activate-environment) - [Working Directory](#working-directory) - [Default `cache-dependency-glob`](#default-cache-dependency-glob) - [Use default cache dir on self hosted runners](#use-default-cache-dir-on-self-hosted-runners) ##### Activate environment In previous versions using the input `python-version` automatically activated a venv at the repository root. This led to some unwanted side-effects, was sometimes unexpected and not flexible enough. The venv activation is now explicitly controlled with the new input `activate-environment` (false by default): ```yaml - name: Install the latest version of uv and activate the environment uses: astral-sh/setup-uv@v6 with: activate-environment: true - run: uv pip install pip ``` The venv gets created by the [`uv venv`](https://docs.astral.sh/uv/pip/environments/) command so the python version is controlled by the `python-version` input or the files `pyproject.toml`, `uv.toml`, `.python-version` in the `working-directory`. ##### Working Directory The new input `working-directory` controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files which are used to determine the version of uv and python to install. It can also be used to control where the venv gets created. ```yaml - name: Install uv based on the config files in the working-directory uses: astral-sh/setup-uv@v6 with: working-directory: my/subproject/dir ``` > \[!CAUTION] > > The inputs `pyproject-file` and `uv-file` have been removed. ##### Default `cache-dependency-glob` [@&#8203;ssbarnea](https://github.com/ssbarnea) found out that the default `cache-dependency-glob` was not suitable for a lot of users. The old default ```yaml cache-dependency-glob: | **/requirements*.txt **/uv.lock ``` is changed and should cover over 99.5% of use cases: ```yaml cache-dependency-glob: | **/*(requirements|constraints)*.(txt|in) **/pyproject.toml **/uv.lock ``` > \[!NOTE] > > This shouldn't be a breaking change. The only thing you may notice is that your caches get invalidated once. ##### Use default cache dir on self hosted runners The directory where uv stores its cache was always set to a directory in `RUNNER_TEMP`. For self-hosted runners this made no sense as this gets cleaned after every run and led to slower runs than necessary. On self-hosted runners `UV_CACHE_DIR` is no longer set and the [default cache directory](https://docs.astral.sh/uv/concepts/cache/#cache-directory) is used instead. #### 🚨 Breaking changes - Change default cache-dependency-glob [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;352](https://github.com/astral-sh/setup-uv/issues/352)) - No default UV\_CACHE\_DIR on selfhosted runners [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;380](https://github.com/astral-sh/setup-uv/issues/380)) - new inputs activate-environment and working-directory [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;381](https://github.com/astral-sh/setup-uv/issues/381)) #### 🧰 Maintenance - chore: update known checksums for 0.6.16 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;378](https://github.com/astral-sh/setup-uv/issues/378)) - chore: update known checksums for 0.6.15 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;377](https://github.com/astral-sh/setup-uv/issues/377)) #### 📚 Documentation - bump to v6 in README [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;382](https://github.com/astral-sh/setup-uv/issues/382)) - log info on venv activation [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;375](https://github.com/astral-sh/setup-uv/issues/375)) ### [`v6.0`](https://github.com/astral-sh/setup-uv/compare/v6...v6) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v6) ### [`v6`](https://github.com/astral-sh/setup-uv/compare/v5.4.2...v6) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.4.2...v6) ### [`v5.4.2`](https://github.com/astral-sh/setup-uv/releases/tag/v5.4.2): 🌈 Make sure uv installed by setup-uv is first in PATH [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.4.1...v5.4.2) #### Changes This release fixes an issue on self-hosted runners. If you manually installed uv with version 0.5.0 or later this version would overwrite the uv version installed by this action. We now make sure the version installed by this action is the first found in PATH #### 🐛 Bug fixes - Make sure uv installed by setup-uv is first in PATH [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;373](https://github.com/astral-sh/setup-uv/issues/373)) #### 🧰 Maintenance - chore: update known checksums for 0.6.14 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;366](https://github.com/astral-sh/setup-uv/issues/366)) - chore: update known checksums for 0.6.13 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;365](https://github.com/astral-sh/setup-uv/issues/365)) - chore: update known checksums for 0.6.12 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;362](https://github.com/astral-sh/setup-uv/issues/362)) - chore: update known checksums for 0.6.11 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;357](https://github.com/astral-sh/setup-uv/issues/357)) #### 📚 Documentation - Fix pep440 identifier instead of specifier [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;358](https://github.com/astral-sh/setup-uv/issues/358)) ### [`v5.4.1`](https://github.com/astral-sh/setup-uv/releases/tag/v5.4.1): 🌈 Add support for pep440 version specifiers [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.4...v5.4.1) #### Changes With this release you can also use [pep440 version specifiers](https://peps.python.org/pep-0440/#version-specifiers) as `required-version` in files`uv.toml`, `pyroject.toml` and in the `version` input: ```yaml - name: Install a pep440-specifier-satisfying version of uv uses: astral-sh/setup-uv@v5 with: version: ">=0.4.25,<0.5" ``` #### 🐛 Bug fixes - Add support for pep440 version identifiers [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;353](https://github.com/astral-sh/setup-uv/issues/353)) #### 🧰 Maintenance - chore: update known checksums for 0.6.10 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;345](https://github.com/astral-sh/setup-uv/issues/345)) #### 📚 Documentation - Add pep440 to docs header [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;355](https://github.com/astral-sh/setup-uv/issues/355)) - Fix glob syntax link [@&#8203;flying-sheep](https://github.com/flying-sheep) ([#&#8203;349](https://github.com/astral-sh/setup-uv/issues/349)) - Add link to supported glob patterns [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;348](https://github.com/astral-sh/setup-uv/issues/348)) ### [`v5.4.0`](https://github.com/astral-sh/setup-uv/releases/tag/v5.4.0): 🌈 uv and uvx path as outputs [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.4...v5.4) #### Changes The absolute paths to the uv and uvx binaries can now be accessed via the outputs `uv-path` and `uvx-path`. `setup-uv` now also issues a warning if the working directory is empty. This makes users aware of the common mistake to run `setup-uv` before `actions/checkout`. You can remove the warning by setting `ignore-empty-workdir: true` #### 🚀 Enhancements - Add uv-path and uvx-path output [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;341](https://github.com/astral-sh/setup-uv/issues/341)) - Warn when the workdir is empty [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;322](https://github.com/astral-sh/setup-uv/issues/322)) #### 🧰 Maintenance - chore: update known checksums for 0.6.9 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;339](https://github.com/astral-sh/setup-uv/issues/339)) - Merge workflows and add all-tests-passed [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;331](https://github.com/astral-sh/setup-uv/issues/331)) - chore: update known checksums for 0.6.8 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;332](https://github.com/astral-sh/setup-uv/issues/332)) - chore: update known checksums for 0.6.7 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;330](https://github.com/astral-sh/setup-uv/issues/330)) - Set required workflow permissions [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;329](https://github.com/astral-sh/setup-uv/issues/329)) - Add workflow\_dispatch triggers to every workflow [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;326](https://github.com/astral-sh/setup-uv/issues/326)) - Bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;324](https://github.com/astral-sh/setup-uv/issues/324)) - Inline action-update-semver [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;323](https://github.com/astral-sh/setup-uv/issues/323)) - chore: update known checksums for 0.6.6 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;318](https://github.com/astral-sh/setup-uv/issues/318)) - chore: update known checksums for 0.6.5 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;313](https://github.com/astral-sh/setup-uv/issues/313)) #### 📚 Documentation - Fix wrong warning message in FAQ [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;337](https://github.com/astral-sh/setup-uv/issues/337)) - Warn when the workdir is empty [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;322](https://github.com/astral-sh/setup-uv/issues/322)) - Remove apk add python3 for musl test [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;319](https://github.com/astral-sh/setup-uv/issues/319)) #### ⬆️ Dependency updates - Bump [@&#8203;actions/cache](https://github.com/actions/cache) from 4.0.2 to 4.0.3 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;334](https://github.com/astral-sh/setup-uv/issues/334)) ### [`v5.4`](https://github.com/astral-sh/setup-uv/compare/v5.3.1...v5.4) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.3.1...v5.4) ### [`v5.3.1`](https://github.com/astral-sh/setup-uv/releases/tag/v5.3.1): 🌈 - Fix issues with GHES and HTTP proxies [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.3...v5.3.1) #### Changes This release fixes some issues when this action was used behind a HTTP proxy or with GHES. If you have been seeing `ENOTFOUND` or timeout errors, this release should fix that. A huge thank you to everyone who helped investigating this and testing the fixes: - [@&#8203;siryessuhr](https://github.com/siryessuhr) - [@&#8203;my1e5](https://github.com/my1e5) - [@&#8203;dennis-m-e](https://github.com/dennis-m-e) - [@&#8203;PaarthShah](https://github.com/PaarthShah) #### 🐛 Bug fixes - Always fall back to anonymous download [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;304](https://github.com/astral-sh/setup-uv/issues/304)) #### 🧰 Maintenance - chore: update known checksums for 0.6.3 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;300](https://github.com/astral-sh/setup-uv/issues/300)) #### 📚 Documentation - 📚 Document automatically enabled cache on GitHub-hosted runners [@&#8203;jerr0328](https://github.com/jerr0328) ([#&#8203;302](https://github.com/astral-sh/setup-uv/issues/302)) #### ⬆️ Dependency updates - bump dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;308](https://github.com/astral-sh/setup-uv/issues/308)) - Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;299](https://github.com/astral-sh/setup-uv/issues/299)) ### [`v5.3.0`](https://github.com/astral-sh/setup-uv/releases/tag/v5.3.0): 🌈 Support MUSL, s390x and powerpc [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.3...v5.3) In this release we add support for MUSL based systems. This is helpful if you are running your workflow inside a docker image based on [alpine](https://hub.docker.com/_/alpine). > \[!TIP] > Please be aware that you have to make sure a python interpreter is already present (`apk add python3`), see also <https://docs.astral.sh/uv/concepts/python-versions/#cpython-distributions> and [astral-sh/uv#6890](https://github.com/astral-sh/uv/issues/6890) [@&#8203;Zxilly](https://github.com/Zxilly) also added support for running this action on self-hosted runners using s390x and powerpc architectures. Thank you! This release also includes more debug logs which makes tracking down issues easier in the future. #### 🐛 Bug fixes - Add more debug logs [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;297](https://github.com/astral-sh/setup-uv/issues/297)) #### 🚀 Enhancements - Support OS using musl [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;284](https://github.com/astral-sh/setup-uv/issues/284)) - feat: support s390x and powerpc [@&#8203;Zxilly](https://github.com/Zxilly) ([#&#8203;289](https://github.com/astral-sh/setup-uv/issues/289)) #### 🧰 Maintenance - chore: update known checksums for 0.6.2 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;295](https://github.com/astral-sh/setup-uv/issues/295)) - chore: update known checksums for 0.6.1 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;293](https://github.com/astral-sh/setup-uv/issues/293)) - chore: update known checksums for 0.6.0 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;288](https://github.com/astral-sh/setup-uv/issues/288)) - chore: update known checksums for 0.5.31 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;277](https://github.com/astral-sh/setup-uv/issues/277)) - Run update-known-checksums every night [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;273](https://github.com/astral-sh/setup-uv/issues/273)) - chore: update known checksums for 0.5.29 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;272](https://github.com/astral-sh/setup-uv/issues/272)) - chore: update known checksums for 0.5.28 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;270](https://github.com/astral-sh/setup-uv/issues/270)) - chore: update known checksums for 0.5.27 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;267](https://github.com/astral-sh/setup-uv/issues/267)) - chore: update known checksums for 0.5.26 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;263](https://github.com/astral-sh/setup-uv/issues/263)) #### 📚 Documentation - Add FAQ on resolution strategy and cache not found warnings [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;296](https://github.com/astral-sh/setup-uv/issues/296)) ### [`v5.3`](https://github.com/astral-sh/setup-uv/compare/v5.2.2...v5.3) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.2.2...v5.3) ### [`v5.2.2`](https://github.com/astral-sh/setup-uv/releases/tag/v5.2.2): 🌈 Full support for GHES [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.2.1...v5.2.2) #### Changes This release fixes some issues that prevented use with GitHub Enterprise Server instances. #### 🐛 Bug fixes - Do not expect GITHUB\_TOKEN to be set or valid [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;262](https://github.com/astral-sh/setup-uv/issues/262)) - Fallback if toml file parsing failed [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;246](https://github.com/astral-sh/setup-uv/issues/246)) #### 🧰 Maintenance - chore: update known checksums for 0.5.25 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;259](https://github.com/astral-sh/setup-uv/issues/259)) - chore: update known checksums for 0.5.24 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;256](https://github.com/astral-sh/setup-uv/issues/256)) - chore: update known checksums for 0.5.23 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;252](https://github.com/astral-sh/setup-uv/issues/252)) - chore: update known checksums for 0.5.22 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;250](https://github.com/astral-sh/setup-uv/issues/250)) - chore: update known checksums for 0.5.21 @&#8203;[github-actions\[bot\]](https://github.com/apps/github-actions) ([#&#8203;247](https://github.com/astral-sh/setup-uv/issues/247)) #### 📚 Documentation - Fix TOC [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;257](https://github.com/astral-sh/setup-uv/issues/257)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.10 to 22.12.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;258](https://github.com/astral-sh/setup-uv/issues/258)) - Bump release-drafter/release-drafter from 6.0.0 to 6.1.0 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;249](https://github.com/astral-sh/setup-uv/issues/249)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.9 to 22.10.10 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;254](https://github.com/astral-sh/setup-uv/issues/254)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.7 to 22.10.9 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;253](https://github.com/astral-sh/setup-uv/issues/253)) - Bump [@&#8203;actions/tool-cache](https://github.com/actions/tool-cache) from 2.0.1 to 2.0.2 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;244](https://github.com/astral-sh/setup-uv/issues/244)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.6 to 22.10.7 @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot) ([#&#8203;243](https://github.com/astral-sh/setup-uv/issues/243)) ### [`v5.2.1`](https://github.com/astral-sh/setup-uv/releases/tag/v5.2.1): 🌈 Support toml spec 1.0.0 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.2...v5.2.1) v5.2.0 introduced TOML parsing using [@&#8203;iarna/toml](https://www.npmjs.com/package/@&#8203;iarna/toml) because we already found out in `astral-sh/ruff-action` that [toml](https://www.npmjs.com/package/toml) has missing features. As it turns out [@&#8203;iarna/toml](https://www.npmjs.com/package/@&#8203;iarna/toml) also is not fully TOML spec (1.0.0) compliant. We now use [smol-toml](https://www.npmjs.com/package/smol-toml) #### 🐛 Bug fixes - Support toml spec 1.0.0 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;245](https://github.com/astral-sh/setup-uv/issues/245)) ### [`v5.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v5.2.0): 🌈 Detect required-version from config file [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.2...v5.2) This release adds support to derive the version of uv to be installed from `pyproject.toml` and `uv.toml` files. If no `version` input is defined the default is now to look for a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version) in `uv.toml` and then `pyproject.toml` in the repository root. If it cannot find any it falls back to `latest`. If your files are at a different place you can use the new inputs `uv-file` or `pyproject-file`. #### 🐛 Bug fixes - Add venv/bin as absolute path to PATH [@&#8203;op](https://github.com/op) ([#&#8203;241](https://github.com/astral-sh/setup-uv/issues/241)) - fix: make sure VIRTUAL\_ENV is an absolute path [@&#8203;samypr100](https://github.com/samypr100) ([#&#8203;224](https://github.com/astral-sh/setup-uv/issues/224)) #### 🚀 Enhancements - Detect required-version from config file [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;233](https://github.com/astral-sh/setup-uv/issues/233)) #### 🧰 Maintenance - chore: update known checksums for 0.5.20 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;238](https://github.com/astral-sh/setup-uv/issues/238)) - chore: update known checksums for 0.5.19 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;237](https://github.com/astral-sh/setup-uv/issues/237)) - chore: update known checksums for 0.5.18 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;232](https://github.com/astral-sh/setup-uv/issues/232)) - chore: update known checksums for 0.5.17 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;231](https://github.com/astral-sh/setup-uv/issues/231)) - chore: update known checksums for 0.5.16 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;228](https://github.com/astral-sh/setup-uv/issues/228)) - chore: update known checksums for 0.5.15 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;225](https://github.com/astral-sh/setup-uv/issues/225)) - chore: update known checksums for 0.5.14 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;222](https://github.com/astral-sh/setup-uv/issues/222)) - chore: update known checksums for 0.5.12 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;214](https://github.com/astral-sh/setup-uv/issues/214)) #### 📚 Documentation - docs: bump `astral-sh/setup-uv` to `v5` [@&#8203;njzjz](https://github.com/njzjz) ([#&#8203;205](https://github.com/astral-sh/setup-uv/issues/205)) #### ⬆️ Dependency updates - Bump [@&#8203;octokit/rest](https://github.com/octokit/rest) from 21.0.2 to 21.1.0 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;229](https://github.com/astral-sh/setup-uv/issues/229)) - Bump typescript from 5.7.2 to 5.7.3 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;230](https://github.com/astral-sh/setup-uv/issues/230)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.5 to 22.10.6 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;236](https://github.com/astral-sh/setup-uv/issues/236)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.3 to 22.10.5 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;223](https://github.com/astral-sh/setup-uv/issues/223)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.2 to 22.10.3 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;220](https://github.com/astral-sh/setup-uv/issues/220)) - Bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;218](https://github.com/astral-sh/setup-uv/issues/218)) ### [`v5.2`](https://github.com/astral-sh/setup-uv/compare/v5.1.0...v5.2) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.1.0...v5.2) ### [`v5.1`](https://github.com/astral-sh/setup-uv/compare/v5.1.0...v5.1.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.1.0...v5.1.0) ### [`v5.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v5.1.0): 🌈 Fewer cache invalidations [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5.0.1...v5.1.0) #### Changes This release includes less frequently invalidated caches and a fix for setting the correct `VIRTUAL_ENV` #### 🐛 Bug fixes - Set VIRTUAL\_ENV to .venv instead of .venv/bin [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;210](https://github.com/astral-sh/setup-uv/issues/210)) #### 🚀 Enhancements - Remove uv version from cache key [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;206](https://github.com/astral-sh/setup-uv/issues/206)) #### 📚 Documentation - Align use of `actions/setup-python` with uv docu [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;207](https://github.com/astral-sh/setup-uv/issues/207)) ### [`v5.0.1`](https://github.com/astral-sh/setup-uv/releases/tag/v5.0.1): 🌈 The christmas elves overlooked something [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5...v5.0.1) #### Changes With so many breaking changes so close to the end of the year we missed something. Thank you [@&#8203;ryanhiebert](https://github.com/ryanhiebert) for quickly reporting that our new defaults fail the workflow if neither a `uv.lock` nor a `requirements*.txt` can be found. This is now a warning instead. #### 🐛 Bug fixes - Fix wrong cacheDependencyPathHash [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;201](https://github.com/astral-sh/setup-uv/issues/201)) - Warn instead of fail for no-dependency-glob [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;200](https://github.com/astral-sh/setup-uv/issues/200)) ### [`v5.0`](https://github.com/astral-sh/setup-uv/compare/v5...v5) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5...v5) ### [`v5.0.0`](https://github.com/astral-sh/setup-uv/releases/tag/v5.0.0): 🎄 Merry Christmas - Help fastly and users by default [Compare Source](https://github.com/astral-sh/setup-uv/compare/v5...v5) #### Changes This christmans 🎄 release is a bit early bit still full of presents 🎁 Since we are changing some of the defaults this can lead to breaking changes, thus the major version increase. Here are the highlights: ##### [Default to enable-cache: true on GitHub hosted runners](https://github.com/astral-sh/setup-uv/pull/193) Did you know that that Fastly, the company hosting PyPI, theoretically has to pay $12.5 million per month and so far have served more than 2.41 **exabytes** of data? ![image](https://github.com/user-attachments/assets/f2f6cb3f-68f6-4e37-abb1-d3bf1f278533) This is why [they asked us](https://github.com/astral-sh/setup-uv/issues/54) to turn on caching by default. After weighting the pros and cons we decided to automatically upload the cache to the GitHub Actions cache when running on GitHub hosted runners. You can still disable that with `enable-cache: false`. I remember when I first got into actions and didn't understand all the magic. I was baffled that some actions did something behind the scenes to make everything faster. I hope with this change we help a lot of users who are don't want to or are afraid to understand what `enable-cache` does. ##### [Add \*\*/requirements\*.txt to default cache-dependency-glob](https://github.com/astral-sh/setup-uv/pull/185) If caching is enabled we automatically searched for a `uv.lock` file and when this changed we knew we had to refresh the cache. A lot of projects don't use this but rather the good old `requirements.txt`. We now automatically search for both `uv.lock`and `requirements*.txt` (this means also `requirements-test.txt`, `requirements-dev.txt`, ...) files. You can change this with `cache-dependency-glob` ##### [Auto activate venv when python-version is set](https://github.com/astral-sh/setup-uv/pull/194) Some workflows install packages on the fly. This automatically works when using a python version that is already present on the runner. But if uv installs the version, e.g. because it is a free-threaded version or an old one, it is a [standalone-build](https://astral.sh/blog/python-build-standalone) and installing packages "into the system" is not possible. We now automatically create a new virtual environment with `uv venv` and activate it for the rest of the workflow if `python-version` is used. This means you can now do ```yaml - name: Install uv uses: astral-sh/setup-uv@auto-environment with: python-version: 3.13t - run: uv pip install -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython ``` #### 🚨 Breaking changes - Default to enable-cache: true on GitHub hosted runners [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;193](https://github.com/astral-sh/setup-uv/issues/193)) - Add \*\*/requirements\*.txt to default cache-dependency-glob [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;185](https://github.com/astral-sh/setup-uv/issues/185)) #### 🐛 Bug fixes - Always use api.github.com [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;191](https://github.com/astral-sh/setup-uv/issues/191)) #### 🚀 Enhancements - Auto activate venv when python-version is set [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;194](https://github.com/astral-sh/setup-uv/issues/194)) - Add python version to cache key [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;187](https://github.com/astral-sh/setup-uv/issues/187)) #### 🧰 Maintenance - chore: update known checksums for 0.5.11 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;198](https://github.com/astral-sh/setup-uv/issues/198)) - chore: update known checksums for 0.5.10 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;196](https://github.com/astral-sh/setup-uv/issues/196)) - chore: update known checksums for 0.5.9 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;195](https://github.com/astral-sh/setup-uv/issues/195)) - chore: update known checksums for 0.5.8 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;190](https://github.com/astral-sh/setup-uv/issues/190)) - chore: update known checksums for 0.5.7 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;183](https://github.com/astral-sh/setup-uv/issues/183)) - chore: update known checksums for 0.5.6 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;179](https://github.com/astral-sh/setup-uv/issues/179)) #### 📚 Documentation - Add hint why cache-dependency-glob fails [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;184](https://github.com/astral-sh/setup-uv/issues/184)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.10.1 to 22.10.2 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;189](https://github.com/astral-sh/setup-uv/issues/189)) - Update dependencies [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;186](https://github.com/astral-sh/setup-uv/issues/186)) ### [`v5`](https://github.com/astral-sh/setup-uv/compare/v4.2.0...v5) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4.2.0...v5) ### [`v4.2`](https://github.com/astral-sh/setup-uv/compare/v4.2.0...v4.2.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4.2.0...v4.2.0) ### [`v4.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v4.2.0): 🌈 Resolve latest version instead of downloading latest release [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4.1.0...v4.2.0) #### Changes We got a frist contribution from [@&#8203;pollenjp](https://github.com/pollenjp)! Thanks to this we are now resolving the latest version and try to find it in the local cache instead of always downloading the latest release from the uv repository. This new approach is not only more **efficient**, it also fixes a latent bug in the self-hosted runners tools cache and makes the code more **maintainable**. Thank you [@&#8203;pollenjp](https://github.com/pollenjp)! #### 🚀 Enhancements - Resolve latest version instead of downloading latest release [@&#8203;pollenjp](https://github.com/pollenjp) ([#&#8203;178](https://github.com/astral-sh/setup-uv/issues/178)) #### 🧰 Maintenance - Add test for python-version [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;177](https://github.com/astral-sh/setup-uv/issues/177)) ### [`v4.1`](https://github.com/astral-sh/setup-uv/compare/v4.1.0...v4.1.0) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4.1.0...v4.1.0) ### [`v4.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v4.1.0): 🌈 Set UV_PYTHON for your workflow [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4...v4.1.0) #### Changes You can now use the input `python-version` to set the environment variable `UV_PYTHON` for the rest of your workflow. This will override any python version specifications in `pyproject.toml` and `.python-version` ```yaml - name: Install the latest version of uv and set the python version to 3.12 uses: astral-sh/setup-uv@v4 with: python-version: "3.12" ``` You can combine this with a matrix to test multiple python versions: ```yaml jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - name: Install the latest version of uv and set the python version uses: astral-sh/setup-uv@v4 with: python-version: ${{ matrix.python-version }} - name: Test with python ${{ matrix.python-version }} run: uv run --frozen pytest ``` #### 🚀 Enhancements - Add input python-version [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;174](https://github.com/astral-sh/setup-uv/issues/174)) #### 🧰 Maintenance - Reduce test matrices [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;173](https://github.com/astral-sh/setup-uv/issues/173)) - chore: update known checksums for 0.5.5 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;170](https://github.com/astral-sh/setup-uv/issues/170)) - Speed up updating known checksums [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;166](https://github.com/astral-sh/setup-uv/issues/166)) #### 📚 Documentation - Replace v3 with v4 in README.md [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;176](https://github.com/astral-sh/setup-uv/issues/176)) - Add matrix example for python-version [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;175](https://github.com/astral-sh/setup-uv/issues/175)) - Clarify caching will only fail when enabled and nothing to cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;165](https://github.com/astral-sh/setup-uv/issues/165)) ### [`v4.0`](https://github.com/astral-sh/setup-uv/compare/v4...v4) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4...v4) ### [`v4.0.0`](https://github.com/astral-sh/setup-uv/releases/tag/v4.0.0): 🌈 Fail when cache local path does not exist when trying to cache [Compare Source](https://github.com/astral-sh/setup-uv/compare/v4...v4) ### 🚨 Breaking change 🚨 By default, the action will now fail if caching is enabled but there is nothing to upload (the uv cache directory does not exist). If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`. ```yaml - name: Ignore nothing to cache uses: astral-sh/setup-uv@v3 with: enable-cache: true ignore-nothing-to-cache: true ``` *** In previous releases only an error got logged when saving the cache failed. In most cases users did not realize something was wrong with their config. <img width="1014" alt="image" src="https://github.com/user-attachments/assets/6d03ac1f-9c04-4571-841e-de41291f4939"> #### Changes #### 🚨 Breaking changes - Fail when cache local path does not exist when trying to cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;163](https://github.com/astral-sh/setup-uv/issues/163)) #### 🐛 Bug fixes - Fail when cache local path does not exist when trying to cache [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;163](https://github.com/astral-sh/setup-uv/issues/163)) - Remove working dir from cacheDependencyGlob error message [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;162](https://github.com/astral-sh/setup-uv/issues/162)) #### 📚 Documentation - Change some formulations in README.md [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;164](https://github.com/astral-sh/setup-uv/issues/164)) - Add comment to clarify process.exit(0) [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;161](https://github.com/astral-sh/setup-uv/issues/161)) ### [`v4`](https://github.com/astral-sh/setup-uv/compare/v3.2.4...v4) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2.4...v4) ### [`v3.2.4`](https://github.com/astral-sh/setup-uv/releases/tag/v3.2.4): 🌈 Expand `~` tilde in input paths [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2.3...v3.2.4) This release adds support for expanding the `~` character to the user's home directory for the following inputs: - `cache-local-path` - `tool-dir` - `tool-bin-dir` - `cache-dependency-glob` ```yaml - name: Expand the tilde character uses: astral-sh/setup-uv@v3 with: cache-local-path: "~/path/to/cache" tool-dir: "~/path/to/tool/dir" tool-bin-dir: "~/path/to/tool-bin/dir" cache-dependency-glob: "~/my-cache-buster" ``` In order to make this work `cache-dependency-glob` also got support to glob files outside the working directory: ```yaml - name: Define an absolute cache dependency glob uses: astral-sh/setup-uv@v3 with: enable-cache: true cache-dependency-glob: "/tmp/my-folder/requirements*.txt" ``` Thank you [@&#8203;fynnsu](https://github.com/fynnsu) for raising this issue! #### 🚀 Enhancements - Expand TILDE (\~) in path inputs [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;160](https://github.com/astral-sh/setup-uv/issues/160)) #### 🧰 Maintenance - chore: update known checksums for 0.5.4 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;158](https://github.com/astral-sh/setup-uv/issues/158)) - chore: update known checksums for 0.5.3 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;156](https://github.com/astral-sh/setup-uv/issues/156)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.9.0 to 22.9.1 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;157](https://github.com/astral-sh/setup-uv/issues/157)) - Bump [@&#8203;vercel/ncc](https://github.com/vercel/ncc) from 0.38.2 to 0.38.3 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;155](https://github.com/astral-sh/setup-uv/issues/155)) ### [`v3.2.3`](https://github.com/astral-sh/setup-uv/releases/tag/v3.2.3): 🌈 update known checksums for 0.5.2 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2.2...v3.2.3) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.5.2 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;154](https://github.com/astral-sh/setup-uv/issues/154)) - chore: update known checksums for 0.5.1 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;152](https://github.com/astral-sh/setup-uv/issues/152)) - chore: update known checksums for 0.5.0 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;151](https://github.com/astral-sh/setup-uv/issues/151)) ### [`v3.2.2`](https://github.com/astral-sh/setup-uv/releases/tag/v3.2.2): 🌈 Avoid leftover files by using temp dir [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2.1...v3.2.2) #### Changes The previous release left over downloaded files. #### 🐛 Bug fixes - Avoid leftover files by using temp dir [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;150](https://github.com/astral-sh/setup-uv/issues/150)) ### [`v3.2.1`](https://github.com/astral-sh/setup-uv/releases/tag/v3.2.1): 🌈 Fix extracting with old PowerShell versions [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2...v3.2.1) #### Changes Old PowerShell versions (5.1) have a problem with extracting files without the `.zip` extension. To fix that we now make sure the extension is part of the filename. #### 🐛 Bug fixes - add archive extension to downloaded assets [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;148](https://github.com/astral-sh/setup-uv/issues/148)) #### 🧰 Maintenance - chore: update known checksums for 0.4.30 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;145](https://github.com/astral-sh/setup-uv/issues/145)) - chore: update known checksums for 0.4.29 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;140](https://github.com/astral-sh/setup-uv/issues/140)) - chore: update known checksums for 0.4.28 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;136](https://github.com/astral-sh/setup-uv/issues/136)) #### ⬆️ Dependency updates - Bump [@&#8203;actions/cache](https://github.com/actions/cache) from 3.2.4 to 3.3.0 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;143](https://github.com/astral-sh/setup-uv/issues/143)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.8.6 to 22.9.0 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;146](https://github.com/astral-sh/setup-uv/issues/146)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.9 to 22.8.6 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;142](https://github.com/astral-sh/setup-uv/issues/142)) ### [`v3.2.0`](https://github.com/astral-sh/setup-uv/releases/tag/v3.2.0): 🌈 add option to disable cache pruning [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.2...v3.2) #### Changes Big thanks to [@&#8203;merlinz01](https://github.com/merlinz01) for adding the option to disable the cache pruning prior to saving it to the Github Actions Cache. This is useful if downloading the GitHub Actions cache is fast and cheap for you but downloading from an index is slow or expensive. #### 🚀 Enhancements - feat: add option to disable cache pruning [@&#8203;merlinz01](https://github.com/merlinz01) ([#&#8203;134](https://github.com/astral-sh/setup-uv/issues/134)) #### 🧰 Maintenance - chore: update known checksums for 0.4.26 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;133](https://github.com/astral-sh/setup-uv/issues/133)) - chore: update known checksums for 0.4.25 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;130](https://github.com/astral-sh/setup-uv/issues/130)) - chore: update known checksums for 0.4.24 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;126](https://github.com/astral-sh/setup-uv/issues/126)) - chore: update known checksums for 0.4.23 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;125](https://github.com/astral-sh/setup-uv/issues/125)) #### 📚 Documentation - Use 0.4.x for versioning examples [@&#8203;manzt](https://github.com/manzt) ([#&#8203;128](https://github.com/astral-sh/setup-uv/issues/128)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.8 to 22.7.9 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;132](https://github.com/astral-sh/setup-uv/issues/132)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.7 to 22.7.8 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;131](https://github.com/astral-sh/setup-uv/issues/131)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.6 to 22.7.7 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;129](https://github.com/astral-sh/setup-uv/issues/129)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.5 to 22.7.6 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;123](https://github.com/astral-sh/setup-uv/issues/123)) - Bump [@&#8203;biomejs/biome](https://github.com/biomejs/biome) from 1.9.3 to 1.9.4 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;127](https://github.com/astral-sh/setup-uv/issues/127)) ### [`v3.2`](https://github.com/astral-sh/setup-uv/compare/v3.1.7...v3.2) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.7...v3.2) ### [`v3.1.7`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.7): 🌈 update known checksums for 0.4.21 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.6...v3.1.7) #### Changes #### 🧰 Maintenance - Update deps [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;121](https://github.com/astral-sh/setup-uv/issues/121)) - chore: update known checksums for 0.4.21 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;120](https://github.com/astral-sh/setup-uv/issues/120)) ### [`v3.1.6`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.6): 🌈 Fix cache linebreak in linux runner [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.5...v3.1.6) #### Changes #### 🐛 Bug fixes - Fix cache linebreak in linux runner [@&#8203;yosmoc](https://github.com/yosmoc) ([#&#8203;118](https://github.com/astral-sh/setup-uv/issues/118)) ### [`v3.1.5`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.5): 🌈 update known checksums for 0.4.20 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.4...v3.1.5) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.4.20 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;115](https://github.com/astral-sh/setup-uv/issues/115)) - chore: update known checksums for 0.4.19 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;113](https://github.com/astral-sh/setup-uv/issues/113)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.4 to 22.7.5 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;114](https://github.com/astral-sh/setup-uv/issues/114)) - Bump [@&#8203;biomejs/biome](https://github.com/biomejs/biome) from 1.9.2 to 1.9.3 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;110](https://github.com/astral-sh/setup-uv/issues/110)) ### [`v3.1.4`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.4): 🌈 update known checksums for 0.4.18 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.3...v3.1.4) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.4.18 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;109](https://github.com/astral-sh/setup-uv/issues/109)) - Migrate to Biome for linting and formatting [@&#8203;charliermarsh](https://github.com/charliermarsh) ([#&#8203;107](https://github.com/astral-sh/setup-uv/issues/107)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.3 to 22.7.4 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;108](https://github.com/astral-sh/setup-uv/issues/108)) ### [`v3.1.3`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.3): 🌈 update known checksums for 0.4.17 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.2...v3.1.3) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.4.17 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;104](https://github.com/astral-sh/setup-uv/issues/104)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.7.0 to 22.7.3 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;103](https://github.com/astral-sh/setup-uv/issues/103)) ### [`v3.1.2`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.2): 🌈 update known checksums for 0.4.16 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1.1...v3.1.2) #### Changes #### 🐛 Bug fixes - Only log checksum is valid when it really is [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;97](https://github.com/astral-sh/setup-uv/issues/97)) #### 🧰 Maintenance - chore: update known checksums for 0.4.16 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;100](https://github.com/astral-sh/setup-uv/issues/100)) #### ⬆️ Dependency updates - Bump [@&#8203;types/node](https://github.com/types/node) from 22.6.1 to 22.7.0 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;101](https://github.com/astral-sh/setup-uv/issues/101)) - Bump [@&#8203;types/node](https://github.com/types/node) from 22.5.5 to 22.6.1 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;98](https://github.com/astral-sh/setup-uv/issues/98)) ### [`v3.1.1`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.1): 🌈 update known checksums for 0.4.15 [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1...v3.1.1) #### Changes #### 🧰 Maintenance - chore: update known checksums for 0.4.15 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;95](https://github.com/astral-sh/setup-uv/issues/95)) #### 📚 Documentation - Use runner label selfhosted-ubuntu-arm64 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;96](https://github.com/astral-sh/setup-uv/issues/96)) ### [`v3.1.0`](https://github.com/astral-sh/setup-uv/releases/tag/v3.1.0): 🌈 Support for semver version ranges [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3.1...v3.1) You can now also use semver ranges to define the version of uv to install: ```yaml - name: Install a semver range of uv uses: astral-sh/setup-uv@v3 with: version: ">=0.3.0" ``` ```yaml - name: Pinning a minor version of uv uses: astral-sh/setup-uv@v3 with: version: "0.3.x" ``` Learn more in the [README](https://github.com/astral-sh/setup-uv/tree/main?tab=readme-ov-file#install-a-version-by-supplying-a-semver-range) #### Changes - Set tool(-bin) dir and add to PATH [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;87](https://github.com/astral-sh/setup-uv/issues/87)) - Tweak the action branding [@&#8203;charliermarsh](https://github.com/charliermarsh) ([#&#8203;49](https://github.com/astral-sh/setup-uv/issues/49)) #### 🚀 Enhancements - Add support for semver version ranges [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;82](https://github.com/astral-sh/setup-uv/issues/82)) #### 🧰 Maintenance - chore: update known checksums for 0.4.14 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;94](https://github.com/astral-sh/setup-uv/issues/94)) - chore: update known checksums for 0.4.13 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;93](https://github.com/astral-sh/setup-uv/issues/93)) - chore: update known checksums for 0.4.12 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;86](https://github.com/astral-sh/setup-uv/issues/86)) - chore: update known checksums for 0.4.11 [@&#8203;github-actions](https://github.com/github-actions) ([#&#8203;84](https://github.com/astral-sh/setup-uv/issues/84)) #### 📚 Documentation - Fix a typo SHA265 → SHA256 [@&#8203;bswck-hai](https://github.com/bswck-hai) ([#&#8203;90](https://github.com/astral-sh/setup-uv/issues/90)) - Update version in README from v2 to v3 [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;85](https://github.com/astral-sh/setup-uv/issues/85)) - Fix prettier destroying markdown NOTE [@&#8203;eifinger](https://github.com/eifinger) ([#&#8203;80](https://github.com/astral-sh/setup-uv/issues/80)) #### ⬆️ Dependency updates - Bump peter-evans/create-pull-request from 7.0.3 to 7.0.5 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;91](https://github.com/astral-sh/setup-uv/issues/91)) - Bump eslint from 8.57.0 to 8.57.1 [@&#8203;dependabot](https://github.com/dependabot) ([#&#8203;81](https://github.com/astral-sh/setup-uv/issues/81)) ### [`v3.1`](https://github.com/astral-sh/setup-uv/compare/v3...v3.1) [Compare Source](https://github.com/astral-sh/setup-uv/compare/v3...v3.1) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - 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 has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
fzorb merged commit e184c4fdbd into master 2026-06-25 10:43:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
16px.eu/fukkireta!8
No description provided.