Git Product home page Git Product logo

ep3's Introduction

Ep3: Extremely Pluggable Pipeline Processor

Actions Status license

This is a workflow engine for the Common Workflow Language which aims to have a pluggable architecture.

Conformance tests for CWL v1.0 for the latest release

release commit

Classes

CommandLineTool ExpressionTool Workflow

Required features

Required

Optional features

DockerRequirement EnvVarRequirement InitialWorkDirRequirement InlineJavascriptRequirement MultipleInputFeatureRequirement ResourceRequirement ScatterFeatureRequirement SchemaDefRequirement ShellCommandRequirement StepInputExpressionRequirement SubworkflowFeatureRequirement

Notes:

  • ep3 will not pass the test #61 with required and command_line_tool tags due to common-workflow-language#761.
  • The conformance badge for SoftwareRequirement is not available because there are no conformance tests for this feature.
  • Currently ScatterFeatureRequirement (scatter tag) and StepInputExpressionRequirement (step_input tag) are not supported.
    • It affects the result of the tests of Workflow (workflow tag), InlineJavascriptRequirement (inline_javascript tag), MultipleInputFeatureRequirement (multiple_input tag) and SubworkflowFeatureRequirement (subworkflow tag).

Requirements

How to install

  • Install medal, bash, ruby, jq, nodejs and docker
  • Execute the following commands and add /path/to/ep3 to $PATH.
$ git clone --recursive https://github.com/tom-tan/ep3.git

Usage

See ep3-runner --help for details.

$ ep3-runner <cwl> [job]

It prints the log and debug outputs to stderr and prints the output object to stdout. Both types of outputs are printed in JSON Lines format.

Here is an example:

$ ep3-runner --quiet /path/to/ep3/examples/workflow.cwl /path/to/ep3/examples/inputs.yml | jq .
{
  "output": {
    "class": "File",
    "location": "file:///current/directory/output",
    "path": "/current/directory/output",
    "basename": "output",
    "dirname": "/current/directory",
    "nameroot": "output",
    "nameext": "",
    "checksum": "sha1$c28e458d4e943c743b9b3c46fdab10688a6d68b6",
    "size": 687
  }
}

For developers

How to test

$ git clone --recursive https://github.com/tom-tan/ep3.git
$ cd ep3
$ cwltest --tool $PWD/ep3-runner --test test.yml
Test [1/1] Workflow example
All tests passed

ep3 internals

The ep3-runner command consists of the following internal commands:

  • ep3 init
    • Generates Petri nets for medal that represents a given CWL workflow (including internal states in workflow engines such as staging processes)
  • ep3 run
    • Executes a medal to run a workflow
  • ep3 list
    • Shows the output object for execution result
  • ep3 resume (Unimplemented)
  • ep3 stop (Unimplemented)

ep3's People

Contributors

manabuishii avatar tom-tan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ep3's Issues

Feedback for CWL v1.2.1 release requested.

Hello,

We are asking for feedback for the CWL v1.2.1 release.

Changelogs for the release can be found below:

Workflow / ExpressionTool / Operation:
https://deploy-preview-115--cwl-v1-2-dev.netlify.app/workflow#Changelog_for_v1.2.1

CommandLineTool:
https://deploy-preview-115--cwl-v1-2-dev.netlify.app/commandlinetool#Changelog_for_v1.2.1

You can provide your feedback, as well as see a full summary of changes here: common-workflow-language/cwl-v1.2#115.

We ask that all feedback be provided by August 31st.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.