What astral-sh/uv shipped
Written by FoxPlug from public releases; not affiliated with uv. An automatic summary of the public release, pull request and commit data of github.com/astral-sh/uv. uv did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Week of September 21, 2026
What shipped
- Released 0.12.19 with support for PyPy 3.11.16 and 3.12.14, GraalPy updates, and build-backend hooks with lazy imports on CPython 3.15. Release
- Honor synthetic default groups when installing from pylock.toml so packages marked with default dependency groups install correctly. Pull request #22003
- Fix hash constraint bypass in uv pip install when a package appears multiple times in requirements. Pull request #21996
- Avoid duplicate wheel installations from locked requirements with --preview-features tool-install-locks that caused race conditions on Windows. Pull request #22000
- Restore pyproject.toml when uv upgrade fails to leave the manifest unchanged after aborted operations. Pull request #21983
- Add --output-format json to uv pip install and uv pip sync for structured inspection of package changes. Pull request #21893
- Omit unused runtime settings from lockfiles with resolution-inputs preview feature to reduce uv.lock file size. Pull request #21913
- Fix path discovery in relocatable Nushell activation scripts by switching parse-time binding to const. Pull request #21979
- Store Git checkout markers outside working trees to avoid collisions with .ok files in checkouts. Pull request #21891
- Align arbitrary equality satisfaction with resolution so === constraints compare parsed versions correctly. Pull request #21931
Why it matters
Release 0.12.19 brings multiple stability fixes for lockfile handling, hash verification, and installation races. The addition of JSON output for pip commands enables better programmatic integration, while improvements to marker handling and constraint checking make dependency resolution more reliable.
Changelog entry
- Honor synthetic default groups when installing from pylock.toml Pull request #22003
- Apply hash constraints to repeated requirement occurrences in uv pip install Pull request #21996
- Avoid duplicate installations from locked requirements with tool-install-locks Pull request #22000
- Allow first-party metadata builds with --no-build in uv lock Pull request #21988
- Honor project filters when selecting all workspace packages Pull request #21994
- Fix path discovery in relocatable Nushell activation scripts Pull request #21979
- Restore pyproject.toml when uv upgrade fails Pull request #21983
- Preserve query parameters in direct URL metadata Pull request #21971
- Omit unused runtime settings from lockfiles with resolution-inputs preview feature Pull request #21913
- Round-trip always-false environment markers correctly Pull request #21939
- Align arbitrary equality satisfaction with resolution for === constraints Pull request #21931
- Store Git checkout markers outside working trees to avoid collisions Pull request #21891
- Add --output-format json to uv pip install and uv pip sync Pull request #21893
uv 0.12.19 ships fixes for hash constraints, duplicate installations, and synthetic default groups in lockfiles. New --output-format json for pip install/sync and better handling of markers and equality constraints.
uv 0.12.19 is out with several important fixes: hash constraint validation now works correctly for repeated requirements, synthetic default groups in pylock.toml are honored, and duplicate wheel installations that could race on Windows are prevented. We also added --output-format json to uv pip install and uv pip sync for structured output, improved marker handling for round-tripping, and fixed path discovery in Nushell activation scripts.