Skip to content

Commit 51c931b

Browse files
chore: container-first validation — remove fallbacks, fill check gaps (#443)
Remove fallback docker run blocks from dev scripts. Require docker-test on PATH. Add uv sync --check, uv lock --check, and pip-licenses to audit.sh for parity with validate-local-python. Closes #442 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5b0f4cb commit 51c931b

4 files changed

Lines changed: 21 additions & 61 deletions

File tree

scripts/dev/audit.sh

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,11 @@
22
set -euo pipefail
33

44
export DOCKER_DEV_IMAGE="${DOCKER_DEV_IMAGE:-dev-python:3.14}"
5-
export DOCKER_TEST_CMD="${DOCKER_TEST_CMD:-uv sync --frozen --group dev && uv run pip-audit -r requirements.txt -r requirements-dev.txt}"
5+
export DOCKER_TEST_CMD="${DOCKER_TEST_CMD:-uv sync --check --frozen --group dev && uv lock --check && uv run pip-audit -r requirements.txt -r requirements-dev.txt && uv run pip-licenses --allow-only=\"\$(grep -v '^\#' .pip-licenses-allowlist | grep -v '^\$' | paste -sd ';' -)\"}"
66

7-
if command -v docker-test >/dev/null 2>&1; then
8-
exec docker-test
7+
if ! command -v docker-test >/dev/null 2>&1; then
8+
echo "ERROR: docker-test not found on PATH." >&2
9+
echo "Set up standard-tooling: export PATH=../standard-tooling/scripts/bin:\$PATH" >&2
10+
exit 1
911
fi
10-
11-
# Fallback: run docker directly if docker-test is not on PATH.
12-
repo_root="$(cd "$(dirname "$0")/../.." && pwd)"
13-
14-
echo "Image: ${DOCKER_DEV_IMAGE}"
15-
echo "Command: ${DOCKER_TEST_CMD}"
16-
echo "---"
17-
18-
exec docker run --rm \
19-
-v "${repo_root}:/workspace" \
20-
-w /workspace \
21-
"${DOCKER_DEV_IMAGE}" \
22-
bash -c "${DOCKER_TEST_CMD}"
12+
exec docker-test

scripts/dev/lint.sh

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,9 @@ set -euo pipefail
44
export DOCKER_DEV_IMAGE="${DOCKER_DEV_IMAGE:-dev-python:3.14}"
55
export DOCKER_TEST_CMD="${DOCKER_TEST_CMD:-uv sync --frozen --group dev && uv run ruff check && uv run ruff format --check .}"
66

7-
if command -v docker-test >/dev/null 2>&1; then
8-
exec docker-test
7+
if ! command -v docker-test >/dev/null 2>&1; then
8+
echo "ERROR: docker-test not found on PATH." >&2
9+
echo "Set up standard-tooling: export PATH=../standard-tooling/scripts/bin:\$PATH" >&2
10+
exit 1
911
fi
10-
11-
# Fallback: run docker directly if docker-test is not on PATH.
12-
repo_root="$(cd "$(dirname "$0")/../.." && pwd)"
13-
14-
echo "Image: ${DOCKER_DEV_IMAGE}"
15-
echo "Command: ${DOCKER_TEST_CMD}"
16-
echo "---"
17-
18-
exec docker run --rm \
19-
-v "${repo_root}:/workspace" \
20-
-w /workspace \
21-
"${DOCKER_DEV_IMAGE}" \
22-
bash -c "${DOCKER_TEST_CMD}"
12+
exec docker-test

scripts/dev/test.sh

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,9 @@ set -euo pipefail
44
export DOCKER_DEV_IMAGE="${DOCKER_DEV_IMAGE:-dev-python:3.14}"
55
export DOCKER_TEST_CMD="${DOCKER_TEST_CMD:-uv sync --frozen --group dev && uv run pytest --cov=pymqrest --cov=examples --cov-report=term-missing --cov-branch --cov-fail-under=100}"
66

7-
if command -v docker-test >/dev/null 2>&1; then
8-
exec docker-test
7+
if ! command -v docker-test >/dev/null 2>&1; then
8+
echo "ERROR: docker-test not found on PATH." >&2
9+
echo "Set up standard-tooling: export PATH=../standard-tooling/scripts/bin:\$PATH" >&2
10+
exit 1
911
fi
10-
11-
# Fallback: run docker directly if docker-test is not on PATH.
12-
repo_root="$(cd "$(dirname "$0")/../.." && pwd)"
13-
14-
echo "Image: ${DOCKER_DEV_IMAGE}"
15-
echo "Command: ${DOCKER_TEST_CMD}"
16-
echo "---"
17-
18-
exec docker run --rm \
19-
-v "${repo_root}:/workspace" \
20-
-w /workspace \
21-
"${DOCKER_DEV_IMAGE}" \
22-
bash -c "${DOCKER_TEST_CMD}"
12+
exec docker-test

scripts/dev/typecheck.sh

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,9 @@ set -euo pipefail
44
export DOCKER_DEV_IMAGE="${DOCKER_DEV_IMAGE:-dev-python:3.14}"
55
export DOCKER_TEST_CMD="${DOCKER_TEST_CMD:-uv sync --frozen --group dev && uv run mypy src/ && uv run ty check src}"
66

7-
if command -v docker-test >/dev/null 2>&1; then
8-
exec docker-test
7+
if ! command -v docker-test >/dev/null 2>&1; then
8+
echo "ERROR: docker-test not found on PATH." >&2
9+
echo "Set up standard-tooling: export PATH=../standard-tooling/scripts/bin:\$PATH" >&2
10+
exit 1
911
fi
10-
11-
# Fallback: run docker directly if docker-test is not on PATH.
12-
repo_root="$(cd "$(dirname "$0")/../.." && pwd)"
13-
14-
echo "Image: ${DOCKER_DEV_IMAGE}"
15-
echo "Command: ${DOCKER_TEST_CMD}"
16-
echo "---"
17-
18-
exec docker run --rm \
19-
-v "${repo_root}:/workspace" \
20-
-w /workspace \
21-
"${DOCKER_DEV_IMAGE}" \
22-
bash -c "${DOCKER_TEST_CMD}"
12+
exec docker-test

0 commit comments

Comments
 (0)