https://github.com/broadinstitute/wdl-ide

Rich IDE support for Workflow Description Language

https://github.com/broadinstitute/wdl-ide

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 6 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

cromwell docker ide lsp theia vscode wdl wdl-devtools

Keywords from Contributors

bioinformatics labels application executor ga4gh workflow-description-language workflow-execution
Last synced: 5 months ago · JSON representation

Repository

Rich IDE support for Workflow Description Language

Basic Info
  • Host: GitHub
  • Owner: broadinstitute
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 604 KB
Statistics
  • Stars: 42
  • Watchers: 10
  • Forks: 9
  • Open Issues: 13
  • Releases: 0
Topics
cromwell docker ide lsp theia vscode wdl wdl-devtools
Created over 6 years ago · Last pushed 11 months ago
Metadata Files
Readme License Security

README.md

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: - [x] check the syntax of a workflow - [x] submit a workflow for execution to Cromwell API - [x] watch for completion/failure of each workflow (or cancel it) - [x] highlight task-specific failures - [ ] get feedback on runtime resource management - [x] enjoy rich editor support (jump to definition etc.)

You can find the following published extensions based on this plugin: - WDL DevTools for VS Code - WDL DevTools for IntelliJ

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.

Owner

  • Name: Broad Institute
  • Login: broadinstitute
  • Kind: organization
  • Location: Cambridge, MA

Broad Institute of MIT and Harvard

GitHub Events

Total
  • Watch event: 2
  • Pull request event: 1
  • Create event: 1
Last Year
  • Watch event: 2
  • Pull request event: 1
  • Create event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 223
  • Total Committers: 6
  • Avg Commits per committer: 37.167
  • Development Distribution Score (DDS): 0.063
Top Committers
Name Email Commits
Denis Loginov d****s@b****g 209
dependabot[bot] 4****]@u****m 5
Denis Loginov d****d@g****m 5
Michael Franklin m****n@p****u 2
Vincent Selhorst-Jones v****s@c****m 1
Phil Shapiro p****o@b****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 16
  • Total pull requests: 36
  • Average time to close issues: 12 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 16
  • Total pull request authors: 5
  • Average comments per issue: 1.88
  • Average comments per pull request: 0.39
  • Merged pull requests: 27
  • Bot issues: 0
  • Bot pull requests: 13
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • satwinderbanipal (1)
  • SHuang-Broad (1)
  • dinvlad (1)
  • lmtani (1)
  • cfriedline (1)
  • GregTD42 (1)
  • aofarrel (1)
  • vincent-czi (1)
  • JaylanLiu (1)
  • PriitPaluoja (1)
  • mmterpstra (1)
  • avilaHugo (1)
  • dformoso (1)
  • songmingl (1)
  • maribuon (1)
Pull Request Authors
  • dinvlad (30)
  • dependabot[bot] (20)
  • pshapiro4broad (2)
  • illusional (1)
  • vincent-czi (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (20) javascript (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 131 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 58
  • Total maintainers: 2
pypi.org: wdl-lsp

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

  • Versions: 58
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 131 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 10.4%
Downloads: 10.7%
Forks count: 11.9%
Average: 13.0%
Dependent repos count: 21.6%
Last synced: 6 months ago

Dependencies

client/intellij/build.gradle maven
  • com.github.ballerina-platform:lsp4intellij 0.93.4 implementation
client/theia/package.json npm
  • @theia/cli next development
  • @theia/editor-preview next
  • @theia/file-search next
  • @theia/git next
  • @theia/json next
  • @theia/keymaps next
  • @theia/markers next
  • @theia/merge-conflicts next
  • @theia/messages next
  • @theia/mini-browser next
  • @theia/navigator next
  • @theia/outline-view next
  • @theia/plugin-ext-vscode next
  • @theia/preferences next
  • @theia/preview next
  • @theia/search-in-workspace next
  • @theia/terminal next
  • @theia/textmate-grammars next
  • keytar latest
  • typescript latest
client/vscode/package-lock.json npm
  • @babel/code-frame 7.12.13 development
  • @babel/helper-validator-identifier 7.14.0 development
  • @babel/highlight 7.14.0 development
  • @types/node 8.10.66 development
  • @types/vscode 1.56.0 development
  • ansi-styles 3.2.1 development
  • argparse 1.0.10 development
  • azure-devops-node-api 10.2.2 development
  • balanced-match 1.0.0 development
  • boolbase 1.0.0 development
  • brace-expansion 1.1.11 development
  • buffer-crc32 0.2.13 development
  • builtin-modules 1.1.1 development
  • call-bind 1.0.2 development
  • chalk 2.4.2 development
  • cheerio 1.0.0-rc.9 development
  • cheerio-select 1.4.0 development
  • color-convert 1.9.3 development
  • color-name 1.1.3 development
  • commander 6.2.1 development
  • commander 2.20.3 development
  • concat-map 0.0.1 development
  • css-select 4.1.2 development
  • css-what 5.0.1 development
  • denodeify 1.2.1 development
  • diff 4.0.2 development
  • dom-serializer 1.3.2 development
  • domelementtype 2.2.0 development
  • domhandler 4.2.0 development
  • domutils 2.6.0 development
  • entities 2.2.0 development
  • entities 2.0.3 development
  • escape-string-regexp 1.0.5 development
  • esprima 4.0.1 development
  • fd-slicer 1.1.0 development
  • fs.realpath 1.0.0 development
  • function-bind 1.1.1 development
  • get-intrinsic 1.1.1 development
  • glob 7.1.4 development
  • has 1.0.3 development
  • has-flag 3.0.0 development
  • has-symbols 1.0.2 development
  • htmlparser2 6.1.0 development
  • inflight 1.0.6 development
  • inherits 2.0.3 development
  • is-core-module 2.4.0 development
  • js-tokens 4.0.0 development
  • js-yaml 3.14.1 development
  • leven 3.1.0 development
  • linkify-it 2.2.0 development
  • lodash 4.17.21 development
  • markdown-it 10.0.0 development
  • mdurl 1.0.1 development
  • mime 1.6.0 development
  • minimatch 3.0.4 development
  • minimist 1.2.5 development
  • mkdirp 0.5.5 development
  • mute-stream 0.0.8 development
  • nth-check 2.0.1 development
  • object-inspect 1.10.3 development
  • once 1.4.0 development
  • os-homedir 1.0.2 development
  • os-tmpdir 1.0.2 development
  • osenv 0.1.5 development
  • parse-semver 1.1.1 development
  • parse5 6.0.1 development
  • parse5-htmlparser2-tree-adapter 6.0.1 development
  • path-is-absolute 1.0.1 development
  • path-parse 1.0.7 development
  • pend 1.2.0 development
  • qs 6.10.1 development
  • read 1.0.7 development
  • resolve 1.20.0 development
  • semver 5.7.0 development
  • side-channel 1.0.4 development
  • sprintf-js 1.0.3 development
  • supports-color 5.5.0 development
  • tmp 0.0.29 development
  • tslib 2.2.0 development
  • tslib 1.10.0 development
  • tslint 5.20.1 development
  • tslint-microsoft-contrib 6.2.0 development
  • tsutils 2.29.0 development
  • tsutils 3.21.0 development
  • tsutils 2.28.0 development
  • tunnel 0.0.6 development
  • typed-rest-client 1.8.4 development
  • typescript 3.9.9 development
  • uc.micro 1.0.6 development
  • underscore 1.13.1 development
  • url-join 1.1.0 development
  • vsce 1.88.0 development
  • wrappy 1.0.2 development
  • yauzl 2.10.0 development
  • yazl 2.5.1 development
  • semver 6.3.0
  • vscode-jsonrpc 5.0.1
  • vscode-languageclient 6.1.4
  • vscode-languageserver-protocol 3.15.3
  • vscode-languageserver-types 3.15.1
client/vscode/package.json npm
  • @types/node ^8.10.66 development
  • @types/vscode ^1.56.0 development
  • tslint ^5.20.1 development
  • tslint-microsoft-contrib ^6.2.0 development
  • tsutils ^3.21.0 development
  • typescript ^3.9.9 development
  • vsce ^1.64.0 development
  • vscode-languageclient ^6.1.4
server/setup.py pypi
  • cromwell-tools *
  • miniwdl *
  • pygls *
client/theia/Dockerfile docker
  • alpine latest build
  • base latest build
.github/workflows/publish-pypi.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pypa/cibuildwheel v2.17 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/publish-jetbrains.yml actions
  • actions/checkout v4 composite
  • actions/setup-java v4 composite
.github/workflows/publish-vscode.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite