eunice

introhow it workscase studieslanguagesissuesblog

The following specifies what is supported in Eunice YAML.

Other mapping keys not specified can be included and should be preserved by Eunice.

identifiers

An item identifier is specified with a scalar or the value of mapping key "id".

item 1 id: item 1

Identifiers need to be unique within at least the scope of a sequence (independent) or sequence of sequences (stack) so dependencies can be resolved unambiguously.

dependencies

Dependencies are specified in the value of mapping key "dependsUpon".

id: item 1 dependsUpon: item 2

The value of "dependsUpon" can be a sequence of multiple item identifiers.

id: item 1 dependsUpon: [item 2, item 3]

The value or sequence of "dependsUpon" can also contain a mapping with keys of id and items. This specifies a dependency on a nested / child item.

id: item 1 dependsUpon: id: item 2 items: child of item 2

The default behavior of dependency resolution is to ignore child items of an item that isn't specified in the dependency. To resolve dependencies inside an item regardless of its identifier specify true for the mapping key "dependencyPermeable".

id: item 1 dependsUpon: child of item 2 id: item 2 dependencyPermeable: true items: child of item 2

independent items

A sequence specifies items intended to be independent of each other.

[left item, right item]

stacked items

A sequence of item sequences specifies a stack of items.

- [upper left item, upper right item] - [lower left item, lower right item]

nested / child items

The value of mapping key "items" is used to nest child items within an item.

id: parent item items: child item

The value can be a scalar identifier, a mapping of key "id", a sequence of independent items or a sequence of item sequences in a stack (the latter is shown below).

id: parent item items: - [upper left child item, upper child right item] - [lower left child item, lower child right item]