restructuring/fixing the schemes/experiments.json schema and addition of extra_argsto the instances stanza
support of fileless instances( resolves #78), by introducing the extra_args key for the instancesstanza
documentation for fieless instances and the extra_args key
Below are some more details for the first two points:
The extra_args of instances are accessible via the already existing @EXTRA_ARGS@ variable, which only resolved to the extra_args of variants before. Now it resolves to the concatenation of both (possible more, because we can have more than one variant for an experiment)extra_args (from the instance and the variants).
The validation schema for instances in the experiments.yml file can now roughly be expressed as:
if 'generator' in instance:
check syntax for generator instances
if 'extensions' in instance:
check syntax of multiple extension instances
if 'files' in instance:
check syntax of arbitrary file instances
if neither of the above cases:
check syntax for local/remote
(Notice the if-if-construct instead of an if-elif-construct which is due to the fact that jsonschema 7.0 does not currently support if-elifconstructs.)
If an entity fails a oneOf construct, simexpal will now print out the errors for each subschema, e.g,:
the entity
instances:
- repo: local
items:
- name: baz
extra_args: ['some','extra_args']
# 'name' key is missing and 'foo' is an invalid key
- extra_args: ['some','extra_args']
foo: bar
- repo: locjal # typo of local
items:
- instance1
produces the following output when calling a simex command:
This PR contains the following:
schemes/experiments.json
schema and addition ofextra_args
to theinstances
stanzaextra_args
key for theinstances
stanzaextra_args
keyBelow are some more details for the first two points:
The
extra_args
of instances are accessible via the already existing@EXTRA_ARGS@
variable, which only resolved to theextra_args
of variants before. Now it resolves to the concatenation of both (possible more, because we can have more than one variant for an experiment)extra_args
(from the instance and the variants).The validation schema for instances in the
experiments.yml
file can now roughly be expressed as:(Notice the
if-if
-construct instead of anif-elif
-construct which is due to the fact that jsonschema 7.0 does not currently supportif-elif
constructs.)If an entity fails a
oneOf
construct, simexpal will now print out the errors for each subschema, e.g,:the entity
produces the following output when calling a
simex
command: