You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/advanced/cli-reference.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ rushti --tasks FILE [options] # 'run' is the default command
55
55
|`--retries`|`-r`| INT |`0`| Retry count for failed TI executions. Uses exponential backoff. |
56
56
|`--result`|`-o`| PATH |*(empty)*| Output CSV path for execution summary. Omit to skip CSV creation. |
57
57
|`--settings`|`-s`| PATH | auto | Path to `settings.ini`. Auto-discovered if omitted. |
58
-
|`--mode`|`-m`| CHOICE |auto|**Deprecated.**Mode is auto-detected from file content. Ignored. |
58
+
|`--mode`|`-m`| CHOICE |`norm`|Execution mode: `norm` or `opt`. **Ignored for file sources**(`--tasks`), where mode is auto-detected from file content. **Required for cube reads** (`--tm1-instance`) when the workflow uses explicit `predecessors` — pass `--mode opt`, otherwise the cube is read in `norm` mode and predecessors are dropped. See [TM1 integration → Choosing the mode for cube reads](../features/tm1-integration.md#choosing-the-mode-for-cube-reads). |
59
59
|`--exclusive`|`-x`| FLAG |`false`| Enable exclusive mode. Waits for other RushTI sessions to finish. |
60
60
|`--force`|`-f`| FLAG |`false`| Bypass exclusive mode checks and run immediately. |
61
61
|`--optimize`|| CHOICE |*(none)*| Enable task optimization with a scheduling algorithm: `longest_first` or `shortest_first`. |
Copy file name to clipboardExpand all lines: docs/advanced/migration-guide.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,16 +62,19 @@ Logging is configured separately via `config/logging_config.ini` (Python's stand
62
62
63
63
All settings have sensible defaults. You do not need to create a `settings.ini` to use v2.0 -- it works with built-in defaults.
64
64
65
-
### --mode Flag: Deprecated
65
+
### --mode Flag: Auto-Detected for Files, Still Required for Cube Reads
66
66
67
67
In v1.x, the `--mode` flag (`norm` or `opt`) controlled whether RushTI used level-based (wait) or dependency-based execution.
68
68
69
-
In v2.0, mode is **auto-detected** from file content:
69
+
In v2.0, mode is **auto-detected from file content** for file sources (`--tasks`):
70
70
71
71
- JSON files always use DAG execution (optimized mode).
72
72
- TXT files use `norm` mode if they contain `wait` keywords, or `opt` mode if tasks have `id` and `predecessors` fields.
73
73
74
-
The `--mode` flag is accepted for backward compatibility but ignored.
74
+
For file sources the `--mode` flag is therefore accepted for backward compatibility but ignored.
75
+
76
+
!!! warning "Cube reads still need `--mode`"
77
+
Auto-detection does **not** apply when reading from a TM1 cube (`--tm1-instance`). The cube stores every workflow with the same measures, so RushTI cannot tell a wait-based workflow from a predecessor-based one. Cube reads default to `norm` (wait-based) and **ignore the `predecessors` measure** unless you pass `--mode opt`. See [TM1 integration → Choosing the mode for cube reads](../features/tm1-integration.md#choosing-the-mode-for-cube-reads).
75
78
76
79
### Task File: id and predecessors in TXT Files
77
80
@@ -413,9 +416,9 @@ rushti run --tasks tasks.json --log-level DEBUG
413
416
414
417
Check that `max_workers` is set in the correct place with the correct spelling.
415
418
416
-
### Issue: Mode Deprecation Warning
419
+
### Issue: Predecessors Missing When Running from a Cube
417
420
418
-
If you see a deprecation warning about `--mode`, it is safe to ignore. Remove`--mode` from your scripts when convenient -- mode detection is automatic.
421
+
If you run an optimized workflow from the cube (`--tm1-instance`) and the resulting plan ignores your `predecessors`, you are running in the default `norm` mode. Add`--mode opt` to the command (or set `mode = opt` in `settings.ini`). Mode auto-detection applies to file sources only — see [TM1 integration → Choosing the mode for cube reads](../features/tm1-integration.md#choosing-the-mode-for-cube-reads). For `--tasks` file sources you can safely omit `--mode` entirely.
Copy file name to clipboardExpand all lines: docs/advanced/settings-reference.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,9 +46,9 @@ Common execution settings that control basic RushTI behavior.
46
46
|`max_workers`| int |`4`| Maximum number of parallel workers. Valid range: 1--100. Recommended: start at 4, increase based on TM1 server capacity. |
47
47
|`retries`| int |`0`| Number of retry attempts for failed TI process executions. Valid range: 0--10. Retries use exponential backoff (1s, 2s, 4s, ...). |
48
48
|`result_file`| str |`""` (empty) | CSV output path for execution summary. Empty string means no CSV is created. |
49
-
|`mode`| str |`norm`|**Deprecated.**Execution mode is now auto-detected from file content. JSON files always use DAG execution; TXT files use the mode indicated by their content structure. Kept for backward compatibility only. |
49
+
|`mode`| str |`norm`|Default execution mode (`norm` or `opt`) for **cube reads**(`--tm1-instance`). A cube read cannot auto-detect its mode, so this value (or the `--mode` CLI override) decides whether the `predecessors` measure is honoured (`opt`) or the `wait` measure drives sequencing (`norm`). **Ignored for file sources**, where the mode is auto-detected from file content. See [Choosing the mode for cube reads](../features/tm1-integration.md#choosing-the-mode-for-cube-reads). |
RushTI reads the task definitions from the cube, builds the execution plan, and runs them — exactly like running from a file.
71
71
72
+
!!! warning "Optimized workflows need `--mode opt`"
73
+
When you run from the cube, RushTI **cannot auto-detect** whether the workflow is wait-based (`norm`) or predecessor-based (`opt`) — the cube row layout is identical either way. It therefore defaults to `norm`, which uses the `wait` measure for sequencing and **ignores the `predecessors` measure entirely**.
74
+
75
+
To run an optimized workflow (one that defines explicit `predecessors`), you must pass `--mode opt`:
76
+
77
+
```bash
78
+
rushti run --tm1-instance tm1srv01 --workflow Sample_Optimal_Mode --mode opt --max-workers 4
79
+
```
80
+
81
+
Without `--mode opt`, the predecessors silently disappear from the execution plan (RushTI logs a `predecessors ignored in norm mode` warning, but the run still proceeds). See [Choosing the mode for cube reads](#choosing-the-mode-for-cube-reads) below.
82
+
72
83
### View Results in the Cube
73
84
74
85
Once the run completes, RushTI writes the results back to the same cube under a timestamped `rushti_run_id` element. Open the `rushti_results` subset to see execution data:
rushti run --tm1-instance tm1srv01 --workflow Sample_Stage_Mode --max-workers 4
182
193
183
-
# Run the optimized sample (with explicit dependencies)
184
-
rushti run --tm1-instance tm1srv01 --workflow Sample_Optimal_Mode --max-workers 4
194
+
# Run the optimized sample (with explicit dependencies) — note --mode opt
195
+
rushti run --tm1-instance tm1srv01 --workflow Sample_Optimal_Mode --mode opt --max-workers 4
185
196
```
186
197
198
+
`Sample_Optimal_Mode` defines its task ordering through the `predecessors` measure, so it **requires `--mode opt`**. Run it without that flag and RushTI reads the cube in `norm` mode, drops the predecessors, and falls back to wait-based sequencing — the run "works" but does not respect the dependency graph you defined.
199
+
187
200
Check the `rushti` cube afterward to confirm that results were written.
188
201
189
202
---
190
203
204
+
## Choosing the Mode for Cube Reads
205
+
206
+
Unlike file sources — where the mode is auto-detected from the file's structure — a cube read **cannot infer the mode**. Every workflow occupies the same set of measures in the `rushti` cube (`wait`, `predecessors`, `instance`, `process`, …), so there is no structural signal that distinguishes a wait-based workflow from a predecessor-based one. You tell RushTI which one to use with `--mode`:
|`norm` (default) |`wait` markers create sequential groups |**Used**|**Ignored** (logs a warning if populated) |
211
+
|`opt`| Explicit `predecessors` form a DAG | Ignored |**Used**|
212
+
213
+
```bash
214
+
# Wait-based (norm) workflow — the default, no flag needed
215
+
rushti run --tm1-instance tm1srv01 --workflow Sample_Normal_Mode --max-workers 4
216
+
217
+
# Predecessor-based (opt) workflow — --mode opt is required
218
+
rushti run --tm1-instance tm1srv01 --workflow Sample_Optimal_Mode --mode opt --max-workers 4
219
+
```
220
+
221
+
!!! tip "Make `opt` the default if most of your cube workflows use predecessors"
222
+
If the majority of your cube-stored workflows are predecessor-based, set `mode = opt` in the `[defaults]` section of `settings.ini` so you don't have to pass `--mode opt` on every run. The CLI `--mode` flag still overrides it per run.
223
+
224
+
!!! note "`--mode` and file sources"
225
+
For `--tasks` (JSON/TXT files) the mode is auto-detected from content and `--mode` is ignored. The flag only changes behaviour for cube reads (`--tm1-instance`).
Copy file name to clipboardExpand all lines: docs/getting-started/task-files.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,11 +72,14 @@ Each task is defined by writing values to these measures:
72
72
### Run Tasks from the Cube
73
73
74
74
```bash
75
-
rushti run --tm1-instance tm1srv01 --workflow daily-refresh --max-workers 4
75
+
rushti run --tm1-instance tm1srv01 --workflow daily-refresh --mode opt --max-workers 4
76
76
```
77
77
78
78
RushTI reads the task definitions from the cube, builds the DAG, and executes — exactly like running from a file.
79
79
80
+
!!! warning "`--mode opt` is required for predecessor-based workflows"
81
+
Because the workflow above uses the `predecessors` measure, you must pass `--mode opt`. A cube read cannot auto-detect its mode (unlike a file source) and defaults to `norm`, which ignores `predecessors` and sequences tasks by the `wait` measure instead. See [TM1 integration → Choosing the mode for cube reads](../features/tm1-integration.md#choosing-the-mode-for-cube-reads).
82
+
80
83
### View Results
81
84
82
85
When result pushing is enabled, RushTI writes execution results back to the same cube. Each run gets its own `rushti_run_id` element (e.g., `20260209_143022`), so you can see the full execution history:
help="[Deprecated] Execution mode is now auto-detected from file content. This option is kept for backwards compatibility but ignored.",
292
+
help="Execution mode: norm or opt. Auto-detected (and ignored) for file sources. For cube reads (--tm1-instance) it defaults to norm; pass 'opt' to honour the 'predecessors' measure.",
0 commit comments