-
Notifications
You must be signed in to change notification settings - Fork 7
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
feat: implement WDL 1.2 task evaluation. #265
Conversation
Note: I haven't tested this on Windows yet, so expect CI failures there. I plan on pushing up more file tests before merging this. |
84317cb
to
100d3ab
Compare
465838d
to
c9b302e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw in an earlier version that you were evaluating and comparing the output of the commands explicitly too. I liked that being checked is well, is there a reason you had to move away from that?
The commands ended up with temp file names in them sometimes; I can look at what |
Whoops, need to strip more paths from the command files. |
ef3fa80
to
d0b1aa6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't gone through all the tests yet. Or checked out the branch and kicked the tires of the new run
command in the wdl bin, but here's my comments so far. Will come back with some more feedback later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great.
This commit refactors analysis results so that an analysis document contains the identifier, URI, and the diagnostics resulting from the analysis of the document. As a consequence, the `ParseResult` enumeration was removed and merged with `AnalysisResult`.
This commit adds evaluation of WDL tasks with full 1.2 support. It completes 1.2 expression evaluation except for accessing call values; those will be implemented along with workflow evaluation. It includes several big refactorings to `wdl-analysis` to facilitate in evaluation, namely storing diagnostics, id, and uri in `Document` instead of `AnalysisResult`. Evaluation of string and command literals now properly unescape any escape sequences. Task evaluation tests were implemented and derived from examples taken directly from the WDL 1.2 spec. Storage of compound types has been changed such that empty compound types (e.g. `[]`, `{}`, `object {}`) do not cause an allocation. Whitespace stripping for multiline strings and commands has been refactored to reduce the number of allocations made.
These test cases come directly from the 1.2 WDL specification.
Use constants for task fields, requirement names, and hint names. Improve error messages. Fix typos.
Improve error messages. Don't delete the temp directory on retry (implement retry in the future). Expand on comments. Add an `--overwrite` option to `wdl run`.
Pass the task identifier through when evaluating a task. Add a test for the task variable in 1.2.
b78bf25
to
797556c
Compare
Co-authored-by: Andrew Frantz <andrew.frantz@stjude.org>
This commit adds evaluation of WDL tasks with full 1.2 support.
It completes 1.2 expression evaluation except for accessing call values; those
will be implemented along with workflow evaluation.
It includes several big refactorings to
wdl-analysis
to facilitate inevaluation, namely storing diagnostics, id, and uri in
Document
instead ofAnalysisResult
.Evaluation of string and command literals now properly unescape any escape
sequences.
Task evaluation tests were implemented and derived from examples taken directly
from the WDL 1.2 spec.
Storage of compound types has been changed such that empty compound types (e.g.
[]
,{}
,object {}
) do not cause an allocation.Whitespace stripping for multiline strings and commands has been refactored to
reduce the number of allocations made.
Before submitting this PR, please make sure:
changes (when appropriate).
CHANGELOG.md
(see"keep a changelog" for more information).