Files
trex-core/.proofline/criteria/ac-0014.md
T

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_core import, trex-core-daemon, trex-core, trex-core-reset CLI와 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.lock build failure를 실행한다. release 집중 테스트와 full repository regression을 함께 실행한다.