1.8 KiB
1.8 KiB
id, status
| id | status |
|---|---|
| ac-0014 | active |
repository-owned lockfile 기반 runtime dependency identity
Criterion
repository verification environment와 published container의 runtime environment는 같은 revision의 repository-owned uv.lock dependency resolution을 사용해야 한다. version-tag verification은 pinned uv로 uv sync --extra dev --locked를 수행해야 하고, Docker runtime stage는 같은 pyproject.toml과 uv.lock을 입력으로 uv sync --locked --no-dev --no-editable 또는 의미상 동등한 runtime-only locked installation을 수행해야 한다. lockfile이 없거나 project metadata와 불일치하거나 install command가 lock resolution을 우회하면 image build와 publication은 fail-closed 해야 한다. Git publication tag와 Python package metadata version의 독립성은 이 lock identity를 변경하지 않는다.
Verification
- 성공 조건: 동일 source revision의
pyproject.toml과uv.lock으로 dev verification sync와 runtime-only image sync가 모두 성공하며 built image에서trex_coreimport,trex-core-daemon,trex-core,trex-core-resetCLI와 canonical SQL migration inventory가 network 없이 동작한다. - 실패·경계 조건: missing lockfile, project metadata/lock mismatch,
--locked누락, runtime dependency를 새로 resolve하는 install, dev dependency의 runtime 포함 또는 editable install은 build/publication 전에 FAIL이다. tag version과 package version 불일치 자체는 실패 조건이 아니다. - 검사 방법: workflow·Dockerfile contract tests로 pinned
uv와 두 locked sync command를 검사하고, 정상 lockfile의 실제 Docker build·built-container smoke와 의도적으로 불일치시킨pyproject.toml/uv.lockbuild failure를 실행한다. release 집중 테스트와 full repository regression을 함께 실행한다.