0.11 系以降に溜まった正しさ・安全性・仕様整合の変更をまとめた版である。多くの利用者は設定変更なしで上げられる想定で、uv build backend の設定自体に破壊的変更はない。[build-system] で uv_build に上限を付けている場合は、例として uv_build>=0.11.32,<0.13 のように 0.12 を許可する。
uv init は既定で [build-system](uv_build)を宣言し、アプリソースを src/<name> に置き、[project.scripts] エントリを付ける。プロジェクト自身を仮想環境へインストールし、uv run <name> で起動できる。既存プロジェクトは影響を受けない。以前の非パッケージ構成は uv init --no-package で作る。
console
$ uv init example
$ cd example
$ uv run example
Hello from example!主な破壊的変更:
- sdist は PEP 625 どおり
.tar.gzのみ(.tar.bz2/.tar.xzは拒否。既存 lockfile 参照も同様)。wheel 内エントリの bzip2 / LZMA / XZ 圧縮も拒否 - ケース違いの
Pythonなど、仮想環境のインタプリタを上書きし得る wheel エントリ / data ファイルを拒否 - プリリリース既定を
if-necessaryに変更。安定版を優先し、制約を満たす安定版が無いときだけプリリリースへフォールバック。旧if-necessary-or-explicitはエイリアスとして非推奨 requirements.txt内の--require-hashesを実際に有効化。ハッシュ検証モードでは MD5 のみのダイジェストを拒否uv run path/to/script.pyのプロジェクト探索をスクリプト所在ディレクトリ起点に変更。uv venv --clearは仮想環境以外のディレクトリを消さず、--forceが必要