依存関係ボット
依存関係を定期的に更新することは、脆弱性の回避、依存関係間の非互換性の制限、古いバージョンからの複雑なアップグレードの回避のために、ベストプラクティスとされています。さまざまなツールが、自動化されたプルリクエストを作成することで最新の状態を保つのに役立ちます。それらのいくつかはuvをサポートしているか、サポートのための作業が進行中です。
Renovate
uvはRenovateによってサポートされています。
Note
uv pip compile
の出力(例:requirements.txt
の更新)はまだサポートされていません。進捗状況は
renovatebot/renovate#30909で追跡できます。
uv.lock
の出力
Renovateはuv.lock
ファイルの存在を使用して、uvが依存関係の管理に使用されていることを判断し、
プロジェクト依存関係、
オプション依存関係、
開発依存関係のアップグレードを提案します。Renovateは
pyproject.toml
とuv.lock
の両方のファイルを更新します。
ロックファイルは、定期的に(例えば、推移的依存関係を更新するために)リフレッシュすることもできます。
lockFileMaintenance
オプションを有効にすることで可能です:
renovate.json5
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
lockFileMaintenance: {
enabled: true,
},
}
インラインスクリプトメタデータ
Renovateは、スクリプトインラインメタデータを使用して定義された依存関係の更新をサポートしています。
自動的にどのPythonファイルがスクリプトインラインメタデータを使用しているかを検出できないため、
fileMatch
を使用してその場所を明示的に定義する必要があります。以下のように:
renovate.json5
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
pep723: {
fileMatch: [
"scripts/generate_docs\\.py",
"scripts/run_server\\.py",
],
},
}
Dependabot
uvのサポートはまだ利用できません。進捗状況は以下で追跡できます:
uv.lock
の出力についてはdependabot/dependabot-core#10478uv pip compile
の出力についてはdependabot/dependabot-core#10039