Skip to content

Latest commit

 

History

History
115 lines (92 loc) · 4.41 KB

get-started.org

File metadata and controls

115 lines (92 loc) · 4.41 KB

Get started

This path is for a site administrator. It uses a checkout of the repository and eb-stack 0.7.4 on PATH. The fixtures in the checkout are the inputs. Installation is how the binary gets onto PATH. A full EasyBuild campaign is the tutorial. People changing the tool start at Contributing.

The commands below were run with the 0.7.4 binary. --version prints the version the binary was built as.

Confirm the binary

eb-stack --version
eb-stack 0.7.4

Inspect a conda-forge recipe

package inspect writes the canonical manifest and the planned CycloneDX software bill of materials. The glossary names the later rungs resolves, builds, and binary-verified. Inspect stops before a Resolvo lock, so those rungs stay unset. The names are in the glossary.

eb-stack package inspect \
  --source fixtures/foreign_ingest/conda_eon/recipe.yaml \
  --format conda-forge \
  --toolchain foss/2026.1 \
  --package-config examples/packages/common.toml \
  --package-config examples/packages/eon.toml \
  --out-dir /tmp/eon-inspect

python3 -m json.tool /tmp/eon-inspect/package.plan.json >/dev/null
python3 -m json.tool /tmp/eon-inspect/package.sbom.cdx.json >/dev/null
manifest=/tmp/eon-inspect/package.plan.json
sbom=/tmp/eon-inspect/package.sbom.cdx.json

python3 -m json.tool exits 0 for both files.

Split one build list

tests/stack_shard_fixtures/wave1.list is four lines: OpenFOAM, ParaView, PETSc, and Hypre. PETSc depends on Hypre, so those two lines share a shard. OpenFOAM and ParaView both need HDF5 and Szip; OpenFOAM and PETSc both need MathLib. Those shared modules go to the prelude. The model is Sharding and inode admission. The same fixture, with the flags for fetched commits and accelerator roots, is Split a Jenkins build list into shards.

eb-stack stack shard \
  --build-list tests/stack_shard_fixtures/wave1.list \
  --easyconfigs tests/stack_shard_fixtures/easyconfigs \
  --installed tests/stack_shard_fixtures/installed.txt \
  --installed-modules-dir tests/stack_shard_fixtures/modules/all \
  --shards 4 \
  --generated-at 2026-11-03T00:00:00Z \
  --out-dir /tmp/docs-shards
shards=3 prelude=3 lines=4

--shards 4 is an upper bound. Three groups exist, so three shard files are written. /tmp/docs-shards/prelude.list holds Szip, HDF5, and MathLib. The PETSc shard lists Hypre first.

Refuse a job the quota cannot hold

stack admit is the check a controller runs before it starts one lane. The quota below has 100000 inodes left under the soft limit (3000000 - 2900000). The lane’s footprint is 351000 and the margin is 100000, so the headroom is 100000 - 351000 - 100000 = -351000. The process exits 78. The reservation directory stays empty.

mkdir -p /tmp/eb-stack-docs/admit-no
cat > /tmp/eb-stack-docs/quota-tight.json <<'EOF'
{"inodes_used": 2900000, "inodes_soft": 3000000, "inodes_hard": 3500000}
EOF
eb-stack stack admit \
  --quota-json /tmp/eb-stack-docs/quota-tight.json \
  --footprint 351000 \
  --margin 100000 \
  --job lane-1 \
  --reservations /tmp/eb-stack-docs/admit-no \
  --ts 2026-11-10T12:00:00Z
{"admitted":false,"available":100000,"counted":[],"footprint":351000,"grace":null,"hard":3500000,"headroom":-351000,"job":"lane-1","live_jobs":null,"live_jobs_cmd":null,"lock":null,"lock_kind":null,"margin":100000,"refusal":null,"reservation":null,"reserved":0,"soft":3000000,"soft_exceeded":false,"stale":[],"stale_dropped":false,"ts":"2026-11-10T12:00:00Z","unknown":[],"unknown_reserved":0,"used":2900000}

The exit status is 78. Exit statuses for the rest of the CLI are in the command-line reference.

Next