Repository navigation
Releases
0.4.0
Changed
- The plugin calls the Workbench Launcher API itself (
WorkbenchApiClient, with the JDK's HTTP client) instead of shelling out toposit-workbench-nf-launcher. Nextflow needs no Python and no CLI to run tasks as Workbench Jobs, in a session, in a headless driver job, or anywhere withWORKBENCH_SERVER/WORKBENCH_API_KEY. Submit, status and kill keep their behaviour; the status mapping moved from the CLI intoWorkbenchExecutor.queueStatusOf. workbench.launcherCliis no longer used. It still validates, and logs a warning when set. The examples no longer set it, and have no--launcherCliparam.- The launcher CLI is optional, for submitting, listing and stopping jobs from a terminal (e.g. a headless driver). It no longer depends on posit-sdk: it uses a built-in client (standard library only), the same as posit-sdk-snakemake's.
whoaminow checks the credentials with one API call. - A Workbench session without a readable RPC cookie falls back to
WORKBENCH_SERVER/WORKBENCH_API_KEY, where posit-sdk failed. - The plugin and launcher are now 0.4.0. Update
plugins { id 'nf-workbench@0.4.0' }in pipeline configs. - Verified on Posit Workbench with the Positron Nextflow extension.
Added
e2e/run.sh: the real Nextflow with the built plugin againste2e/fake_workbench.py, a stand-in for the Launcher API that runs each job as a local process. It checks a completed run (the job spec: script, work dir, cpus, memory, resource profile) and a run stopped while its tasks run (status polled, jobs stopped).- CI: plugin tests and build, the end-to-end run, and the launcher tests.
0.3.0
Headless Nextflow runs: the Nextflow driver itself can run as a Workbench Job, so a pipeline keeps running without a session. The Positron Nextflow extension 0.2.0 uses this. The plugin's submit/status/kill contract with the launcher is unchanged.
Added
submit --env KEY[=VALUE]: sets environment variables for the job. It's repeatable, and a bareKEYpasses the variable through from your environment.submit --workdir: sets the job's working directory.kill --graceful: stops a job with SIGTERM instead of SIGKILL, so a Nextflow driver can cancel its tasks before it exits.examples/headless/:driver.sh, a driver script for headless runs.check-session-credentials.sh, which checks that a job's own Workbench credentials keep working after the session that submitted it has stopped.
- Docs: "Headless runs" in docs/usage.md.
Verified on Posit Workbench (Kubernetes)
- Interactive runs: the session's credentials reach the launcher CLI.
- Headless runs started from a Positron session: the driver job submits its tasks with credentials of its own. Those credentials keep working after the session stops, for 7 days.
- Not yet tested: headless runs submitted through the Workbench API with
WORKBENCH_API_KEY.
Changed
- The plugin and launcher are now 0.3.0. Update
plugins { id 'nf-workbench@0.3.0' }in pipeline configs.
Install
Plugin:
mkdir -p ~/.nextflow/plugins/nf-workbench-0.3.0
unzip nf-workbench-0.3.0.zip -d ~/.nextflow/plugins/nf-workbench-0.3.0Launcher: it needs posit-sdk from the workbench branch of michaelmayer2/posit-sdk-py.
uv tool install --force --with "posit-sdk @ git+https://github.com/michaelmayer2/posit-sdk-py@workbench" \
https://github.com/sol-eng/posit-sdk-nextflow/releases/download/v0.3.0/posit_workbench_nf_launcher-0.3.0-py3-none-any.whlIf an older launcher comes earlier on your PATH, for example from an activated launcher/.venv, it is found first. Check with type -a posit-workbench-nf-launcher.
See CHANGELOG.md.
0.2.0
Run events for the Positron Nextflow extension, and launcher subcommands for tools. The plugin's submit/status/kill contract with the launcher is unchanged.
Added
- Run events: with
workbench.eventsFileset, the plugin appends workflow and task events to that file as JSON lines:- the events are
started,task_submitted,task_started,task_completed,task_cached,errorandcompleted - workflow events include Nextflow's
errorReport - this works for any executor when the plugin is loaded, e.g. with
-plugins nf-workbench@0.2.0 - see Run events
- the events are
- Launcher
clusters [--json]: lists cluster names and their resource profiles. - Launcher
whoami [--json]: shows the active credential path (sessionorapi-key), the user and the server. - Launcher
status: accepts job ids to filter by, and--jsonfor structured output.
Changed
- The plugin and launcher are now 0.2.0. Update
plugins { id 'nf-workbench@0.2.0' }in pipeline configs.
Install
Plugin: unzip nf-workbench-0.2.0.zip into the Nextflow plugins directory:
mkdir -p ~/.nextflow/plugins/nf-workbench-0.2.0
unzip nf-workbench-0.2.0.zip -d ~/.nextflow/plugins/nf-workbench-0.2.0Alternatively, build it from source with cd plugin && gradle install.
Launcher: the launcher needs posit-sdk from the workbench branch of michaelmayer2/posit-sdk-py. The posit-sdk on PyPI does not include the Workbench jobs API yet. Install the wheel together with it:
uv tool install --with "posit-sdk @ git+https://github.com/michaelmayer2/posit-sdk-py@workbench" \
https://github.com/sol-eng/posit-sdk-nextflow/releases/download/v0.2.0/posit_workbench_nf_launcher-0.2.0-py3-none-any.whlAlternatively, build it from source with cd launcher && uv venv && uv pip install ..
See CHANGELOG.md.