Skip to content

Commit 1b505d5

Browse files
author
Tooru
committed
Make check-deps deterministic
1 parent b89a124 commit 1b505d5

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

scripts/check-deps.sh

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,16 @@ echo "Checking if lock files are up to date..."
3535
# Common pip-compile flags (must match compile-deps.sh)
3636
COMPILE_FLAGS="--quiet --strip-extras --generate-hashes --allow-unsafe"
3737

38-
# Compile without modifying tracked files.
39-
# Note: pip-compile prints the generated requirements to STDERR in --dry-run mode.
40-
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --dry-run --output-file=server/requirements.txt server/requirements.in 1>/dev/null 2>"${TEMP_DIR}/server-requirements.txt"
41-
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --dry-run --output-file=harness/requirements.txt harness/requirements.in 1>/dev/null 2>"${TEMP_DIR}/harness-requirements.txt"
42-
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --dry-run --output-file=requirements-dev.txt requirements-dev.in 1>/dev/null 2>"${TEMP_DIR}/dev-requirements.txt"
38+
# Seed temp outputs with current lockfiles so pip-compile reuses pinned versions
39+
# (pip-compile treats an existing output file as a constraints source unless --upgrade is used).
40+
cp server/requirements.txt "${TEMP_DIR}/server-requirements.txt"
41+
cp harness/requirements.txt "${TEMP_DIR}/harness-requirements.txt"
42+
cp requirements-dev.txt "${TEMP_DIR}/dev-requirements.txt"
43+
44+
# Compile to temporary files (with hashes to match compile-deps.sh)
45+
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --output-file="${TEMP_DIR}/server-requirements.txt" server/requirements.in
46+
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --output-file="${TEMP_DIR}/harness-requirements.txt" harness/requirements.in
47+
"${VENV_DIR}/bin/pip-compile" ${COMPILE_FLAGS} --output-file="${TEMP_DIR}/dev-requirements.txt" requirements-dev.in
4348

4449
strip_pip_compile_header() {
4550
awk 'BEGIN{started=0} started{print; next} /^[[:space:]]*$/{next} /^#/{next} {started=1; print}' "$1"
@@ -49,16 +54,19 @@ CHANGES=0
4954

5055
if ! diff <(strip_pip_compile_header server/requirements.txt) <(strip_pip_compile_header "${TEMP_DIR}/server-requirements.txt") >/dev/null 2>&1; then
5156
echo "❌ server/requirements.txt is out of date"
57+
diff -u <(strip_pip_compile_header server/requirements.txt) <(strip_pip_compile_header "${TEMP_DIR}/server-requirements.txt") | head -n 80 || true
5258
CHANGES=1
5359
fi
5460

5561
if ! diff <(strip_pip_compile_header harness/requirements.txt) <(strip_pip_compile_header "${TEMP_DIR}/harness-requirements.txt") >/dev/null 2>&1; then
5662
echo "❌ harness/requirements.txt is out of date"
63+
diff -u <(strip_pip_compile_header harness/requirements.txt) <(strip_pip_compile_header "${TEMP_DIR}/harness-requirements.txt") | head -n 80 || true
5764
CHANGES=1
5865
fi
5966

6067
if ! diff <(strip_pip_compile_header requirements-dev.txt) <(strip_pip_compile_header "${TEMP_DIR}/dev-requirements.txt") >/dev/null 2>&1; then
6168
echo "❌ requirements-dev.txt is out of date"
69+
diff -u <(strip_pip_compile_header requirements-dev.txt) <(strip_pip_compile_header "${TEMP_DIR}/dev-requirements.txt") | head -n 80 || true
6270
CHANGES=1
6371
fi
6472

0 commit comments

Comments
 (0)