All Projects → broadinstitute → wdl-ide

broadinstitute / wdl-ide

Licence: BSD-3-Clause license
Rich IDE support for Workflow Description Language

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
typescript
32286 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to wdl-ide

theia-workshop
Theia Workshop - Building Cloud and Desktop IDEs
Stars: ✭ 38 (+5.56%)
Mutual labels:  ide, theia
Haskell Ide Engine
The engine for haskell ide-integration. Not an IDE
Stars: ✭ 2,433 (+6658.33%)
Mutual labels:  ide, lsp
glsp-examples
Example diagram editors built with Eclipse GLSP
Stars: ✭ 28 (-22.22%)
Mutual labels:  lsp, theia
vscode
The Visual Studio Code Extension for the Erlang Language Server
Stars: ✭ 62 (+72.22%)
Mutual labels:  ide, lsp
atom-ide-scala
Scala & Dotty support for Atom IDE (🧟‍♂️ zombie repo)
Stars: ✭ 47 (+30.56%)
Mutual labels:  ide, lsp
Atom Languageclient
Language Server Protocol support for Atom (the basis of Atom-IDE)
Stars: ✭ 385 (+969.44%)
Mutual labels:  ide, lsp
Erlang ls
The Erlang Language Server
Stars: ✭ 363 (+908.33%)
Mutual labels:  ide, lsp
Metals
Scala language server with rich IDE features 🚀
Stars: ✭ 1,605 (+4358.33%)
Mutual labels:  ide, lsp
Composer
Visual and code editor for Common Workflow Language
Stars: ✭ 232 (+544.44%)
Mutual labels:  ide
Arrow Meta
Functional companion to Kotlin's Compiler
Stars: ✭ 246 (+583.33%)
Mutual labels:  ide
Theia
Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
Stars: ✭ 15,920 (+44122.22%)
Mutual labels:  ide
Ide Haskell
Haskell IDE plugin for Atom editor
Stars: ✭ 236 (+555.56%)
Mutual labels:  ide
camel-lsp-client-vscode
This is a client implementation of the Apache Camel Language Server Protocol for Visual Studio Code
Stars: ✭ 24 (-33.33%)
Mutual labels:  lsp
apio-ide
🌱 Experimental open FPGA IDE using Atom and Apio
Stars: ✭ 82 (+127.78%)
Mutual labels:  ide
Meghanada Server
A Java IDE Server for your editor. Java IDE-like features to your favourite text editor.
Stars: ✭ 213 (+491.67%)
Mutual labels:  ide
Edi
Edi - The open source text editor IDE based on AvalonDock and AvalonEdit
Stars: ✭ 220 (+511.11%)
Mutual labels:  ide
IC-InteractiveConstructor
Construtor Interativo de website.
Stars: ✭ 15 (-58.33%)
Mutual labels:  ide
tds-vscode
Totvs Developer Studio for vscode
Stars: ✭ 135 (+275%)
Mutual labels:  lsp
Ecere Sdk
Ecere SDK (eC Language, Ecere IDE, Cross platform GUI, graphics, and more) — http://ec-lang.org —
Stars: ✭ 244 (+577.78%)
Mutual labels:  ide
Monodevelop
MonoDevelop is a cross platform .NET IDE
Stars: ✭ 2,682 (+7350%)
Mutual labels:  ide

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].