Skip to main content

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.

Metadata

Release files for wdl-lsp 0.0.90

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wdl-lsp 0.0.90
File Size Uploaded Provenance
wdl-lsp-0.0.90.tar.gz 12.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wdl-lsp 0.0.90
File Interpreter ABI Platform
wdl_lsp-0.0.90-py3-none-any.whl Python 3 none any Details

Total release size: 25.5 kB

Release files / wdl-lsp-0.0.90.tar.gz

Download URL wdl-lsp-0.0.90.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d50a0a4231443d2822bda65945d7f0e9748d0d1f8b1a1c1cdbe9aa86366b769d
BLAKE2b-256 checksum
How to use checksums
bc754840a538cf4969608ffd6452de50b7fb0ce4ed4a9859970b2e4d5277b188
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / wdl_lsp-0.0.90-py3-none-any.whl

Download URL wdl_lsp-0.0.90-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f3d44228b4b091db4bd29cd3fa20219b51ac0a8e70a0bb4df01b1e9ad8ac3dd
BLAKE2b-256 checksum
How to use checksums
308d1dce0ba622b65b3d0a1c53fefb9039a8d8887384615c36d0a3df0d0a3c6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Security for wdl-lsp 0.0.90

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.0.90 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page