Releases: astral-sh/setup-uv
v7.0.0 🌈 node24 and a lot of bugfixes
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 version0.8.24
this action usesuv 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
- Respect UV_CACHE_DIR and cache-dir @eifinger (#612)
- Use --force when pruning cache @eifinger (#611)
- Respect UV_NO_MODIFY_PATH @eifinger (#603)
- Warn when
UV_CACHE_DIR
has changed @jamesbraza (#601)
🚀 Enhancements
🧰 Maintenance
- Bump dependencies @eifinger (#613)
- Fix test-uv-no-modify-path @eifinger (#604)
- Don't assume all test passed if cancelled @eifinger (#599)
⬆️ Dependency updates
- Bump github/codeql-action from 3.30.5 to 3.30.6 @dependabot[bot] (#605)
- Bump github/codeql-action from 3.30.3 to 3.30.5 @dependabot[bot] (#594)
- Bump @renovatebot/pep440 from 4.2.0 to 4.2.1 @dependabot[bot] (#581)
v6.8.0 🌈 Add **/*.py.lock to cache-dependency-glob
Changes
Thanks to @parched the default cache-dependency-glob
now also find all lock files generated by uv lock --script
🚀 Enhancements
- Always show prune cache output @eifinger (#597)
- Add **/*.py.lock to cache-dependency-glob @parched (#590)
🧰 Maintenance
📚 Documentation
⬆️ Dependency updates
- Bump zizmorcore/zizmor-action from 0.1.2 to 0.2.0 @dependabot[bot] (#571)
v6.7.0 🌈 New inputs `restore-cache` and `save-cache`
Changes
This release adds fine-grained control over the caching steps.
- The input
restore-cache
(true
by default) can be set tofalse
to skip restoring the cache while still allowing to save the cache. - The input
save-cache
(true
by default) can be set tofalse
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
- bump deps @eifinger (#569)
- Automatically push updated known versions @eifinger (#565)
- chore: update known versions for 0.8.16/0.8.17 @github-actions[bot] (#562)
- chore: update known versions for 0.8.15 @github-actions[bot] (#550)
- chore(ci): address CI lint findings @woodruffw (#545)
⬆️ Dependency updates
- Bump github/codeql-action from 3.29.11 to 3.30.3 @dependabot[bot] (#566)
- Bump actions/setup-node from 4.4.0 to 5.0.0 @dependabot[bot] (#551)
v6.6.1 🌈 Fix exclusions in cache-dependency-glob
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
- Bump dependencies @eifinger (#547)
- chore: update known versions for 0.8.14 @github-actions[bot] (#543)
- chore: update known versions for 0.8.13 @github-actions[bot] (#536)
v6.6.0 🌈 Support for .tools-versions
Changes
This release adds support for asdf .tool-versions
in the version-file
input
🐛 Bug fixes
🚀 Enhancements
🧰 Maintenance
- Bump dependencies @eifinger (#532)
- chore: update known versions for 0.8.12 @github-actions[bot] (#529)
- chore: update known versions for 0.8.11 @github-actions[bot] (#526)
- chore: update known versions for 0.8.10 @github-actions[bot] (#525)
v6.5.0 🌈 Better error messages, bug fixes and copilot agent settings
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
- Improve error messages on GitHub API errors @eifinger (#518)
- Ignore backslashes and whitespace in requirements @axm2 (#501)
🚀 Enhancements
🧰 Maintenance
- chore: update known versions for 0.8.9 @github-actions[bot] (#512)
- chore: update known versions for 0.8.6-0.8.8 @github-actions[bot] (#510)
- chore: update known versions for 0.8.5 @github-actions[bot] (#509)
- chore: update known versions for 0.8.4 @github-actions[bot] (#505)
- chore: update known versions for 0.8.3 @github-actions[bot] (#502)
📚 Documentation
⬆️ Dependency updates
v6.4.3 🌈 fix relative paths starting with dots
v6.4.2 🌈 Interpret relative inputs as under working-directory
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
- chore: update known versions for 0.8.1/0.8.2 @github-actions[bot] (#497)
- chore: update known versions for 0.8.0 @github-actions[bot] (#491)
v6.4.1 🌈 Hotfix: Ignore deps starting with uv when finding uv version
v6.4.0 🌈 Add input `version-file`
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
- chore: update known versions for 0.7.22 @github-actions[bot] (#488)
- Bump dependencies @eifinger (#487)
- chore: update known versions for 0.7.21 @github-actions[bot] (#483)
- chore: update known versions for 0.7.20 @github-actions[bot] (#480)
- chore: update known versions for 0.7.19 @github-actions[bot] (#475)
- chore: update known versions for 0.7.18 @github-actions[bot] (#473)
- chore: update known versions for 0.7.17 @github-actions[bot] (#468)
- chore: update known versions for 0.7.16 @github-actions[bot] (#466)
- chore: update known versions for 0.7.15 @github-actions[bot] (#463)