Skip to content

Lab: faster runs, RemoteHub Lab app on main, Notes / policy / banner cases - #57

Merged
GrischaE1 merged 2 commits into
mainfrom
lab-faster-runs
Oct 20, 2026
Merged

GrischaE1 merged 2 commits into
mainfrom
lab-faster-runs

Conversation

@GrischaE1

@GrischaE1 GrischaE1 commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Faster lab runs

Replaying the runs of 16 and 19 October through the old and the new scheduler (offline, from their console.log) shows the Server VMs bound a full run: their own files plus the time Console files hold them. Reordering alone gains nothing; a third lane and the quick build check do:

Run 2 lanes 3 lanes
Full (16 Oct / 19 Oct) 8.3 h / 6.1 h 5.6 h / 4.0 h
-Quick 5.4 h / 3.4 h 3.7 h / 2.3 h
  • Scheduler (Invoke-LabTests.ps1, Select-LabNextRun): the longest files start first; a file that uses another VM (Get-LabDevice) takes a free one of any lane (RHLAB_DEVICES); a file's time limit is twice the longest it took before (at least 20 min, never above its own).
  • Start-LabRun.ps1 -Quick: device files on the W11 VMs only; files with Server-only parts say # LabQuick: every kind (S-SHARE, S-SHARE2, J-JUMP, W-SETUP2).
  • -FailFast: Pester SkipRemainingOnFailure = Block; no more files start once 4 in a row passed nothing.
  • Options reach the run through results\<run>\options.json (the queue passes only -Vm / -Tag, so the watcher needs no restart); it also records the commit, repeated in run.json.
  • Timing: each file run writes pester-<file>.xml.timing.json (minutes in the module's slow helpers, outermost call only, and the file's own time); Get-LabTimings.ps1 sums a run up – where to start making tests faster.

RemoteHub Lab app

lab\LabConsole (WPF-UI, links RemoteHub's AppChrome / AppIcon), built into one file lab\RemoteHubLab.exe (git-ignored) by build\build-lab-tool.ps1.

  • Tests as group › file › case with status pills (passed, failed, skipped, not run, pending, running), progress bar and time left, file runs, failures, output.
  • Quick build check, Fail fast, Run again when it ends, until stopped (new cases picked up when everything is selected), Changed since full run (git's changes since the last full run's commit, mapped to test files by area).
  • Always on main: it keeps its own detached worktree of origin/main (C:\rh-lab-main) and brings it up to date when it opens and before every run; it copies the newest agent build of any worktree (and the one before it) into that checkout's artifacts\, plus the git-ignored lab.local.json / lab-signing.cer from the checkout it was started from.
  • Unit tests in lab\LabConsole.Tests (catalog, change detection, run log, estimate, quick-run plan, changed areas).

Cases

  • C-NOTE-01..12 (C-NOTES.Tests.ps1) in section 10.8 next to UI-NOTE; POL-14 / POL-15 automated in POL-CLIENT; D-BAN-11 in D-MORE; case tags on D-SHELL and D-CADHIDE. New module helpers Invoke-LabInSessionJson, Invoke-LabClientSql.
  • Notes fix (separate commit): a page deleted before its section (or a section before its notebook) dropped out of Recently deleted and was purged with the parent – Deleted() / PurgeDeleted() now LEFT JOIN the parent. Found by C-NOTE-09; unit test added.

Tested

  • dotnet build RemoteHub.sln: 0 warnings; Notes unit tests 25/25; lab\LabConsole.Tests 6/6.
  • Lab scripts parse, ASCII-only, Windows PowerShell 5.1; scheduler checked against sample lab states, timing wrappers checked without a VM.
  • Not yet run in the lab: the new scheduler, -Quick / -FailFast and the C-NOTE / POL-14 / POL-15 cases after their fixes (D-BAN-11 passed in run 20261019-190129).

A page deleted before its section (or a section before its notebook) kept its own, earlier stamp but dropped out of
Recently deleted once the parent was deleted, and Delete now on the parent purged it with the parent. Deleted() and
PurgeDeleted() now join the parent with LEFT JOIN: the earlier item stays listed, restores into a live parent, and is
purged only with its own Delete now. Found by lab case C-NOTE-09.
…cases

Faster runs
- Scheduler: the longest files start first (their median in the last runs); a file that uses another VM takes a free
  one of any lane; a file's time limit is twice the longest it took before (at least 20 min). Replaying the runs of
  16 and 19 October: the Server VMs bound a full run, a third lane takes it from 8.3 to 5.6 h (6.1 to 4.0 h).
- Start-LabRun.ps1 -Quick: the build check, device files on the W11 VMs only (files marked "LabQuick: every kind" on
  every kind) - 5.4 / 3.4 h with two lanes, 3.7 / 2.3 h with three. -FailFast: a block skips its other cases after
  its first failure, no more files start once 4 in a row passed nothing. Both reach the run in options.json, which
  also records the commit.
- Each file run writes where its time went (<result>.timing.json); Get-LabTimings.ps1 sums a run up.

RemoteHub Lab (lab\LabConsole, built into lab\RemoteHubLab.exe by build\build-lab-tool.ps1)
- WPF like RemoteHub: per-case status pills, progress and time left, repeat until stopped, quick / fail fast,
  "Changed since full run" (git's changes since the last full run's commit, by area).
- Works from its own checkout of origin/main (C:\rh-lab-main), brought up to date when it opens and before every run,
  with the newest agent build of any worktree.

Cases
- C-NOTE-01..12 (C-NOTES.Tests.ps1) next to UI-NOTE in section 10.8; POL-14 and POL-15 automated (POL-CLIENT);
  D-BAN-11 (D-MORE); case tags on D-SHELL and D-CADHIDE.
@github-actions
github-actions Bot marked this pull request as draft October 20, 2026 15:45
@github-actions

Copy link
Copy Markdown

Pull requests start as drafts here. Mark this one Ready for review when it's done and all checks have passed.

@GrischaE1
GrischaE1 marked this pull request as ready for review October 20, 2026 16:05
@GrischaE1
GrischaE1 merged commit a67f12b into main Oct 20, 2026
10 checks passed
@GrischaE1
GrischaE1 deleted the lab-faster-runs branch October 20, 2026 16:05
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant