Skip to content

test(writ): the layer-journey scenario -- self install, repo set, deploy, and the move of 2026-09-07 (#855) - #859

Merged
David-Noble-at-work merged 2 commits into
developfrom
feature/855-layer-move-scenario
Sep 8, 2026
Merged

David-Noble-at-work merged 2 commits into
developfrom
feature/855-layer-move-scenario

Conversation

@David-Noble-at-work

Copy link
Copy Markdown
Contributor

Summary

Part of #855 — Phases 1 through 4a; #855 stays open for Phase 4b, real mode. Plan:
docs/plans/feature/855-layer-move-scenario.md.

Test plan

  • make test-scenario green on Darwin arm64: every shipped step passes, five skip by issue
  • make vet-all, make lint-all, star lint go, star lint shell, Test-GuideFrontmatter.sh clean
  • the scenario job green on all six legs with the same skip-list on each — this PR's evidence

https://claude.ai/code/session_01BTCnSyUbYFFUKMD3PuF1vt

David Noble added 2 commits September 7, 2026 21:53
…loy, and the move of 2026-09-07 (#855)

Part of #855; Phase 4b (real mode) follows. The real writ binary walks the journey a machine takes,
in a pristine sandbox: self install; repo set for base, team and personal by path and by URL, in
every combination; a bare deploy converging the implicit set; deploy thenobles on top; and then the
move noblefactor-ops#147 and personal#174 made -- the base taking Declare-BashScript, personal
renaming its project and moving its consumers out of common under the deployed links.

Every step is the ruled interface. Where the binary lacks it, the step skips by the issue that ships
it, probed from help text, and the run prints its skip-list: #791 (carrying #792 and #793), #812,
#840, #850, #851. Where the ruling is about what deploy leaves behind, the step asserts today's
behavior with the issue in its failure message: #845, #852, #853. On Darwin the whole of Part 3 by
path passes: the dangling set after the move equals exactly the links whose sources moved, the
helper flips to the base's, the old ~/local links remain as orphans and become missing in the store
after the hand cleanup -- what was measured by hand on 2026-09-07, now asserted.

Fixtures: base (Declare-BashScript and its assets from noblefactor-ops dee8e84e5, plus a
git-supporting script), team (content, no packages), personal-a; personal-b is derived in the
sandbox by applyMove so the two cannot drift. Each becomes a repository named as the real one, with
a bare remote, so #793's naming and #850's implicit projects see the real names.

The scenario job gains darwin-amd64 on macos-15-intel (ruled 2026-09-07 over the arm64 plan's
build-only stance, for the scenario jobs alone) and a GNU getopt step for the macOS legs, which
Declare-BashScript needs and BSD getopt cannot supply.

Claude-Session: https://claude.ai/code/session_01BTCnSyUbYFFUKMD3PuF1vt
…fixtures stay LF on Windows (#855)

What PR #859's first run on six legs taught. Linux: writ names a distribution by /etc/os-release's
ID alone, so common.Debian does not deploy on an Ubuntu runner. Ruled the same day (#860): the
chain follows the lineage os-release states in ID_LIKE -- what deploys to Debian deploys to Ubuntu,
what deploys to Fedora deploys to RHEL. The scenario's selector table is now that ruled chain; step
2.3b asserts the lineage members and skips by #860 until writ reads ID_LIKE. Windows: the checkout
rewrote the fixture scripts' line endings and makeSelfContained's matcher missed them; the fixture
tree pins LF with a .gitattributes, since bash runs these scripts on every platform, and the matcher
normalizes CRLF regardless. macOS, both architectures, passed on the first run, Intel included.

Claude-Session: https://claude.ai/code/session_01BTCnSyUbYFFUKMD3PuF1vt
@David-Noble-at-work
David-Noble-at-work merged commit e9d45b0 into develop Sep 8, 2026
13 checks passed
@David-Noble-at-work
David-Noble-at-work deleted the feature/855-layer-move-scenario branch September 8, 2026 05:46
David-Noble-at-work added a commit that referenced this pull request Sep 8, 2026
…Unix and sources the base's helper (#476) (#862)

Phase 3 of noblefactor-ops#147; the rule ruled 2026-09-07: code that depends on a repository's stack
lives in a directory named for it, and every bash script sources Declare-BashScript. devlore-cli is a
writ layer with a Home of its own, so its one consumer moves from scripts/ into
Home/noblefactor-ops.Unix/.local/bin, sources the sibling the merged ~/.local/bin provides (it sourced
by PATH before), carries the bare directive, and is brought to spec on the way: --help through the
shared parsing, a man page, bash and zsh completions, an Apache-2.0 header like the rest of the tree.
The Azure work it does is unchanged. The two .sh helpers in scripts/ are repository tooling and stay.

Short-term the move, longer-term the port: #861 makes it `star devlore keyvault create`, one
implementation for every platform, once command execution reaches az on Windows without a bash.

Also: #855's plan records Phases 3 and 4a proven by #859 -- six legs green, the same skip-list on each.

Claude-Session: https://claude.ai/code/session_01BTCnSyUbYFFUKMD3PuF1vt

Co-authored-by: David Noble <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant