Skip to content

Releases

0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 14:32
c07aeab

Changed

  • The plugin calls the Workbench Launcher API itself (WorkbenchApiClient, with the JDK's HTTP client) instead of shelling out to posit-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 with WORKBENCH_SERVER/WORKBENCH_API_KEY. Submit, status and kill keep their behaviour; the status mapping moved from the CLI into WorkbenchExecutor.queueStatusOf.
  • workbench.launcherCli is no longer used. It still validates, and logs a warning when set. The examples no longer set it, and have no --launcherCli param.
  • 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. whoami now 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 against e2e/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

Choose a tag to compare

@michaelmayer2 michaelmayer2 released this 23 Oct 08:05
4134eff

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 bare KEY passes 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.0

Launcher: 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.whl

If 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

Choose a tag to compare

@michaelmayer2 michaelmayer2 released this 21 Oct 21:39
e4142bd

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.eventsFile set, 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, error and completed
    • 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
  • Launcher clusters [--json]: lists cluster names and their resource profiles.
  • Launcher whoami [--json]: shows the active credential path (session or api-key), the user and the server.
  • Launcher status: accepts job ids to filter by, and --json for 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.0

Alternatively, 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.whl

Alternatively, build it from source with cd launcher && uv venv && uv pip install ..

See CHANGELOG.md.