[rushd][WS0] Upstream engine prerequisites (in rush-lib)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- build-system, tooling
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 6.5k
- Forks
- 708
- Merge medio
- 5 d 7 h
- PR fusionados (30 d)
- 44
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/rushstack
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Todos los issues de microsoft/rushstack
Issues similares
-
S: triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
snapshot-labs/stamp#666 ·
-
fix(api): prevent leaderboard SSE heartbeat from starting after disconnect during initial load Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
GauravKarakoti/SecureFlow#1070 · 1 comentario ·
-
feature:Languages/Translations good first issue ready Web
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
digitalfabrik/integreat-app#4394 ·