You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f647dbf
Browse filesBrowse the repository at this point in the historyBrowse files
`stack known-failures` gains a `--strict` flag.
The Model Context Protocol (MCP) tool `eb_stack_known_failures` gains a matching `strict: true` property.
With the flag, the command prints the same report.
It then exits 1 when a warning remains.
A pre-bot script or continuous integration (CI) job can now fail on a known failure that has no remedy yet.
In strict mode, the MCP tool returns a tool error whose text lists those warnings.
Remedied hits never count.
A plan with every hit remedied exits 0.
Without `--strict`, the behavior and output stay byte-for-byte the same.
A new helper, `KnownFailuresReport::strict_error`, builds one line per remaining warning.
Each line names the easyconfig and the architecture.
The command-line and MCP layers make the strict decision with that helper.
`run_known_failures` and its stdout stay unchanged.
The command-line reference, the arch-known-failures how-to, the eessi-extend skill and the changelog document the flag.
`llms-full.txt` now matches the docs again.
Copy file name to clipboardExpand all lines: docs/orgmode/reference/cli.org
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ are deterministic bundle artifacts.
15
15
| 1 | The work was attempted and failed: a missing or unreadable file, a document that does not parse, a check that found errors, a network fetch that failed, a doctor probe, or a campaign whose build failed |
16
16
| 2 | The command line was rejected before that work: a missing or unknown flag (clap), or a flag value or combination the command does not accept |
17
17
18
-
A rejected value names the flag and the value. A missing file names the flag and the path. Status 2 is the same status clap already uses. A recipe that fails ~recipe lint~ or ~recipe check~ is status 1: the files were read and the check failed. ~stack from-commit~ is status 1 when any pin is ~released~, and status 0 when every pin is ~newer~ or ~unknown~ or the files name no pin. A file name with no ~eb-X.Y.Z~, and no ~--easybuild-version~, is status 2. ~stack arch~ is status 1 when an entry is unsupported or flagged, or when ~--probe-sources~ reports ~unreachable~ or ~arch-missing~ sources. ~stack files~ is status 1 when a patch or an easyconfig is missing, and status 0 when the only lines are ~no_url~ or ~unchecked~. ~stack generation~ is status 1 on any finding, and status 2 when an easystack path names no EESSI version and ~--eessi-version~ is absent. ~stack known-failures~ is status 0 when it prints warnings: they are advice for the pull request, not a refusal. ~stack oom~ is status 0 when it warns: the warnings are advice, not a failed check. ~stack bot-classify~ is status 0 for every class, and status 2 when a path is a directory. ~stack batch~ is status 1 when the plan includes, or depends on, an entry the architecture cannot build.
18
+
A rejected value names the flag and the value. A missing file names the flag and the path. Status 2 is the same status clap already uses. A recipe that fails ~recipe lint~ or ~recipe check~ is status 1: the files were read and the check failed. ~stack from-commit~ is status 1 when any pin is ~released~, and status 0 when every pin is ~newer~ or ~unknown~ or the files name no pin. A file name with no ~eb-X.Y.Z~, and no ~--easybuild-version~, is status 2. ~stack arch~ is status 1 when an entry is unsupported or flagged, or when ~--probe-sources~ reports ~unreachable~ or ~arch-missing~ sources. ~stack files~ is status 1 when a patch or an easyconfig is missing, and status 0 when the only lines are ~no_url~ or ~unchecked~. ~stack generation~ is status 1 on any finding, and status 2 when an easystack path names no EESSI version and ~--eessi-version~ is absent. ~stack known-failures~ is status 0 when it prints warnings: they are advice for the pull request, not a refusal; with ~--strict~ it is status 1 when a warning remains, and status 0 when every hit is remedied. ~stack oom~ is status 0 when it warns: the warnings are advice, not a failed check. ~stack bot-classify~ is status 0 for every class, and status 2 when a path is a directory. ~stack batch~ is status 1 when the plan includes, or depends on, an entry the architecture cannot build.
19
19
20
20
~--help~ for every command has an example and a description of every flag. A default that the command applies is printed in that help. A directory that receives several artifacts is ~--out-dir~. A single output file is ~--out~ (~--lock-out~ for the lock ~stack solve~ writes). ~--installed~, ~--easyconfigs~, ~--filter-deps~, and ~--generated-at~ use those names on every command that takes them.
21
21
@@ -840,6 +840,19 @@ easyconfig that already contains it, turns the line into one
840
840
~remedied:~ line. ~known=~ counts warnings and ~remedied=~ counts
841
841
those. The command exits 0 either way.
842
842
843
+
~--strict~ exits 1 when a warning remains after the report, so a
844
+
pre-bot script or CI job can fail on a known failure that has no remedy
845
+
in place. The stdout is the same report; the error on stderr names each
846
+
remaining warning by easyconfig and target. Remedied hits never count,
The stdout is the same report as without `--strict`; the error on stderr
3874
+
names each remaining warning by easyconfig and target, here
3875
+
`orjson-3.11.8-GCCcore-15.2.0.eb on aarch64/a64fx`. A remedied hit never
3876
+
counts, so the merged 1670 easystack above exits 0 under `--strict`.
3877
+
3860
3878
# Choosing architectures
3861
3879
3862
3880
`--arch` repeats and takes a target or a family. `--arch aarch64` meets
@@ -4302,7 +4320,7 @@ are deterministic bundle artifacts.
4302
4320
| 1 | The work was attempted and failed: a missing or unreadable file, a document that does not parse, a check that found errors, a network fetch that failed, a doctor probe, or a campaign whose build failed |
4303
4321
| 2 | The command line was rejected before that work: a missing or unknown flag (clap), or a flag value or combination the command does not accept |
4304
4322
4305
-
A rejected value names the flag and the value. A missing file names the flag and the path. Status 2 is the same status clap already uses. A recipe that fails `recipe lint` or `recipe check` is status 1: the files were read and the check failed. `stack from-commit` is status 1 when any pin is `released`, and status 0 when every pin is `newer` or `unknown` or the files name no pin. A file name with no `eb-X.Y.Z`, and no `--easybuild-version`, is status 2. `stack arch` is status 1 when an entry is unsupported or flagged, or when `--probe-sources` reports `unreachable` or `arch-missing` sources. `stack files` is status 1 when a patch or an easyconfig is missing, and status 0 when the only lines are `no_url` or `unchecked`. `stack generation` is status 1 on any finding, and status 2 when an easystack path names no EESSI version and `--eessi-version` is absent. `stack known-failures` is status 0 when it prints warnings: they are advice for the pull request, not a refusal. `stack oom` is status 0 when it warns: the warnings are advice, not a failed check. `stack bot-classify` is status 0 for every class, and status 2 when a path is a directory. `stack batch` is status 1 when the plan includes, or depends on, an entry the architecture cannot build.
4323
+
A rejected value names the flag and the value. A missing file names the flag and the path. Status 2 is the same status clap already uses. A recipe that fails `recipe lint` or `recipe check` is status 1: the files were read and the check failed. `stack from-commit` is status 1 when any pin is `released`, and status 0 when every pin is `newer` or `unknown` or the files name no pin. A file name with no `eb-X.Y.Z`, and no `--easybuild-version`, is status 2. `stack arch` is status 1 when an entry is unsupported or flagged, or when `--probe-sources` reports `unreachable` or `arch-missing` sources. `stack files` is status 1 when a patch or an easyconfig is missing, and status 0 when the only lines are `no_url` or `unchecked`. `stack generation` is status 1 on any finding, and status 2 when an easystack path names no EESSI version and `--eessi-version` is absent. `stack known-failures` is status 0 when it prints warnings: they are advice for the pull request, not a refusal; with `--strict` it is status 1 when a warning remains, and status 0 when every hit is remedied. `stack oom` is status 0 when it warns: the warnings are advice, not a failed check. `stack bot-classify` is status 0 for every class, and status 2 when a path is a directory. `stack batch` is status 1 when the plan includes, or depends on, an entry the architecture cannot build.
4306
4324
4307
4325
`--help` for every command has an example and a description of every flag. A default that the command applies is printed in that help. A directory that receives several artifacts is `--out-dir`. A single output file is `--out` (`--lock-out` for the lock `stack solve` writes). `--installed`, `--easyconfigs`, `--filter-deps`, and `--generated-at` use those names on every command that takes them.
4308
4326
@@ -5127,6 +5145,19 @@ easyconfig that already contains it, turns the line into one
5127
5145
`remedied:` line. `known`` counts warnings and `remedied`` counts
5128
5146
those. The command exits 0 either way.
5129
5147
5148
+
`--strict` exits 1 when a warning remains after the report, so a
5149
+
pre-bot script or CI job can fail on a known failure that has no remedy
5150
+
in place. The stdout is the same report; the error on stderr names each
5151
+
remaining warning by easyconfig and target. Remedied hits never count,
"Warn about known per-architecture failures a plan includes or depends on, as `stack known-failures` does. Each warning names the easyconfig, the architectures, the symptom, the established easyconfig remedy as text, and the EESSI hook that applies it. A pin or easyconfig that already carries the fix is reported as remedied. Warnings are not a tool error.",
474
+
"Warn about known per-architecture failures a plan includes or depends on, as `stack known-failures` does. Each warning names the easyconfig, the architectures, the symptom, the established easyconfig remedy as text, and the EESSI hook that applies it. A pin or easyconfig that already carries the fix is reported as remedied. Warnings are not a tool error, except with strict: true, when a remaining warning returns a tool error whose text lists the warnings.",
0 commit comments