의존성 관리 봇¶
의존성을 정기적으로 업데이트하는 것은 보안 취약점에 노출되지 않도록 하고, 의존성 간의 호환성 문제를 최소화하며, 너무 오래된 버전에서 업그레이드할 때 복잡한 과정을 피하기 위한 모범 사례로 간주된다. 다양한 도구들이 자동화된 풀 리퀘스트를 생성함으로써 최신 상태를 유지하는 데 도움을 준다. 이 중 여러 도구는 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
옵션을 활성화하면 주기적으로 lockfile을 새로 고칠 수 있다(예: 전이적 의존성 업데이트를 위해).
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
lockFileMaintenance: {
enabled: true,
},
}
인라인 스크립트 메타데이터¶
Renovate는 스크립트 인라인 메타데이터를 사용해 정의된 의존성을 업데이트할 수 있다.
Renovate는 어떤 Python 파일이 스크립트 인라인 메타데이터를 사용하는지 자동으로 감지할 수 없기 때문에, 해당 파일의 위치를 fileMatch
를 사용해 명시적으로 지정해야 한다. 예를 들어 다음과 같이 설정할 수 있다:
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
pep723: {
fileMatch: [
"scripts/generate_docs\\.py",
"scripts/run_server\\.py",
],
},
}
Dependabot¶
현재 uv에 대한 지원은 아직 제공되지 않는다. 진행 상황은 dependabot/dependabot-core#10478에서 확인할 수 있다.