xrpld
Loading...
Searching...
No Matches
check-tools Directory Reference
Directory dependency graph for check-tools:
check-tools

Detailed Description

check-tools snapshots

These files capture the output of bin/check-tools.sh — the version and resolved store path of each development tool — in each Nix environment:

File Environment
nix-ubuntu-amd64.txt nix-ubuntu CI image, linux/amd64
nix-ubuntu-arm64.txt nix-ubuntu CI image, linux/arm64
macos.txt macOS, inside nix develop

The check-tools workflow regenerates each snapshot in its environment and fails if it differs from the committed file. So if you change the environment (bump the image tag in linux.json, update flake.lock, change the tool list in check-tools.sh, …) you must regenerate and commit the affected snapshots.

Each snapshot is check-tools.sh stdout with the git-clone connectivity check skipped (CHECK_TOOLS_SKIP_CLONE=1), so it is deterministic for a given environment. On macOS the dev-shell greeting that nix develop prints first is dropped with sed -n '/^Detected OS:/,$p'.

The store paths carry their derivation hash, so they change whenever a tool is rebuilt — a flake.lock update generally rewrites most of them even when no version moves. That is deliberate: it makes tooling changes visible in review.

Regenerating

The two Linux snapshots come from the nix-ubuntu image (Docker or a compatible runtime such as Apple container). The image tag is pinned in linux.json:

img="ghcr.io/xrplf/xrpld/nix-ubuntu:$(jq -r .image_tag .github/scripts/strategy-matrix/linux.json)"
for arch in amd64 arm64; do
container run --rm -i -e CHECK_TOOLS_SKIP_CLONE=1 -a "${arch}" --entrypoint bash "${img}" -s \
<bin/check-tools.sh >"nix/check-tools/nix-ubuntu-${arch}.txt"
done

(With Docker, replace container run … -a "${arch}" with docker run … --platform "linux/${arch}".)

The macOS snapshot is generated locally. CI= is unset so check-tools.sh checks the full dev-shell tool set (it otherwise skips some tools when CI is set):

CI= nix develop -c bash -c 'CHECK_TOOLS_SKIP_CLONE=1 bash bin/check-tools.sh' |
sed -n '/^Detected OS:/,$p' \
>nix/check-tools/macos.txt