mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-25 06:38:13 -05:00
Replace the rips.taskmaestro_helper introspect subcommand with `python -m taskmaestro workflow describe --json`. RimWorkflowDescribeTools converts the describe output (JSON schemas, depends_on, config_values) into the workflow graph used by the Workflow UI. This also adds support for collect dependencies and maps rips.Reservoir to EclipseCase pickers.
87 lines
2.8 KiB
Markdown
87 lines
2.8 KiB
Markdown
# Using the experimental Workflow UI
|
|
|
|
The Workflow UI adds a **Workflows** node to the ResInsight project tree. It
|
|
requires a Python environment containing `rips`, `taskmaestro`, and the
|
|
workflow package.
|
|
|
|
These instructions assume ResInsight is already installed and working.
|
|
Python 3.12 or newer and Git are required.
|
|
|
|
## 1. Create the Python environment
|
|
|
|
Choose a permanent location for the environment and workflow files:
|
|
|
|
```bash
|
|
mkdir -p ~/resinsight-workflows
|
|
python3 -m venv ~/resinsight-workflows/.venv
|
|
source ~/resinsight-workflows/.venv/bin/activate
|
|
python -m pip install --upgrade pip
|
|
```
|
|
|
|
Install `rips` from the `Python` directory supplied with ResInsight:
|
|
|
|
```bash
|
|
python -m pip install -e /path/to/ResInsight/Python
|
|
```
|
|
|
|
For a source checkout, use `/path/to/ResInsight/GrpcInterface/Python` instead.
|
|
|
|
Clone and install the example workflows. This also installs `taskmaestro`:
|
|
|
|
```bash
|
|
git clone https://github.com/OPM/taskmaestro-resinsight.git \
|
|
~/resinsight-workflows/taskmaestro-resinsight
|
|
python -m pip install -e ~/resinsight-workflows/taskmaestro-resinsight
|
|
```
|
|
|
|
ResInsight reads workflows with `python -m taskmaestro workflow describe`, which
|
|
needs a `taskmaestro` version that reports `config_values`
|
|
([OPM/taskmaestro#13](https://github.com/OPM/taskmaestro/pull/13)). Until that
|
|
is released, install it from Git:
|
|
|
|
```bash
|
|
python -m pip install "git+https://github.com/OPM/taskmaestro.git@main"
|
|
```
|
|
|
|
## 2. Register the workflows
|
|
|
|
ResInsight discovers workflows in `~/.taskmaestro/workflows`:
|
|
|
|
```bash
|
|
mkdir -p ~/.taskmaestro/workflows
|
|
for workflow in ~/resinsight-workflows/taskmaestro-resinsight/workflows/*/; do
|
|
ln -sfn "$(realpath "$workflow")" \
|
|
~/.taskmaestro/workflows/"$(basename "$workflow")"
|
|
done
|
|
```
|
|
|
|
## 3. Configure ResInsight
|
|
|
|
Open **Edit → Preferences** and set:
|
|
|
|
1. **Scripting → Python Executable Location** to the absolute path printed by:
|
|
|
|
```bash
|
|
realpath ~/resinsight-workflows/.venv/bin/python
|
|
```
|
|
|
|
2. **Scripting → Enable Python Script Server** to on.
|
|
3. **System → Experimental Features → Workflows** to on.
|
|
|
|
Restart ResInsight. The **Workflows** node should now appear in the project
|
|
tree. Select a workflow, provide its inputs, and click **Run**.
|
|
|
|
## Troubleshooting
|
|
|
|
- **No Workflows node:** Enable the experimental feature and restart
|
|
ResInsight.
|
|
- **The Workflows node is empty:** Check that each directory under
|
|
`~/.taskmaestro/workflows` contains `workflow.yaml`, then restart ResInsight.
|
|
- **A Python module cannot be found:** Confirm that **Python Executable
|
|
Location** points to the virtual environment created above.
|
|
- **A workflow fails to load with `invalid choice: 'workflow'`, or its inputs
|
|
are not pre-filled from `input.yaml`:** The installed `taskmaestro` is too
|
|
old; reinstall it as described above.
|
|
- **The workflow cannot connect:** Enable **Python Script Server** and restart
|
|
ResInsight.
|