Repository navigation
Keep the tools lock after uninstalling the last tool - #22391
Merged
Merged
Conversation
charliermarsh
marked this pull request as ready for review
October 9, 2026 15:57
charliermarsh
force-pushed
the
charlie/uv-tool-uninstall-lock
branch
from
October 9, 2026 17:48
2dcf188 to
df4b350
Compare
charliermarsh
force-pushed
the
charlie/uv-tool-uninstall-lock
branch
from
October 12, 2026 17:46
df4b350 to
bb71f20
Compare
3 tasks
luketainton
pushed a commit
to luketainton/luke_rsu
that referenced
this pull request
Oct 15, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | stage | patch | `0.13.0` → `0.13.1` | --- ### Release Notes <details> <summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary> ### [`v0.13.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0131) [Compare Source](astral-sh/uv@0.13.0...0.13.1) Released on 2026-10-14. ##### Enhancements - Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#​22500](astral-sh/uv#22500)) - Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#​22463](astral-sh/uv#22463)) - Report missing trusted hashes in resolution errors ([#​22241](astral-sh/uv#22241)) ##### Python - Add CPython 3.16.0a1 ([#​22527](astral-sh/uv#22527)) ##### Preview features - Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#​22498](astral-sh/uv#22498)) - Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#​22039](astral-sh/uv#22039)) ##### Performance - Reduce uv's binary size ([#​22429](astral-sh/uv#22429), [#​22430](astral-sh/uv#22430), [#​22432](astral-sh/uv#22432)) - Speed up Simple API parsing ([#​22429](astral-sh/uv#22429)) - Reduce package metadata parsing overhead ([#​22239](astral-sh/uv#22239)) ##### Bug fixes - Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#​22495](astral-sh/uv#22495)) - Restore support for source distributions containing hard links or full-length tar user or group names ([#​22516](astral-sh/uv#22516), [#​22522](astral-sh/uv#22522)) - Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#​22496](astral-sh/uv#22496)) - Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#​22520](astral-sh/uv#22520)) - Prevent concurrent readers from observing partially written lockfiles, Python version files, or managed Python sysconfig files ([#​22399](astral-sh/uv#22399), [#​22402](astral-sh/uv#22402), [#​22403](astral-sh/uv#22403)) - Serialize concurrent project commands that reach the same environment through real and symlinked paths ([#​22390](astral-sh/uv#22390)) - Prevent installs, syncs, and environment creation from failing when they race with `uv cache clean` ([#​22387](astral-sh/uv#22387)) - Prevent concurrent tool installations from corrupting an environment when the last tool is uninstalled ([#​22391](astral-sh/uv#22391)) - Persist changed upgrade settings even when `uv tool upgrade` leaves the tool version unchanged ([#​22499](astral-sh/uv#22499)) - Reuse environments with installed Git dependencies pinned to full commit hashes without resolving again ([#​22464](astral-sh/uv#22464)) ##### Documentation - Explain how to select an emulated Python interpreter on Windows ARM64 when native wheels are unavailable ([#​22424](astral-sh/uv#22424)) - Fix the `.netrc` format documentation link ([#​22514](astral-sh/uv#22514)) ##### Other changes - Publish Python 3.15-based uv Docker images under stable tags ([#​22503](astral-sh/uv#22503)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, 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 CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuOSIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==--> Reviewed-on: https://git.tainton.uk/repos/rsu/pulls/59 Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>
luketainton
pushed a commit
to luketainton/repos_labmcp
that referenced
this pull request
Oct 15, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ghcr.io/astral-sh/uv](https://github.com/astral-sh/uv) | final | patch | `0.13.0` → `0.13.1` | --- ### Release Notes <details> <summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary> ### [`v0.13.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0131) [Compare Source](astral-sh/uv@0.13.0...0.13.1) Released on 2026-10-14. ##### Enhancements - Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#​22500](astral-sh/uv#22500)) - Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#​22463](astral-sh/uv#22463)) - Report missing trusted hashes in resolution errors ([#​22241](astral-sh/uv#22241)) ##### Python - Add CPython 3.16.0a1 ([#​22527](astral-sh/uv#22527)) ##### Preview features - Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#​22498](astral-sh/uv#22498)) - Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#​22039](astral-sh/uv#22039)) ##### Performance - Reduce uv's binary size ([#​22429](astral-sh/uv#22429), [#​22430](astral-sh/uv#22430), [#​22432](astral-sh/uv#22432)) - Speed up Simple API parsing ([#​22429](astral-sh/uv#22429)) - Reduce package metadata parsing overhead ([#​22239](astral-sh/uv#22239)) ##### Bug fixes - Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#​22495](astral-sh/uv#22495)) - Restore support for source distributions containing hard links or full-length tar user or group names ([#​22516](astral-sh/uv#22516), [#​22522](astral-sh/uv#22522)) - Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#​22496](astral-sh/uv#22496)) - Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#​22520](astral-sh/uv#22520)) - Prevent concurrent readers from observing partially written lockfiles, Python version files, or managed Python sysconfig files ([#​22399](astral-sh/uv#22399), [#​22402](astral-sh/uv#22402), [#​22403](astral-sh/uv#22403)) - Serialize concurrent project commands that reach the same environment through real and symlinked paths ([#​22390](astral-sh/uv#22390)) - Prevent installs, syncs, and environment creation from failing when they race with `uv cache clean` ([#​22387](astral-sh/uv#22387)) - Prevent concurrent tool installations from corrupting an environment when the last tool is uninstalled ([#​22391](astral-sh/uv#22391)) - Persist changed upgrade settings even when `uv tool upgrade` leaves the tool version unchanged ([#​22499](astral-sh/uv#22499)) - Reuse environments with installed Git dependencies pinned to full commit hashes without resolving again ([#​22464](astral-sh/uv#22464)) ##### Documentation - Explain how to select an emulated Python interpreter on Windows ARM64 when native wheels are unavailable ([#​22424](astral-sh/uv#22424)) - Fix the `.netrc` format documentation link ([#​22514](astral-sh/uv#22514)) ##### Other changes - Publish Python 3.15-based uv Docker images under stable tags ([#​22503](astral-sh/uv#22503)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, 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 CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuOSIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==--> Reviewed-on: https://git.tainton.uk/repos/labmcp/pulls/79 Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>
1 task
hbjydev
pushed a commit
to hbjydev/phoebe
that referenced
this pull request
Oct 20, 2026
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [uv](https://github.com/astral-sh/uv) | tools | patch | `0.13.0` → `0.13.3` | --- ### Release Notes <details> <summary>astral-sh/uv (uv)</summary> ### [`v0.13.3`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0133) [Compare Source](astral-sh/uv@0.13.2...0.13.3) Released on 2026-10-20. ##### Performance - Avoid severe `uv export` slowdowns in dependency graphs with extras ([#​22750](astral-sh/uv#22750)) ### [`v0.13.2`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0132) [Compare Source](astral-sh/uv@0.13.1...0.13.2) Released on 2026-10-19. ##### Enhancements - Report all installed packages in `uv workspace metadata`, including packages outside the selected resolution ([#​22395](astral-sh/uv#22395)) - Include supported environment restrictions when exporting `pylock.toml` ([#​22596](astral-sh/uv#22596)) - Retry dropped GET and HEAD requests when fetching package and index data ([#​22672](astral-sh/uv#22672)) - Preserve encoding declarations in wheel data scripts that require shell launchers ([#​22526](astral-sh/uv#22526)) - Show causes and hints when `uv python find --script` cannot discover an interpreter, including with `-q` ([#​22549](astral-sh/uv#22549)) - Print valid ksh activation instructions and support non-relocatable environments under OpenBSD-derived ksh ([#​22538](astral-sh/uv#22538), [#​22572](astral-sh/uv#22572)) - Allow PEP 508 direct URLs, including Mercurial and extensionless archive URLs, in uv-build's `[build-system].requires` validation ([#​22577](astral-sh/uv#22577)) ##### Python - Add PyPy 3.11.17 and 3.12.15 ([#​22578](astral-sh/uv#22578)) ##### Preview features - Fetch and parse PEP 825 index-level variant metadata with `wheel-variants` ([#​22509](astral-sh/uv#22509), [#​22511](astral-sh/uv#22511)) ##### Performance - Avoid exponential work when simplifying, traversing, and exporting complex dependency markers ([#​22608](astral-sh/uv#22608), [#​22615](astral-sh/uv#22615), [#​22651](astral-sh/uv#22651), [#​22674](astral-sh/uv#22674)) - Reduce the time and memory used to parse and store complex dependency markers ([#​22675](astral-sh/uv#22675), [#​22676](astral-sh/uv#22676), [#​22681](astral-sh/uv#22681)) - Reduce resolver memory use for large dependency graphs, forks, extras, and dependency groups ([#​22565](astral-sh/uv#22565), [#​22625](astral-sh/uv#22625)) - Speed up project discovery in large workspaces by caching member names ([#​22635](astral-sh/uv#22635)) - Reduce uv's binary size and speed up CycloneDX exports ([#​22431](astral-sh/uv#22431)) - Reduce `uv-build` binary size, including Linux x86_64 wheels ([#​22539](astral-sh/uv#22539), [#​22573](astral-sh/uv#22573)) - Reduce allocations when parsing TOML ([#​22679](astral-sh/uv#22679)) ##### Bug fixes - Respect `--exclude-newer` when a newer wheel for the selected source distribution is already cached ([#​22685](astral-sh/uv#22685)) - Prevent URL credentials from leaking through diagnostics or persisted metadata ([#​22600](astral-sh/uv#22600), [#​22601](astral-sh/uv#22601), [#​22617](astral-sh/uv#22617), [#​22622](astral-sh/uv#22622), [#​22646](astral-sh/uv#22646)) - Keep separate cache entries for signed `--find-links` URLs that differ only in sensitive query values ([#​22630](astral-sh/uv#22630)) - Honor PEP 751 environment restrictions when installing or syncing from `pylock.toml` ([#​22594](astral-sh/uv#22594)) - Use configured credentials before prompting during `uv publish`, and avoid prompting when no upload occurs ([#​22593](astral-sh/uv#22593)) - Match recursive build globs against complete file paths and ignore invalid license symlinks ([#​22581](astral-sh/uv#22581), [#​22583](astral-sh/uv#22583)) - Return an error for invalid `uv pip compile --python-version` values instead of panicking ([#​22727](astral-sh/uv#22727)) - Reject invalid `pylock.toml` output filenames before resolution instead of panicking ([#​22725](astral-sh/uv#22725)) - Avoid panicking during repeated resolution conflicts involving fixed-priority packages ([#​22589](astral-sh/uv#22589)) - Create version aliases correctly when installing managed Python into a relative directory ([#​22547](astral-sh/uv#22547)) - Show incompatibilities from failing `uv pip check` invocations with `-q` ([#​22544](astral-sh/uv#22544)) - Treat logically equivalent dependency markers as equal regardless of construction order ([#​22680](astral-sh/uv#22680)) ##### Rust API - Require the opt-in `unsafe-url` feature to use raw `url::Url` APIs in `uv-pep508` ([#​22623](astral-sh/uv#22623)) ##### Documentation - Clarify credential lookup, environment synchronization, managed Python, and integration guidance ([#​22542](astral-sh/uv#22542)) ##### Other changes - Use stable `sh.astral.*` signing identifiers for macOS binaries ([#​22648](astral-sh/uv#22648)) ### [`v0.13.1`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0131) [Compare Source](astral-sh/uv@0.13.0...0.13.1) Released on 2026-10-14. ##### Enhancements - Ignore `Requires-Python` upper bounds in `uv pip check` and `uv pip install --strict`, consistent with resolution ([#​22500](astral-sh/uv#22500)) - Support Linux SPARC by falling back when filesystem cloning and detailed cache accounting are unavailable ([#​22463](astral-sh/uv#22463)) - Report missing trusted hashes in resolution errors ([#​22241](astral-sh/uv#22241)) ##### Python - Add CPython 3.16.0a1 ([#​22527](astral-sh/uv#22527)) ##### Preview features - Allow `uv tool upgrade` to upgrade installed tools when `tool-install-locks` is enabled ([#​22498](astral-sh/uv#22498)) - Add preliminary support for parsing PEP 825 variant labels in wheel filenames with `wheel-variants` ([#​22039](astral-sh/uv#22039)) ##### Performance - Reduce uv's binary size ([#​22429](astral-sh/uv#22429), [#​22430](astral-sh/uv#22430), [#​22432](astral-sh/uv#22432)) - Speed up Simple API parsing ([#​22429](astral-sh/uv#22429)) - Reduce package metadata parsing overhead ([#​22239](astral-sh/uv#22239)) ##### Bug fixes - Prevent tool and managed Python uninstalls from deleting unrelated files beside their storage directories ([#​22495](astral-sh/uv#22495)) - Restore support for source distributions containing hard links or full-length tar user or group names ([#​22516](astral-sh/uv#22516), [#​22522](astral-sh/uv#22522)) - Preserve device files and FIFOs used as `uv pip compile` or `uv export` output destinations ([#​22496](astral-sh/uv#22496)) - Fix `sys._base_executable` detection for environments created from symlinked interpreters ([#​22520](astral-sh/uv#22520)) - Prevent concurrent readers from observing partially written lockfiles, Python version files, or managed Python sysconfig files ([#​22399](astral-sh/uv#22399), [#​22402](astral-sh/uv#22402), [#​22403](astral-sh/uv#22403)) - Serialize concurrent project commands that reach the same environment through real and symlinked paths ([#​22390](astral-sh/uv#22390)) - Prevent installs, syncs, and environment creation from failing when they race with `uv cache clean` ([#​22387](astral-sh/uv#22387)) - Prevent concurrent tool installations from corrupting an environment when the last tool is uninstalled ([#​22391](astral-sh/uv#22391)) - Persist changed upgrade settings even when `uv tool upgrade` leaves the tool version unchanged ([#​22499](astral-sh/uv#22499)) - Reuse environments with installed Git dependencies pinned to full commit hashes without resolving again ([#​22464](astral-sh/uv#22464)) ##### Documentation - Explain how to select an emulated Python interpreter on Windows ARM64 when native wheels are unavailable ([#​22424](astral-sh/uv#22424)) - Fix the `.netrc` format documentation link ([#​22514](astral-sh/uv#22514)) ##### Other changes - Publish Python 3.15-based uv Docker images under stable tags ([#​22503](astral-sh/uv#22503)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/London) - 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 CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjcuNSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2Ny41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9naXRodWItcmVsZWFzZSIsInR5cGUvcGF0Y2giXX0=--> Reviewed-on: https://git.hayden.moe/hayden/phoebe/pulls/905
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When we uninstall the last tool, we delete the tools directory and its lock. An installer already waiting on that lock can then run at the same time as a later installer that creates a new lock. For example, uninstalling tool A while two commands install tool B can cause one install to report success and the other to delete B's environment and receipt, leaving a dangling executable.
We retain the tools directory and its lock after uninstalling. Tools and their executables are still removed, but every installer now acquires the same lock. We also remove the error handling that existed only to delete the locked directory.