Skip to content

systemslab evaluate

Description Render a SystemsLab experiment specification to JSON.
Usagesystemslab evaluate [OPTIONS] <SPEC>

Description

systemslab evaluate renders the provided experiment specification to JSON, without talking to the systemslab server at all.

Experiment Specification

The experiment specification file describes the steps that will be taken to perform the experiment: what jobs are run, what steps each of them runs, and where they can be scheduled. The experiment specification can be written in json, yaml, or jsonnet. Which one is loaded will depend on the extension of the provided file. If the path does not have an extension then yaml will be assumed.

See the experiment specification reference for documentation of the JSON object that the experiment specification file should expand to.

Parameters

Jsonnet experiment specifications allow for parameters to be passed in from the command line when evaluating the specification. This can be done by creating a top-level function in the experiment spec, like so:

jsonnet
function(index, job = 'main') {
  name: 'my-experiment-' + index,
  jobs: {
    [job]: {
      // ...
    }
  }
}

When you then run the command you can set these parameters by passing --param options on the command line:

bash
systemslab submit experiment.jsonnet -p index=1

Arguments without defaults in the top-level function are required and will cause errors if not provided, all others are optional.

By default, all parameters passed in via the command line are strings. You can pass in numbers or booleans by explicitly specifying the parameter type:

bash
systemslab submit experiment.jsonnet -p index:number=1 -p enabled:bool=true

The only valid parameter types are string, number, and bool.

Options

OptionDefaultDescription
-p, --param Pass a parameter to use when evaluating the experiment specification.
--jpath Add an extra include path to use when resolving jsonnet imports.
--jsonnet-max-stack200 Limit the recursion depth that the jsonnet vm is allowed to reach when evaluating jsonnet files.

Common Options

OptionDefaultDescription
--systemslab-url The URL at which to access the systemslab server.
--colorauto Controls when color is used in the output. Possible values are auto, always, and never.
--output-formatlong Output format to use when outputting messages. long will result output designed to be human-readable while short is short output meant to be used within scripts.

Environment Variables

VariableDescription
SYSTEMSLAB_URLSpecify the URL used to contact the SystemsLab server. Equivalent to --systemslab-url.