Summary
Implement workr::RunProject() to run multiple workflow phase folders in sequence while sharing one lData object.
Proposed signature
RunProject(strPath, lData = NULL, lConfig = NULL, strPhases = NULL, bRecursive = FALSE, bReturnResult = TRUE, bKeepInputData = FALSE, strResultNames = c("Type", "ID"))
Implementation plan
- Validate strPath exists and discover phase folders.
- Resolve phase order: use strPhases when provided, otherwise sorted subdirectories.
- For each phase: load workflows via MakeWorkflowList(strPath = file.path(strPath, phase), strPackage = NULL, bRecursive = bRecursive).
- Run each phase via RunWorkflows() using current lData.
- Carry forward outputs to downstream phases and keep per-phase results.
- Return either final result or structured object with phase results and final lData; document behavior clearly.
Error handling and logging
- Fatal on missing strPath or missing requested phases.
- Warn on empty phase folder.
- Log phase start/end with workflow counts.
Tests
- Phase execution order.
- strPhases subset and custom order.
- Data handoff between phases.
- Return contract for bReturnResult and bKeepInputData.
- Empty/missing phase behavior.
Acceptance criteria
- Exported RunProject() with roxygen docs and man page.
- Unit tests pass.
- README RunProject section updated after implementation.
Summary
Implement workr::RunProject() to run multiple workflow phase folders in sequence while sharing one lData object.
Proposed signature
RunProject(strPath, lData = NULL, lConfig = NULL, strPhases = NULL, bRecursive = FALSE, bReturnResult = TRUE, bKeepInputData = FALSE, strResultNames = c("Type", "ID"))
Implementation plan
Error handling and logging
Tests
Acceptance criteria