Files

47 lines
2.1 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
#
# Regenerate every committed lockfile in the workspace:
# - Rust: Cargo.lock, fuzz/Cargo.lock (cargo update)
# - Node: bindings/node/package-lock.json (npm install --package-lock-only)
# - Python: .github/requirements/*.txt (uv pip compile --generate-hashes)
#
# Run from anywhere; the script cd's to the repo root itself:
#
# ./scripts/update-lockfiles.sh
#
# The Python locks are hash-pinned (OpenSSF Scorecard PinnedDependencies) and
# generated with uv rather than pip-tools because uv can resolve a *target*
# Python version's full transitive closure — with hashes — without that
# interpreter being installed locally. That is required for the numpy cp39/cp313
# split: numpy ships no single release with wheels for both, so ci-dev is locked
# twice (Python 3.9 and Python 3.10+). If uv is not on PATH the script
# bootstraps a local copy (Linux/macOS); on Windows install uv first
# (https://docs.astral.sh/uv/getting-started/installation/).
#
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$repo_root"
echo "==> Rust (Cargo.lock, fuzz/Cargo.lock)"
cargo update
(cd fuzz && cargo update)
echo "==> Node (bindings/node/package-lock.json)"
(cd bindings/node && npm install --package-lock-only --no-audit --no-fund)
echo "==> Python (.github/requirements/*.txt via uv)"
if ! command -v uv >/dev/null 2>&1; then
echo " uv not found on PATH; bootstrapping a local copy..."
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
fi
req=".github/requirements"
cc="./scripts/update-lockfiles.sh"
uv pip compile --quiet --python-version 3.9 --generate-hashes --custom-compile-command "$cc" "$req/ci-dev-py39.in" -o "$req/ci-dev-py39.txt"
uv pip compile --quiet --python-version 3.11 --generate-hashes --custom-compile-command "$cc" "$req/ci-dev-py3.in" -o "$req/ci-dev-py3.txt"
uv pip compile --quiet --python-version 3.11 --generate-hashes --custom-compile-command "$cc" "$req/bench.in" -o "$req/bench.txt"
echo "==> Done. Review 'git diff' before committing."