ecb

ecb (ECMC Configuration Builder, https://github.com/paulscherrerinstitute/ecb) is a C++ YAML validation and rendering tool that can be used as backend for the ecmccfg YAML loaders.

What it is for

  • Validating YAML data against schema definitions
  • Rendering ecmccfg Jinja-style templates without the Python venv pipeline
  • Reading and updating YAML keys (readkey, updatekey) used by loader scripts

How it fits with ecmccfg

ecb is used by loadYamlAxis.cmd, loadYamlPlc.cmd, and loadYamlEnc.cmd when:

epicsEnvSet(ECMC_CFG_TOOL, "ecb")

The ecb module startup file sets this automatically.

ecmccfg still provides schema and template files (for example ecbSchema.json, axis_main.jinja2, plc.jinja2); ecb is the validation/rendering engine.

Notes

  • Default backend remains jinja if ECMC_CFG_TOOL is not set to ecb.
  • Using ecb avoids Python venv/pip dependency during YAML parsing.
  • ecb supports the subset of Jinja syntax needed by ecmccfg templates (implemented via Inja, with ecb-specific compatibility handling).
  • For CLI details and schema behavior, see the ecb repository documentation.