What's New
Files and Directories
- Added
Directory
type. PR 641 - Added JSON extended file/directory input/output format. [PR 643] (#643)
- Input files and directories should be treated as read-only. PR 642
- Local paths are always used when evaluating input/private/command expressions.
- Clarified the meaning of a remote parent folder for the purposes of localization.
Requirements and Hints
- The
requirements
andhints
sections (#540 and #541) replaceruntime
. - Workflow
hints
section (#543). fpga
requirement and reserved hint for requesting FPGA resources.disks
andgpu
reserved hints for requesting specific resources.- Implicit
task
variable that provides access the actual values ofrequirements
,meta
, andparameter_meta
at runtime.
Struct Improvements
- Structs can now have
meta
andparameter_meta
sections. - Relaxed the requirements on coercing object/map to struct - extra keys are allowed and ignored. Note that this may constitute a breaking change if you rely on a task to fail when coercing an object/map with extra keys.
- Allow conversion between
Struct
types when certain criteria are met.
Standard Library Functions
New
contains_key
: whether a Map or Object contain a specific member. PR 603values
: get the values from aMap
.find
: search for a regular expression in a string.matches
: whether a string match a regular expression.chunk
: split an array into sub-arrays.join_paths
: join two or more paths.contains
: whether an array contains a specified value.
Improved
- Generalized
size
function to take any compound value. - Added optional
default
parameter toselect_first
. - Generalized
length
function to also acceptMap
,Object
, andString
arguments. - Added the
Array[String] keys(Struct|Object)
function variant for getting the member names for a struct or object. - Added parameters to
read_tsv
that enable it to read field names from a header row or anArray[String]
and return anArray[Object]
. PR 627
Other
- Exponentiation operator (
**
). - Multi-line strings. PR 602.
- Clarify that accessing a non-existent member of an object, struct, or call is an error.
- Inputs with defaults are implicitly optional PR 464 by @mlin
input:
is optional in call bodies. PR 524 by @mlin.- The concept of "scoped types", to support the use of object-like values within the
hints
section while still keeping theObject
type as deprecated.
What's Deprecated
runtime
section (userequirements
andhints
instead).- Specifying
allowNestedInputs
in the workflowmeta
section (put it in workflowhints
instead). - The previously allowed behavior implied by setting
allowNestedInputs: true
where required task/subworkflow inputs could be left unsatisfied. Now all inputs either need to have a default value or have their value specified in the call inputs. Only optional task/subworkflow inputs that are not explicitly set in the call inputs may have their value set at runtime if theallow_nested_inputs
hint istrue
.
New Contributors
- @wleepang made their first contribution in #604
- @markjschreiber made their first contribution in #605
Full Changelog: release-1.1.0...release-1.2.0