Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a required input and output format for workflow engines. #357

Merged
merged 6 commits into from
Mar 30, 2020

Conversation

rhpvorderman
Copy link
Contributor

@rhpvorderman rhpvorderman commented Feb 19, 2020

This is a result from the OpenWDL hackathon discussion on WDL compliance testing.

To make it easier to test compliance all workflow engines should be able to process the same input format and supply the same output format.

It was decided to use the JSON format for both in- and output formats for the following reasons:

  • Is already the de facto standard for inputs and outputs across engines.
  • Human-readable
  • Easy to parse (compared to XML and YAML)

We decided to rename the JSON input format to something other than "Cromwell-style inputs" because we value our engine diversity 🌈 .

Checklist

  • Pull request details were added to CHANGELOG.md

@rhpvorderman
Copy link
Contributor Author

ping @patmagee, @jdidion

accepted by any workflow engine. It is the input format that is used for
performing language compliance tests on the engine.

In this common format, workflow inputs are
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be usable for both workflow and task inputs/outputs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is in the workflow inputs chapter. Can you clarify what you mean by task inputs in this context?

Copy link
Collaborator

@jdidion jdidion Feb 24, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some workflow engines (miniwdl, dxWDL) support running individual tasks in addition to workflows. This input specification should be the same for both workflows and inputs, and it should be required for any workflow engine that allows running tasks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is good. My only comment is to consider shortening the concept name from Common WDL JSON Input Format to JSON Input Format. It makes it more readable, and reduces potential confusion with the "Common Workflow Language". After all, this document is the authoritative document on the WDL language, so the words common and WDL should be superfluous. Any changes an engine makes are not standard/common by definition.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@orodeh Very good suggestion. It was also a bit tedious to type.

@jdidion, running individual tasks is a feature that is not listed in the spec. So workflow engines can do as they please with regards to running tasks. We can of course make running tasks part of the spec, but that will be another PR entirely.

@rhpvorderman
Copy link
Contributor Author

@mlin, @cjllanwarne , @orodeh as engine implementers, what are your opinions on this? Are these workable input and output formats?

@rhpvorderman
Copy link
Contributor Author

I removed the Common WDL stuff. Is this okay for everyone to get into voting?

@orodeh
Copy link
Contributor

orodeh commented Mar 6, 2020

I think so.

@orodeh
Copy link
Contributor

orodeh commented Mar 17, 2020

👍

3 similar comments
@patmagee
Copy link
Member

👍

@pieterlukasse
Copy link

👍

@aednichols
Copy link
Contributor

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants