[rushd][WS0] Upstream engine prerequisites (in rush-lib)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
- Ambito
- build-system, tooling
Direzione di ricerca
Start with dependency #5378 and the committed rush-lib.api.md to understand the stateful IOperationGraph and OperationGraphHooks APIs, then review the listed in-repo plugins and the unchecked acceptance criteria. Done means per-iteration runner lifetime behavior is implemented and validated without regressions; the operation-graph library convergence and migration documentation are follow-up items.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Land the watch-mode overhaul and adapt in-repo plugins so the engine exposes a stateful, warm-able operation graph the daemon can own.
Depends on: #5378 (provides the stateful IOperationGraph)
Scope
- Merge the watch-mode overhaul (#5378). Land the stateful
IOperationGraph(setEnabledStates,scheduleIterationAsync,executeScheduledIterationAsync,invalidateOperations,abortCurrentIterationAsync,closeRunnersAsync),OperationGraphHooks(onIdle,onExecutionStatesUpdated),IPCOperationRunner, and the reworkedProjectWatcher— replacing the disposableOperationExecutionManagerwith a graph that persists across iterations. - Migrate in-repo plugins. Move
CacheableOperationPlugin,ShardedPhaseOperationPlugin,OperationResultSummarizerPlugin,ConsoleTimelinePlugin,PhasedOperationPlugin,IPCOperationRunnerPlugin,rush-serve-plugin,rush-bridge-cache-plugin, andrush-buildxl-graph-pluginonto the new hooks. - One warm full-workspace graph. Build the graph over all workspace projects with a client's selection applied as an enabled subset (
includeAllProjectsInWatchGraph) so the daemon keeps a single warm graph and scopes it per request. - Per-iteration runner lifetime. Lift the persistent-vs-one-shot choice out of static
IPCOperationRunnerPluginconstruction into a per-iteration host decision — keep hot runners resident for warm projects; tear cold ones down immediately at operation completion. - Follow-up (non-blocking). Converge rush-lib's
OperationGraphonto the standalone@rushstack/operation-graphlibrary.
Acceptance criteria
- The stateful
IOperationGraphandOperationGraphHooksare merged and exported, with the public API captured in the committedrush-lib.api.md. - All existing phased-command and watch-mode behavior is preserved; updated snapshots are intentional and reviewed.
- Every in-repo plugin compiles and passes its tests against
OperationGraphHooks(no plugin depends on a removed/renamed hook except through the optional compat shim in WS5); cache, sharding, summary, and timeline outputs are unchanged. - A full-workspace graph can be built once and an arbitrary selection enabled via
setEnabledStateswithout rebuilding; disabled projects stay resident (watchable/invalidatable) but unscheduled. - The host can choose persist vs one-shot per operation per iteration (default unchanged when unspecified); a non-persistent runner is torn down immediately at its operation's completion, before downstream operations run.
- (Follow-up, not on the critical path) rush-lib consumes
@rushstack/operation-graphwith no behavioral change. - Breaking hook renames/relocations are recorded in the WS5 migration guide + API changelog; new engine behavior ships opt-in / dead-code until cutover; unit/integration tests green in CI.
Part of #5894.
- Lingua principale
- TypeScript
- Stelle
- 6.5k
- Fork
- 708
- Merge medio
- 4g 13h
- PR unite (30g)
- 62
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/rushstack
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di microsoft/rushstack
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
bcgov/bc-wallet-mobile#4761 · 1 commento ·
-
external-issue to-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
area-deployment area-integrations triage:bot-seen
Difficoltà 2/5 Mezza giornata Idoneità per principianti 86/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100