Repository navigation
docs(cli): give stack oom a usage synopsis - #19
Merged
Merged
Conversation
mcp.org named the command groups and left each tool name to tools/list. eb_stack_shadow was missing from the CLI reference. The README left out the stack report tools and package latest. The manual now names every CLI command's tool and the recipe and easyblock tools. A test fails when a subcommand's tool is absent from that page.
`stack order` walked every dependency the roots pin, including modules already on the machine. `--installed` now stops that walk at each listed module and leaves that module and its own dependencies out of the order. `--filter-deps` still drops dependencies first, and the modules that remain follow the synthetic GCC-family hierarchy.
A single `--arch` was the only probe the suite locked. Two flags were free to consult the third default family again: a wheel neither named family can fetch would come back `arch-missing` when that third family can fetch it, and `unreachable` only for one `--arch`. The new test probes x86_64 with aarch64, and aarch64 with riscv64, on the Kaleido fixture. The first pair reports the aarch64 wheel as `arch-missing` and does not mention riscv64. The second reports both wheels as `unreachable`. Flag order, a CPU target, and a family named twice stay on that same set. `eb_stack_arch` returns the same lines. The how-to quotes the pair. Three texts now say that two names are compared only with each other: the command reference, the `--probe-sources` help, and the tool description.
fetch-prs.sh handed the open pull request list and the changed-file list to one `gh api --paginate` call. GitHub answers 422 at its 3000-file cap, and the file call then exits non-zero. The scripts kept the names already printed and did not record that the list was cut. Nothing in the tests used more than 102 open pull requests, so a walk that stopped at 500 still passed. Both scripts now request each page of 100. The open list runs until a short page. A changed-file list that stops at 3000 keeps the pull request and sets file_list_truncated, which the record notes as truncated at GitHub's limit. The page size, the file cap, and both page limits are named variables at the top of each script.
The command map listed `stack gap` twice and folded claim and resolve into one `campaign finding` row. The `stack oom` section described every flag in prose, and the group synopsis omitted `--hooks`, `--parallel`, `--max-parallel`, and the `--mib-per-job` alias. `stack oom` now has one usage block with every flag. A single `stack gap` row names the route and the tab-separated values (TSV) file, and `campaign finding claim` and `campaign finding resolve` each get their own row.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CLI reference synopsis
What and why
docs/orgmode/reference/cli.orgdescribed everystack oomflag in prose.The usage block in the stack-command synopsis stopped at
--job-memoryand did not name--hooks,--parallel,--max-parallel, or the--mib-per-jobalias.The
stack oomsection had a worked example and no usage block.Outside the
stack oomsection, the command map listedstack gaptwice, once as a classification and once as a per-route tab-separated values (TSV) file.campaign finding claimandcampaign finding resolveshared onecampaign finding ...row.stack oomnow has one usage block, in the stack synopsis and at the start of its section.The command map has one
stack gaprow, and eachcampaign findingsubcommand has its own row.llms-full.txtfollows the Org manual, andtests/cli_reference.rslocks the map and the usage block.Before
After
The documented
stack oomexample keeps its output.The binary prints the libxc warning and
oom=1 fits=1 builds=5 nodes=2, and exits 0:Tests
cargo +stable fmt --all --checkexited 0.cargo +stable clippy --locked --all-targets -- -D warningsexited 0.cargo +stable test --locked --all-targetsexited 0, with 93 suites, 1504 passed, 0 failed, 10 ignored.cargo +stable package --lockedexited 0.uvx prek run -aexited 0.pixi run -e docs mkrst,scripts/gen-rust-api.sh,scripts/sphinx-build-docs.sh, andscripts/check-doc-links.shexited 0, and lychee 0.24.2 reported 0 errors.python3 scripts/gen-llms-txt.py --checkexited 0.Repro
cargo +stable test --locked --test cli_reference -- --exact the_command_map_and_oom_synopsis_match_the_cli cargo +stable build --locked ./target/debug/eb-stack stack oom \ --arch x86_64/amd/zen4 \ --easystack tests/oom_profile_fixtures/easystacks/pr1772-eessi-2026.06-eb-5.4.0-2026.1.ymlNote
Medium Risk
Medium risk from changes to dependency-order graph walking (
--installedleaves) and arch source-probe classification; fetch script pagination affects pr-overlap inputs but is read-only against GitHub.Overview
Adds
stack order --installed(andeb_stack_orderinstalled) so build orders treat site modules as leaves: listed modules and their already-installed dependency subtrees are omitted,--filter-depsstill runs first, stdout reportsinstalled=N, and ordering uses the same GCC-family hierarchy as before. Core logic lives in newbuild_order_against_installed/ graph helpers inbuild_order.rs, wired throughworkflows::stack_orderand module inventory parsing shared withstack gap.Both
examples/*/fetch-prs.shscripts now page open PRs and changed files 100 at a time (no implicit stop at 500 open PRs), handle GitHub’s 3000-file cap by keeping the PR JSON withfile_list_truncated, and add regression tests for >500 PRs and capped file lists.stack arch --probe-sourceswith two--archflags compares only those families when classifying sources asarch-missingvsunreachable. Documentation and tests cover the two-arch case;llms-full.txt, README, and CHANGELOG are updated alongside.CLI/MCP reference work: deduplicated
stack gapin the command map, splitcampaign finding claim/resolverows, added a fullstack oomusage synopsis (including--hooks,--parallel,--mib-per-job), expandedmcp.orgwith a 51-tool command↔tool table, and added tests thatmcp.organdtools/liststay aligned.Reviewed by Cursor Bugbot for commit 114a869. Bugbot is set up for automated code reviews on this repo. Configure here.