mattcasters opened a new pull request, #9189: URL: https://github.com/apache/hop/pull/9189
## What Adds a local pipeline debugger for issue #9130. **Debug** on the pipeline toolbar starts a local session and parks every transform before the first row. A **Debug mode** badge stays in the top left of the canvas. Each hop shows `cursor at stored`. A green border means that transform is running. A blue border means it is parked. Several transforms can run at the same time. Click **Debug** again, or **Exit debug**, to leave the session. **Reset** starts it over. The **Debugger** tab lists transform copies and hops. * **Process 1** and **Process N** step the selected copies. The step keeps going while rows are still arriving. The timeout applies only when a row stops arriving. * **Run selected**, **Run to here**, **Continue**, and **Pause** run or park copies. **Follow output** selects the first output hop of the transform you click. * Hop rows stay in a cursor, including rows past the memory threshold. The **Rows** tab loads one page. Page up and down, first and last, a row count, **#** to jump to a stored row, and **Find** / **Find next** search without loading the whole hop. **Clear** stops a search and empties the find text. * A hop can pause when a matching row is written. The condition uses that hop's output fields. The pause can stop the writing transform, the whole pipeline, or the downstream transforms. Preview is unchanged. The configuration perspective has a folder for debug sessions (`debug-sessions` in `hop-config.json`). The engine can save and load a session. The debugger tab does not expose save and load yet. ## Docs `docs/hop-user-manual/modules/ROOT/pages/pipeline/run-preview-debug-pipeline.adoc` has a **Debug a pipeline** section with screenshots of a started session, a partial run, a single step, and the pause dialog. ## Tests * `CursorRowSetTest` * `DebugControllerTest` (step, several copies running, pause on the writer, pause downstream, large step not cut off by the total timeout) * `DebugSessionStoreTest` (cursor restored on a new engine, delimited import) * `HopGuiKeyHandlerTest` (spinner editing keys stay in the field) * `DebugFieldRowsTest`, `DebugFailureTextTest` * `PipelineDebugPanelTest` (uitest, metadata for the selected hop) ## Checklist - [x] New code follows the code style. Spotless ran as part of the module builds. - [x] Tests cover the cursor, stepping, pause conditions, session round-trip, and the debugger metadata table. - [x] The user manual page for run, preview, and debug includes the new debugger. - [ ] I have commented my code, particularly in hard-to-understand areas -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
