uv 0.12.0 でプロジェクト生成コマンドに重大変更
uv の開発者である Astral は、新バージョン 0.12.0 で uv init コマンドのデフォルト動作を変更し、パッケージ構造を src レイアウトへ移行しビルドバックエンドを uv_build に統一した。
AI深層分析を開く2026年7月29日 07:22
AI深層分析
キーポイント
uv init のデフォルト構造変更
バージョン 0.12.0 では、新規プロジェクト作成時にルート直下に main.py を配置する従来の形式から、src/ ディレクトリ配列にパッケージを格納する src レイアウトが採用される。
ビルドバックエンドの統一
uv build コマンド実行時に wheels や .tar.gz 配布ファイルを生成する際、デフォルトで uv_build バックエンドが設定されるようになった。
スクリプトエイリアスの新機能
uv-init というスクリプトエイリアスが設定され、uv run uv-init を実行することで src/uv_init/__init__.py 内の main() メソッドが起動する仕組みが追加された。
開発者への影響と推奨
この変更により、既存の慣習に依存していた開発者は src レイアウトへ移行を迫られ、パッケージ管理の標準化が進むことが示唆される。
重要な引用
"uv init now defaults to a src/ shaped package, instead of dropping main.py in the root of the project."
"It also configures the uv_build backend for building wheels and .tar.gz distribution files when you run uv build."
"I wonder when uv will be judged ready for a 1.0 release?"
編集コメントを表示
編集コメント
uv の開発者がパッケージ構造の標準化を推進しており、これは Python エコシステムにおける品質向上と一貫性の確保に寄与する。開発者はこの変更を機に、より堅牢なプロジェクト構成への移行を検討すべきである。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
uv 0.12.0
今回のリリースでは、特に uv init コマンドで生成されるデフォルトのプロジェクト構造に、いくつかの重要な変更が加えられています。
uv init は、新しいプロジェクトを作成するための uv のショートカットコマンドです。以前のバージョンである 0.11.x では、uv init uv-init を実行すると このディレクトリ構造 が生成されていました。
一方、uv 0.12 では 以下のような構造 が得られます。私は GitHub リポジトリで uv init の出力を自動的にスナップショットしており、完全な差分 も確認できます。
None type annotation that prints Hello from uv-init." src="https://static.simonwillison.net/static/2026/uv-diff.webp" />
uv init は、プロジェクトのルートに main.py を配置する代わりに、デフォルトで src/ フォルダを持つパッケージ構造を採用するようになりました。また、uv build を実行して wheels や .tar.gz 形式の配布ファイルをビルドする際にも、uv_build バックエンド が自動的に設定されます。さらに、uv-init というスクリプトエイリアスが用意され、uv run uv-init と実行すると、src/uv_init/__init__.py 内の新しい main() 関数が呼び出されるようになります。
これまで、自分のプロジェクトではsrc レイアウト を避けてきました。ただの慣性によるものです。しかし、そろそろ切り替えるべき時だと感じています。
uv がいつ 1.0 リリースに耐えうるものとして評価されるようになるのか、気になります。
原文を表示
uv 0.12.0
Some interesting breaking changes in this release of uv, in particular to the default project produced by the uv init command.
uv init is the uv shortcut for creating a new project. The previous version of uv, version 0.11.x, produced this directory when you ran uv init uv-init.
Here's what you get with uv 0.12. I have a GitHub repository that automatically snapshots the output of uv init, so you can also see the full diff:
None type annotation that prints Hello from uv-init." src="https://static.simonwillison.net/static/2026/uv-diff.webp" />
uv init now defaults to a src/ shaped package, instead of dropping main.py in the root of the project. It also configures the uv_build backend for building wheels and .tar.gz distribution files when you run uv build. Finally, it sets up uv-init as a script alias which, when run with uv run uv-init, executes a new main() function in src/uv_init/__init__.py.
I've so far avoided using src layout in my own projects just out of inertia. I think it's time I switched.
I wonder when uv will be judged ready for a 1.0 release?
AI算出
主要ニュースainew評価標準
AI モデルや研究そのものではないが、開発インフラの重要な変更点(破壊的変更)を具体的に報告しており、新規性が高い。検索意図は明確なバージョン番号と機能名が含まれるため特定されやすい。日本固有の文脈や企業事例はない。
6つの評価軸を見る
- AI関連度
- 25
- 情報源の信頼性
- 75
- 新規性
- 75
- 調べる価値
- 100
- 重複の少なさ
- 100
- 日本での有用性
- 25
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み