Repository navigation
Expand file tree
/
Copy pathllms.txt
More file actions
105 lines (89 loc) · 18.8 KB
/
Copy pathllms.txt
File metadata and controls
105 lines (89 loc) · 18.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# eb-stack
> eb-stack parses conda-forge, Spack, PyPI, CRAN, Cargo, LuaRocks, Raku, and EasyBuild recipes into one package plan, a planned CycloneDX SBOM, Resolvo locks, and conventional EasyBuild recipes.
The binary is `eb-stack`. The crate is `eb_stack`. Rust 1.90 or newer builds it from source. Each link below is the markdown form of a page on https://eb-stack.rgoswami.me/. `llms-full.txt` repeats those pages in one file. Contribution guidelines are in CONTRIBUTING.md. The Model Context Protocol server is `eb-stack mcp`.
## Getting started
- [eb-stack](https://eb-stack.rgoswami.me/index.html.md): A site that rebuilds an EESSI or EasyBuild generation keeps the dependency lock, the EasyBuild run, and the checks after install as separate records.
- [Get started](https://eb-stack.rgoswami.me/get-started.html.md): 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
- [Installation](https://eb-stack.rgoswami.me/install.html.md): eb-stack 0.7.4 is the crates.io package eb_stack and the GitHub release v0.7.4.
- [Tutorial: foreign recipe to verified EasyBuild package](https://eb-stack.rgoswami.me/tutorial.html.md): This tutorial plans conda-forge eOn, explains the artifacts, and routes the result into a build campaign.
## How-to guides
- [Run an annual toolchain-generation bump](https://eb-stack.rgoswami.me/howto/run-annual-bump.html.md): The annual workflow applies the canonical bump bundle to each maintained recipe, then drives every bundle through the same target-routed build campaign.
- [Author a new package from conda-forge or Spack](https://eb-stack.rgoswami.me/howto/new-package.html.md): This workflow turns a foreign package recipe into a canonical manifest, planned Software Bill of Materials (SBOM), Resolvo profile locks, conventional EasyBuild recipes, and a persisted build-evaluation campaign.
- [Site Python extras on EESSI](https://eb-stack.rgoswami.me/howto/pypi-extend.html.md): Turn a PyPI package or requirements.txt into an easyconfig that installs on top of an EasyBuild robot.
- [Site R extras on EESSI](https://eb-stack.rgoswami.me/howto/cran-extend.html.md): Turn a Comprehensive R Archive Network (CRAN) DESCRIPTION, CRAN JSON object, or package list into a Bundle easyconfig with exts_defaultclass = 'RPackage'.
- [eOn on EESSI with EESSI-extend and eb --robot](https://eb-stack.rgoswami.me/howto/eon-eessi-extend.html.md): Install eOn, and the dependencies the European Environment for Scientific Software Installations (EESSI) lacks, into a user or project prefix on top of EESSI.
- [Spack on EESSI with EESSI installs as externals](https://eb-stack.rgoswami.me/howto/spack-externals-eessi.html.md): Concretize a Spack package on top of installs that already have an easyconfig beside them.
- [Repair a failed campaign](https://eb-stack.rgoswami.me/howto/repair-campaign.html.md): Use this procedure when eb-stack campaign run records a failed attempt.
- [Solve a consistent stack lock](https://eb-stack.rgoswami.me/howto/solve-lock.html.md): Use stack solve for a multi-root EasyBuild generation lock.
- [Classify a site module list](https://eb-stack.rgoswami.me/howto/stack-gap.html.md): stack gap compares the module names a site provides with the names a stack has installed, and names the easyconfig that would close each gap.
- [Emit a build list and stack diff](https://eb-stack.rgoswami.me/howto/emit-reports.html.md): Goal: alongside the lock, get an install-ordered build list for a build pipeline and a markdown diff you can paste straight into a pull request.
- [Bump an existing EasyBuild recipe](https://eb-stack.rgoswami.me/howto/bump-recipe.html.md): A bump is a canonical EasyBuild-origin package bundle.
- [Declare root priority for multi-root optimization](https://eb-stack.rgoswami.me/howto/root-priority.html.md): Goal: when a policy has more than one root and they disagree on a shared dependency's version, control which root wins the newest-version tie-break instead of leaving it to incidental list order.
- [Which easyconfigs an easyblock change reaches](https://eb-stack.rgoswami.me/howto/easyblock-reach.html.md): A change to an easyblock, generic or software-specific, or to a framework module an easyblock imports, reaches the easyconfigs that use that class.
- [Find shared builds across open pull requests](https://eb-stack.rgoswami.me/howto/pr-overlap.html.md): Two open pull requests on the European Environment for Scientific Software Installations (EESSI) software-layer often build the same dependency.
- [Find open easybuild-easyconfigs pull requests that add the same software](https://eb-stack.rgoswami.me/howto/easyconfigs-pr-overlap.html.md): Two open pull requests (PRs) on easybuild-easyconfigs sometimes add the same easyconfig, or need the same new dependency.
- [What an in-place patch forces EESSI to rebuild](https://eb-stack.rgoswami.me/howto/rebuild-set.html.md): Goal: the patched easyconfigs keep their filenames and versions.
- [Which modules carry a component, and what that forces rebuilt](https://eb-stack.rgoswami.me/howto/component-reach.html.md): Goal: a Common Vulnerabilities and Exposures (CVE) record names a component and a version.
- [Find from-commit pins an EasyBuild release already contains](https://eb-stack.rgoswami.me/howto/from-commit-released.html.md): An easystack can select an easyconfig from a specific easybuild-easyconfigs commit with from-commit.
- [Refuse a plan an architecture cannot build](https://eb-stack.rgoswami.me/howto/arch-unsupported.html.md): What it does: stack arch reads an easystack as a plan.
- [Find a missing patch before the bot does](https://eb-stack.rgoswami.me/howto/patch-presence.html.md): What it does: stack files reads each easyconfig an easystack names and lists the files EasyBuild will look for on disk: the patches of the recipe, its extensions, and its components, patch files named only in
- [Refuse entries outside the EESSI version's generations](https://eb-stack.rgoswami.me/howto/generation-lint.html.md): What it does: stack generation reads a pull request's easystack changes, or easystack files, and checks every entry's toolchain against the toolchain generations of the EESSI version the easystack is for.
- [Fail a build list that names software the baseline provides](https://eb-stack.rgoswami.me/howto/build-list-provided.html.md): A site layer holds only the software the European Environment for Scientific Software Installations (EESSI) does not install.
- [Route the modules a stack does not have](https://eb-stack.rgoswami.me/howto/module-gap.html.md): eb-stack stack gap takes the module names a site loads and says, for each one the stack does not have, which route closes it.
- [Check CUDA compute capabilities in an easystack plan](https://eb-stack.rgoswami.me/howto/cuda-compute-capabilities.html.md): What it does: stack cuda-cc reads one or more easystacks as a plan, closes their dependencies on the robot tree, keeps the CUDA-dependent easyconfigs, and checks each cuda_compute_capabilities list against:
- [Warn about known per-architecture failures](https://eb-stack.rgoswami.me/howto/arch-known-failures.html.md): What it does: stack known-failures reads an easystack as a plan, closes its dependencies over --easyconfigs, and warns about every entry a bot run has already failed on one of the architectures you name.
- [Warn before a bot job runs out of memory](https://eb-stack.rgoswami.me/howto/oom-profile.html.md): What it does: stack oom reads an easystack as a plan.
- [Read an EESSI bot FAILURE](https://eb-stack.rgoswami.me/howto/bot-classify.html.md): What it does: stack bot-classify reads what an EESSI software-layer bot job left behind and says which kind of FAILURE it was: a real failure, ERROR-only noise, an empty tarball, or infra.
- [Split a Jenkins build list into shards](https://eb-stack.rgoswami.me/howto/stack-shard.html.md): What it does: stack shard takes one Jenkins build list for one node type and splits it into shards that can build at the same time.
- [Plan software-layer pull requests that do not overlap](https://eb-stack.rgoswami.me/howto/stack-batch.html.md): What it does: stack batch plans European Environment for Scientific Software Installations (EESSI) software-layer pull requests whose builds do not overlap.
- [Regroup a Jenkins build list under the previous sections](https://eb-stack.rgoswami.me/howto/stack-sections.html.md): What it does: stack sections reads a Jenkins build list and writes it again under the #### Title #### headers of a previous list.
- [Write an easystack from a stack lock](https://eb-stack.rgoswami.me/howto/stack-easystack.html.md): What it does: stack easystack writes a stack lock as the YAML eb --easystack reads.
- [Read the easyblock, templates, and hierarchy](https://eb-stack.rgoswami.me/howto/recipe-identity.html.md): What it does: three recipe commands answer questions EasyBuild decides before it builds.
- [Report the newest stable upstream release](https://eb-stack.rgoswami.me/howto/package-latest.html.md): What it does: package latest reads each easyconfig's source_urls and asks that backend for versions.
- [Read the reproduction scoreboard](https://eb-stack.rgoswami.me/howto/repro-summary.html.md): What it does: repro summary reads every *.json case score under --scores and prints the scoreboard.
- [Report a site recipe that shadows an EESSI module](https://eb-stack.rgoswami.me/howto/site-layer-shadow.html.md): What it does: stack shadow compares site-layer easyconfigs with the modules the European Environment for Scientific Software Installations (EESSI) base stack already provides.
## Reference
- [Glossary](https://eb-stack.rgoswami.me/reference/glossary.html.md): Names shared by the tutorial, the how-to guides, and the reference.
- [Command-line reference](https://eb-stack.rgoswami.me/reference/cli.html.md): eb-stack has seven namespaced command groups (package, recipe, stack, target, campaign, repro, ledger), four reports (easyblock-reach, pr-overlap, rebuild-set, component-reach), and a Model Context Protocol (MCP) server.
- [Scheduler capacity and phase storage](https://eb-stack.rgoswami.me/reference/planning-capacity.html.md): This page describes the main source interface.
- [Model Context Protocol server](https://eb-stack.rgoswami.me/reference/mcp.html.md): eb-stack mcp serves the version-one commands on stdin and stdout.
- [Package bundle reference](https://eb-stack.rgoswami.me/reference/package-bundles.html.md): package inspect, package plan, and package bump write a version-one package bundle.
- [Build target configuration](https://eb-stack.rgoswami.me/reference/targets.html.md): A target routes one EasyBuild workload through four independent layers: transport, executor, runtime, and EasyBuild settings.
- [Campaign state and typed findings](https://eb-stack.rgoswami.me/reference/campaigns.html.md): A campaign turns a resolved package bundle into empirical build and binary evidence on one named target.
- [Rust API](https://eb-stack.rgoswami.me/reference/rust-api.html.md): The public Rust API follows the version-one workflow rather than the retired scaffold/auto-emitter surface.
- [Policy JSON schema](https://eb-stack.rgoswami.me/reference/policy.html.md): A policy is the input that turns a universe of parsed easyconfig candidates into one selection.
- [Output formats](https://eb-stack.rgoswami.me/reference/formats.html.md): - schema_version :: 1. - toolchain :: The policy's target toolchain (not necessarily every package's own toolchain field, though in practice they match). - generation_label :: Optional human label, e.g. "foss-2025b"
## Topics
- [Sharding and inode admission](https://eb-stack.rgoswami.me/explanation/sharding-admission.html.md): A Jenkins build list for one node type is one file of easyconfig lines.
- [From recipe to verified package](https://eb-stack.rgoswami.me/explanation/lifecycle.html.md): The lifecycle has three claims. Treating them as one is the main source of incorrect status reports. The campaign JSON field for the third claim is binary_verified; prose calls it binary-verified. Those names, and
- [Architecture](https://eb-stack.rgoswami.me/explanation/architecture.html.md): eb-stack separates package intent, dependency selection, recipe emission, and empirical build evidence.
- [The optimization model](https://eb-stack.rgoswami.me/explanation/optimization-model.html.md): eb-stack uses resolvo, a conflict-driven clause learning (CDCL) Boolean satisfiability (SAT) solver, as its feasibility core.
- [The parser approach](https://eb-stack.rgoswami.me/explanation/parser-approach.html.md): An EasyBuild easyconfig (*.eb) is, syntactically, a Python source file.
- [Reproduction fidelity and limitations](https://eb-stack.rgoswami.me/explanation/fidelity.html.md): eb-stack separates deterministic package planning from empirical build evidence.
- [From one easystack line to a build set](https://eb-stack.rgoswami.me/explanation/pr-overlap.html.md): eb-stack pr-overlap lists the modules a pull request would build, starting from the easystack lines it adds.
- [What an in-place patch forces a rebuild of](https://eb-stack.rgoswami.me/explanation/rebuild-set.html.md): The patch keeps the easyconfig filename and the version.
- [Dependency closure](https://eb-stack.rgoswami.me/explanation/sbom-blast-radius.html.md): A dependency closure lists every module one change reaches.
## Skills
- [eb-stack-annual-bump](https://github.com/stackhands/eb-stack/blob/main/skills/annual-bump/SKILL.md): Retarget an existing EasyBuild easyconfig to a new toolchain or application version using a canonical EasyBuild-origin manifest, CycloneDX software bill of materials (SBOM), Resolvo dependency lock, stack-policy
- [eb-stack-easyblock-fix](https://github.com/stackhands/eb-stack/blob/main/skills/easyblock-fix/SKILL.md): Fix an EasyBuild easyblock (a Python module under easybuild/easyblocks/) from an issue report, prove the fix with the commands EasyBuild generates and with a build where builds are allowed, and describe it hunk by
- [eb-stack-easybuild-dos-donts](https://github.com/stackhands/eb-stack/blob/main/skills/easybuild-dos-donts/SKILL.md): Do/don't list for EasyBuild easyconfigs and contributions. Distilled from rejected PR #26435, accepted rework #26480, QMCPACK #26437, merged review threads on string formatting and templates (#25561, #23349, #23528,
- [eb-stack-eessi-extend](https://github.com/stackhands/eb-stack/blob/main/skills/eessi-extend/SKILL.md): Test easyconfigs inside the EESSI build environment with EESSI-extend, and contribute them to the EESSI/software-layer easystacks. Separate from the EasyBuild easyconfigs contribution path. Use after an easyconfig
- [eb-stack-golden-replay](https://github.com/stackhands/eb-stack/blob/main/skills/golden-replay/SKILL.md): Regenerate the SeisSol 1.3.2 foss-2025a overlay unattended. Use after the package-bump packset pin, or to check that a tool-repair still emits the overlay.
- [eb-stack-mcp](https://github.com/stackhands/eb-stack/blob/main/skills/mcp/SKILL.md): Serve the eb-stack commands over stdio as a Model Context Protocol server. Use when a client should call inspect, plan, bump, stack SBOM, or pr-overlap without parsing the CLI. The server reads one JSON-RPC object
- [eb-stack-new-package](https://github.com/stackhands/eb-stack/blob/main/skills/new-package/SKILL.md): Convert a conda-forge or Spack recipe into a canonical package manifest, CycloneDX SBOM, Resolvo profile locks, separate EasyBuild easyconfigs for product variants, and a remotely built and verified campaign. Use for
- [eb-stack-package-bump](https://github.com/stackhands/eb-stack/blob/main/skills/package-bump/SKILL.md): Retarget an existing EasyBuild recipe onto another toolchain and write the same bundle as package plan. Use for a version or toolchain bump of a recipe the tree already has. A bump can establish resolves and no later
- [eb-stack-package-inspect](https://github.com/stackhands/eb-stack/blob/main/skills/package-inspect/SKILL.md): Parse a conda-forge, Spack, PyPI, CRAN, Cargo, LuaRocks, or Raku recipe into package.plan.json and a planned CycloneDX SBOM. Use before solving or emitting EasyBuild recipes. Inspection establishes no claim-ladder rung.
- [eb-stack-package-plan](https://github.com/stackhands/eb-stack/blob/main/skills/package-plan/SKILL.md): Resolve a foreign recipe with Resolvo and emit the manifest, planned CycloneDX SBOM, profile lock, and EasyBuild recipe. Use when a robot tree and a stack policy are available. A plan can establish resolves and no
- [eb-stack-pr-overlap](https://github.com/stackhands/eb-stack/blob/main/skills/pr-overlap/SKILL.md): Report modules that more than one open pull request would build. Use the recorded software-layer inputs in this repository, or the same flags with other pull-request JSON. Nothing from a pull request is executed.
- [eb-stack-site-consume](https://github.com/stackhands/eb-stack/blob/main/skills/site-consume/SKILL.md): Get an easyconfig built at a site without forking it into the site's own repository, by keeping the recipe upstream and consuming it with --from-pr or --from-commit, checking the target generation is actually
- [eb-stack-stack-sbom](https://github.com/stackhands/eb-stack/blob/main/skills/stack-sbom/SKILL.md): Write a CycloneDX SBOM for a solved EasyBuild stack. Use after stack solve, or pass --sbom-out on the solve. The SBOM reads dependency edges and checksums from the easyconfigs the lock names.
- [eb-stack-tool-repair](https://github.com/stackhands/eb-stack/blob/main/skills/tool-repair/SKILL.md): Treat eb-stack output as a draft, catch where the emitter is wrong rather than working around it by hand, and close the loop by fixing eb-stack with a regression test, rebuilding on the remote builder, regenerating,
- [eb-stack-upstream-pr](https://github.com/stackhands/eb-stack/blob/main/skills/upstream-pr/SKILL.md): Shape eb-stack output into an easybuild-easyconfigs PR that maintainers accept. Use when drafting, reviewing, or repairing an upstream EasyBuild contribution, when a PR gets maintainer pushback, before handing
- [eb-stack-verify-recipe](https://github.com/stackhands/eb-stack/blob/main/skills/verify-recipe/SKILL.md): Prove an emitted or edited easyconfig is right before spending a build on it, by checking every claim against the real artifact: source checksum recomputed from the download, every patch dry-run against the unpacked
## Project
- [README](https://github.com/stackhands/eb-stack/blob/main/README.md): Install, the claim ladder, the skills, and the Model Context Protocol server.
- [Contributing](https://github.com/stackhands/eb-stack/blob/main/CONTRIBUTING.md): Contribution guidelines and validation commands.
- [MCP server manifest](https://github.com/stackhands/eb-stack/blob/main/server.json): Registry entry for the eb-stack Model Context Protocol server.
## Optional
- [Contributing](https://eb-stack.rgoswami.me/contributing.html.md): This page mirrors the repository CONTRIBUTING.md for the documentation site.
- [Changelog](https://eb-stack.rgoswami.me/changelog.html.md): Cargo, CITATION, and Sphinx report 0.7.4.