Repository navigation
test(stack): lock source probes to two named architectures - #16
Merged
Merged
Conversation
`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.
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.
stack arch --probe-sourcesand two--archvaluesWhat and why
stack arch --probe-sourcesresolves each planned easyconfig'ssource_urlsandsourceson the families--archnames, then probes those URLs.The suite locked one
--arch, and the default ofx86_64,aarch64, andriscv64when--archis absent.It did not lock two families.
That pair is the comparison that decides the class: a miss is
arch-missingwhen the other named family fetched the same source slot, andunreachablewhen neither did.A family that was not named must not enter that comparison.
The probe already used the families parsed from
--arch.What was open was a regression that passes two of them, plus the how-to, which showed one family and all three and did not quote a pair.
Before and after
On the Kaleido fixture, a local server has only
kaleido-0.2.1-manylinux1-x86_64.whl.tests/source_probe.rsandtests/doc_walkthrough.rscopy the tree, substitute that server for__BASE_URL__, and runeb-stack.--arch x86_64 --arch aarch64 --probe-sourcesexits 1 and prints:The text does not contain
riscv64.--arch aarch64 --arch x86_64prints the same text.--arch x86_64/amd/zen4 --arch aarch64/neoverse_v1prints the same text.eb_stack_archwith"arch": ["x86_64", "aarch64"]returns that finding line andisError: true.--arch aarch64 --arch riscv64 --probe-sourcesexits 1.Both wheels are
unreachable, the count line issource_unreachable=2 source_arch_missing=0, and the text does not containx86_64.eb_stack_archreturns those two lines.--arch aarch64 --arch aarch64/neoverse_v1matches--arch aarch64alone: oneunreachableline andsource_unreachable=1.docs/orgmode/howto/arch-unsupported.orgnow quotes thex86_64plusaarch64run.The command reference, the
--probe-sourceshelp, and theeb_stack_archdescription say two names are compared only with each other.llms-full.txtmatches that manual.Tests
cargo +stable fmt --all --checkexited 0.cargo +stable clippy --locked --all-targets -- -D warningsexited 0 (Finished dev profile).cargo +stable test --locked --all-targets -- --test-threads=8exited 0, with 93 suites, 1504 passed, 0 failed, 10 ignored.cargo +stable package --lockedexited 0, packaged 1532 files, 12.6MiB (5.6MiB compressed), and finished the verify compile.uvx prek run -aexited 0.Trailing whitespace, end of file, YAML, Tom's Obvious Minimal Language (TOML), merge conflicts, large files, private keys, and codespell passed.
stack_arch_probe_with_two_arches_compares_only_that_pair,the_source_probe_howto_quotes_the_output_it_prints, andllms_txt_matches_the_org_manualpassed.Toolchain:
cargo +stable, rustc 1.99.1.Repro
The how-to command, on a copy of the fixture whose
__BASE_URL__is that server:Note
Medium Risk
Changes core dependency-order graph construction for a new CLI/MCP path; incorrect installed matching could omit required builds, while probe changes are mostly documented regression tests.
Overview
Adds
stack order --installedso build orders skip modules already on the site (module list or Lmod tree, same inventory asstack gap --installed) and do not walk their dependencies.--filter-depsstill runs first; stdout printsinstalled=N;eb_stack_orderexposes the sameinstalledinput and count.The build-order graph walk is refactored through
build_order_against_installed/graph_from_keys_against_installed, with unit tests for installed leaves and GCC-family resolution.Separately, docs, CHANGELOG, and tests lock
stack arch --probe-sourceswhen two--archfamilies are named: misses arearch-missingonly if the other probed family fetched that source slot, otherwiseunreachable, without consulting families left off the command.Reviewed by Cursor Bugbot for commit 7e8f8d3. Bugbot is set up for automated code reviews on this repo. Configure here.