chore(ui): rollup of UI test conventions, say()/PS4 traces, print(width=Inf), and just ui-publish#166
Merged
Conversation
Each main*.sh script's section headers now have a preceding blank-line echo so the output blocks are visually separated when running with set -x. No behaviour change.
Dirs created within a single script run now share a 3-char random suffix so the relationship between them is visible at a glance: dvs_repo_cli_fVY dvs_repo_rpkg_fVY dvs_storage_cli_fVY dvs_storage_rpkg_fVY Implementation: mktemp -d the first dir to capture a unique suffix, then mkdir the rest using the same tail. main_progress.sh has two scenarios → two suffixes (one per scenario). main_parallel.sh has one suffix shared across the fixture, the CLI pair, and the four R variants; the R variants get a `_R<n>_` infix to stay distinct while keeping the same trailing run-suffix. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds the same `printf 'Cleanup: bash %s/cleanup.sh\n' "$SCRIPT_DIR"` line that main_progress.sh already had to main.sh, main_parallel.sh, main_recursive.sh, and main_status.sh — so every demo script reminds the user how to remove the temp dvs_repo_*/dvs_storage_* dirs it created. main.sh's dead commented-out cleanup hint is replaced with the real call. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Same NOTE echo (added to main_recursive.sh in the prior commit) is now at the top of main.sh, main_parallel.sh, main_progress.sh, and main_status.sh — right after the trap line, before SCRIPT_DIR. Setup preamble is now identical across all five demo scripts. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ecipes - ui/helpers.sh: add `mkrandfile` (single-file urandom helper that hides the head -c trace under set -x), set PS4='> ' as the xtrace prefix, and add a `say` helper that echoes without leaving an xtrace line for the echo itself (used for blank-line separators and "=== ===" headers). - ui/main_status.sh: replace bare `echo` and `echo "=== ... ==="` with `say`, and pipe each tibble-returning R call to `|> print(width = Inf)`. - ui/main.sh, ui/main_parallel.sh: pipe tibble-returning R calls to `|> print(width = Inf)` for the same reason. - justfile: add `ui-run`, `ui-render`, `ui-publish-only`, and a combined `ui-publish` recipe that runs each ui/main*.sh, wraps the log into ui/output/ui-<NAME>.html, and publishes to the alx project recorded in .alx/config.yaml. Names are driven by `ui_names`.
1 task
CGMossa
added a commit
that referenced
this pull request
May 4, 2026
ui/main_recursive.sh lives only on the unmerged feat/get-recursive branch. PR #166 added the name to ui_names without the script, causing just ui-publish to fail on the recursive entry. Restore when feat/get-recursive merges. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.
Summary
Cross-cutting UI test improvements pulled out of #154 so that PR can stay focused on the get-recursive feature. Five commits:
=== ===headers acrossmain_status.sh,main_progress.sh,main_parallel.sh,main.sh.main*.sh.main*.sh.just install-allreminder echo at the top of everymain*.sh.PS4='> ',say(),print(width = Inf), andjust ui-publishrecipes:ui/helpers.shaddsmkrandfile(hideshead -cfrom set -x),PS4='> 'as the xtrace prefix, andsayfor echoes that shouldn't leave a+ echo ...trace line.ui/main_status.shswaps bareecho/echo "=== ... ==="forsay, and pipes tibble-returning R calls to|> print(width = Inf)for full-width log output.ui/main.sh,ui/main_parallel.shget the sameprint(width = Inf)change.justfileaddsui-run,ui-render,ui-publish-only, andui-publish— runs eachui/main*.sh, wraps the log intoui/output/ui-<NAME>.html, publishes to alx project from.alx/config.yaml. Names driven byui_names.Notes:
main_recursive.sh(and its--recursivedemo content) is intentionally NOT touched here — it ships with feat: add --recursive to dvs get (SUPERSEDED — split into #203 + #204 + #205) #154.just ui-publishdepends on.alx/config.yaml, which lands in chore: track .alx/ project config and exclude .alexandria-cli from workspace #165.Test plan
bash -nclean on all touchedui/main*.shjust --listenumerates the newui-*recipesjust ui-publishwas used to regenerate and publish all five HTML artifacts to alx during this sessionui/output/*.html— visual verification🤖 Generated with Claude Code