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.
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:
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.
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
To deploy the IDE:
docker-compose pull && docker-compose up
Genomics Pipelines Runner
role, and download its key in JSON formatService Account User
permission on
Compute Engine default service account
in that projectStorage Object Admin
permission on the Cromwell executions bucket<...>
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.