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]

Reply via email to