Skip to main content

Language Server Protocol (LSP) implementation for Workflow Definition Language (WDL)

Project description

IDE for WDL

This project aims to provide a "batteries-included" environment for developing WDL workflows.

Please note: it is currently under active development, and is not yet feature-complete.

Editor-agnostic WDL support

We will provide a WDL Language Server plugin, based on Language Server Protocol (LSP), cromwell-tools, pygls, and miniwdl.

This protocol is supported by many code editors, and enables universal support for language features.

More specifically, our plugin will enable you to:

  • check the syntax of a workflow
  • submit a workflow for execution to Cromwell API
  • watch for completion/failure of each workflow (or cancel it)
  • highlight task-specific failures
  • get feedback on runtime resource management
  • enjoy rich editor support (jump to definition etc.)

You can find the following published extensions based on this plugin:

Other editors are supported via their respective LSP plugins. Examples on how to connect them are in the client directory.

Browser IDE

Additionally, we provide an Integrated Development Environment (IDE), which runs in a web browser and is based on Theia.

It bundles WDL extensions for Visual Studio Code - WDL DevTools and WDL Syntax Highlighter - along with a "local" instance of Cromwell.

The bundle consists of Docker containers, which you can set up with a single Docker Compose command.

This approach is used to

  • develop workflows locally, with an ultra-fast feedback loop
  • run workflows in the cloud from developer machine - no need for a Cromwell server
  • create reproducible setup - it works on any OS with Docker Compose
  • run the same setup on a remote server - think Notebooks, but for WDL!
  • simplify local development - it just works™

Deployment

To deploy the IDE:

  • clone or download this repo into a local folder
  • install Docker Compose
  • for local-only development, run this command in the cloned folder:
    docker-compose pull && docker-compose up
    
  • for local and Google Cloud development, do the following instead [*]:
    • create a project on Google Cloud Platform
    • create a service account with project-wide Genomics Pipelines Runner role, and download its key in JSON format
    • grant it Service Account User permission on Compute Engine default service account in that project
    • create a bucket for Cromwell executions
    • grant Storage Object Admin permission on the Cromwell executions bucket
    • run this command, replacing <...> with your values:
      docker-compose pull && \
      GOOGLE_APPLICATION_CREDENTIALS=./<your-service-account-key>.json \
      GOOGLE_AUTH_MODE=service-account \
      GOOGLE_CLOUD_PROJECT=<your-project-name> \
      GOOGLE_EXECUTIONS_BUCKET=<executions-bucket-name> \
      docker-compose up
      
    [*] In the future, we may provide a simplified script to do most of the above. Additionally, we may add settings for other cloud providers (PRs are welcome!).

The first time you run the Docker compose command, it will take ~5 minutes to compile the IDE from sources and bring up the environment. Later on, we will provide a Docker image to speed that up.

When you no longer see the log messages, the IDE is running and you can navigate to it in a browser at this address: localhost:3000.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wdl-lsp-0.0.85.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

wdl_lsp-0.0.85-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file wdl-lsp-0.0.85.tar.gz.

File metadata

  • Download URL: wdl-lsp-0.0.85.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for wdl-lsp-0.0.85.tar.gz
Algorithm Hash digest
SHA256 b5a71800064d365e0de28c33f1f97a011846abfba4d36b337fec8a4bd7cb5969
MD5 c0e6d4fe8c7cd54f77976a760b6475a4
BLAKE2b-256 c6dfde2407b422662ec3fd5cd9c2b4294807eaf1cb14f56910b13477b0c915fe

See more details on using hashes here.

File details

Details for the file wdl_lsp-0.0.85-py3-none-any.whl.

File metadata

  • Download URL: wdl_lsp-0.0.85-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for wdl_lsp-0.0.85-py3-none-any.whl
Algorithm Hash digest
SHA256 a9e75cbace315e0736382751d8e8b6b3fb5852b0041ccdf530a6c10a7006fe4b
MD5 0f7e82affc2a81da5fd4d0037f1b2418
BLAKE2b-256 41e7b88fabd3deacf9a8839562e0bd8f72ae79ad53cf593828a6352ca4ab074d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page