Roadmap #473
Replies: 4 comments 2 replies
-
For inclusion in WDL 1.2 I would vote for:
For all RFC's that include programming language-like features, I hope they never end up in the language. WDL stands for Workflow Description Language. I think it is best that it should remain as declarative as possible to keep the language as simple as possible. For more advanced concepts such as |
Beta Was this translation helpful? Give feedback.
-
Personally, I am in favor of, or at least ambivalent about, all of these. I appreciate @rhpvorderman point about not adding programming language-like features to WDL; however there are some important considerations:
At the very least we should:
My proposal: define the WDL "extended" library. This would either be a single file with many tasks, or one file per task. The extended library can evolve separately from (and more quickly than) the spec. Because this set of tasks would be "official", runtimes could optionally provide built-in versions of the tasks for optimization purposes. |
Beta Was this translation helpful? Give feedback.
-
Things I think look most interesting/useful/immediately helpful for novice users and should be prioritized:
Things I'm ambivalent about or are probably more important for other types of users than my realm:
Things I'm not even sure what need there was for these, not something I've personally run into, or maybe actively don't love:
|
Beta Was this translation helpful? Give feedback.
-
Okay this is a bit late in coming from me (I realize time totally got away from me on this one), but I think the list of features I would short-list for 1.2 would be the following:
I am sure there are a few other things that I have missed in the list, however I am happy to start here More generally speaking, I think we need a new process for releases. I do wonder whether the release branch model could be something that we should consider. Looking through the long list of changes that has happened since the last 1.1 release, it is confusing to figure out what has been included and what has been missed. Additionally, having the directory structure for the releases as opposed to the individuals branches has proven to be a bit challenging in my mind |
Beta Was this translation helpful? Give feedback.
-
The purpose of this discussion is to establish a roadmap for the future of WDL. First, we should agree on the release strategy. Second, we should decide on which features to include in the next version.
Current State of Affairs
Directory
data typeWhat's Next
On the Oct 25, 2021 governance call, the board voted to proceed with WDL 1.2 that will include
Directory
, Hints, and other new features, but no breaking changes. We will continue to put off2.0
until there is greater certainty of feature stability, in order to avoid the need for3.0
anytime soon.Below are enumerated all the current proposals for new features that we could choose to include in WDL 1.2. I encourage people to comment on which of these features should/shouldn't be in the next release.
runtime
sectionrequirements
section that is equivalent to theruntime
section indevelopment
hints
to 1.2runtime
attributes (RFC: Runtime access to runtime attributes #418)input:
optional in call block, changeinput:
toinput {}
(Simplify call syntax: make 'input:' keyword optional #198)meta
andparameter_meta
sectionsstruct
sNone
as argument to non-optional call input with default (clarify how inputs with defaults are implicitly optional #464)read_boolean
(should read_boolean() convert inputs to lowercase before checking? #494)Map
toStruct
#482)split
function (Proposal:chunk
function, to create subsets of an array #398)contains
function (A contains style function for Array #117, Simple string "contains" checks #133)String
,Array
, andMap
Object
- returntrue
only if the object has a field with the specified namecontains_key
function was proposed forMap
s (map contains_key() function #305)map
function or list comprehensions (engine function to map over an Array #203)values
function (Add a function to get a list of the values from a Map #43)resolve
function (resolve function #426)default
parameter toselect_first
size
function to operate on all collection-typed inputs (Generalizesize
function to operate on any collection-typed input #531)length
function to also operate onMap
(Get length of Map #534)Voting
On the March 10, 2023 governance call, we decided to move forward with a version 1.2 specification and to commence voting on which features would be included. Voting was conducted via Google sheet.
The following features have a majority of votes (at least 5) for inclusion:
Decisions on the following features were deferred until there is a more complete proposal:
Beta Was this translation helpful? Give feedback.
All reactions