[rushd][WS5] Rush 6 cutover: testing, observability & migration
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- node.js, typescript
- Domain
- build-system, cli, documentation, observability, release, testing
Research direction
Start by reviewing dependencies #5895–#5899 and #5858 phases 1–6, then trace the rush/rushx entry points and the daemon commands described here. Run the transparency, lifecycle, benchmark, logging, and documentation checks, including rush daemon logs --follow, rush change --verify, and the docs build. Done means all cutover gates pass and the daemon becomes the default with the documented in-process fallback and migration path.
Written by the indexing model from the issue text.
Description
Prove transparency and lifecycle correctness, then execute the Rush 6 cutover. First deliver the I/O and exit-code transparency matrix, concurrency/lifecycle integration coverage, warm-path benchmarks, and daemon logging/diagnostics — the bar that gates cutover-readiness. Then ship the plugin migration guide + @beta changelog, an optional compat shim, the version-policy/packaging flip to 6.0.0, the absorption of the CLI client into @microsoft/rush with the bin default flipped to the daemon (permanent in-process fallback), the phased-handler split, and user docs / rollout comms. Ships in the same major as #5858 phase 6.
Depends on: all above (#5895–#5899); #5858 phases 1–6
Scope
- Transparency matrix. Daemon vs in-process: stdout/stderr parity, redirection/piping, exit codes, TTY vs non-TTY, color/width, Ctrl+C, stdin, and cwd/env-override correctness.
- Lifecycle/concurrency integration tests. Auto-start races, queue-and-wait, shared-build merging, self-restart/handoff, version-mismatch restart, idle shutdown, and crash recovery (races made deterministic via hooks).
- Warm-path benchmarks. Assert a no-op
rush buildcollapses to sub-100ms once warm; track daemon RSS under each warm-set policy. - Logging & diagnostics. A structured
daemon.log,rush daemon logs --follow, and a debug/--verbosemode. - Cutover gate. The transparency, integration, and benchmark suites gate cutover-readiness — the migration and packaging items below proceed only once they are green.
- Plugin migration guide + @beta changelog. Hook renames/relocations, runner
lastState, and the process-identity break (process.cwd/env/argv/isTTY/exitnow reflect the daemon, not the client). - Optional compat shim. Re-expose a few removed hooks (
waitingForChanges→onIdle,onOperationStatusChanged←onExecutionStatesUpdated) so unmigrated plugins keep working during the transition. - Version-policy + packaging cutover. Add the new daemon packages (daemon, client, renderer, protocol, transport) to the rush lockstep policy and bump
mainProjectto6.0.0, coordinated with the Reporter Overhaul's "daemon-aligned major default flip" (#5858 phase 6) as the same release. - Flip the bin default. Absorb
@rushstack/rush-cli-clientinto@microsoft/rushand repointrush/rushxfrom in-process execution to the daemon client, keeping a permanent in-process fallback (--no-daemon/RUSH_DAEMON=0); retire (or thin to a re-export) the CLI-client package. - Phased-handler split. The client-side
PhasedScriptActiondegrades to parse→forward→stream→exit while the daemon owns graph/iteration/watch;--watchbecomes "attach to the live watched graph". - User docs + rollout comms. The daemon model, the
rush daemoncommands, CI guidance, and the Rush 5→6 migration path.
Acceptance criteria
- Every transparency-matrix cell asserts daemon output/behavior matches in-process, with actionable diagnostics on failure (which cell, expected vs actual).
- Each lifecycle/concurrency scenario has a deterministic integration test (races made deterministic via hooks).
- A warm no-op
rush buildmeets the sub-100ms budget (a regression fails the gate) and daemon RSS is recorded per warm-set policy and tracked over time in CI. - Lifecycle events and per-request correlation ids are written to a structured
daemon.log;rush daemon logs --followtails it and--verbose/debug increases detail. - The transparency, integration, and benchmark suites run in CI and gate cutover-readiness (the migration/packaging items below merge only once they are green).
- The migration guide documents each hook rename/relocation (before/after) and the process-identity break with recommended patterns, and every breaking change (the WS0 engine work and the cutover items below) links to it; reviewed by a plugin owner.
- An unmigrated plugin using the shimmed hook names runs unchanged when the optional, clearly-deprecated (with a removal target) shim is enabled.
- The new daemon packages are on the rush lockstep policy,
mainProjectis6.0.0, released in the same major as #5858 phase 6, with the cutover-readiness gates above green andrush change --verifypassing. -
rush/rushxdefault to the daemon client while--no-daemon/RUSH_DAEMON=0still run fully in-process; the transparency matrix above passes on the flipped bins; the standalone CLI-client package is retired or reduced to a re-export. - On the client,
rush build/rush startonly parse args, forward, stream, and exit (the daemon owns graph/iteration/watch), and--watchattaches to the daemon's live watched graph and reflects headless invalidations. - User-facing docs cover the daemon model,
rush daemoncommands, CI guidance, and the 5→6 migration path, are linked from the release notes and reviewed, and docs build green in CI.
Part of #5894.
- Dominant language
- TypeScript
- Stars
- 6.5k
- Forks
- 708
- Avg merge
- 5d 19h
- Merged PRs (30d)
- 48
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/rushstack
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
All issues in microsoft/rushstack
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vicharanashala/fln#563 ·