Follow-up from review on #401 (kit env session replay, #400).
The neutral hybrid/v1 environment block is a flat map of single-line string scalars. kit_spec_env's parser is line-oriented, so a YAML block scalar under environment: never parses as a value (the entry comes out mangled, e.g. a literal |), and the /var/lib/acq/kit-env replay marker on msb is line-oriented on the same assumption.
Today this fails silently. Options:
- Reject explicitly (recommended, YAGNI): make
acq kit validate (and the apply-time parser warning path) flag a non-scalar or block-scalar environment value, so kit authors get a clear error instead of a mangled value.
- Support multiline values: encoded marker format (base64 per value, as
commands[] argv already does) plus parser support for block scalars.
No known kit needs multiline env values, which is why #401 documents them as out of scope.
Follow-up from review on #401 (kit env session replay, #400).
The neutral hybrid/v1
environmentblock is a flat map of single-line string scalars.kit_spec_env's parser is line-oriented, so a YAML block scalar underenvironment:never parses as a value (the entry comes out mangled, e.g. a literal|), and the/var/lib/acq/kit-envreplay marker on msb is line-oriented on the same assumption.Today this fails silently. Options:
acq kit validate(and the apply-time parser warning path) flag a non-scalar or block-scalarenvironmentvalue, so kit authors get a clear error instead of a mangled value.commands[]argv already does) plus parser support for block scalars.No known kit needs multiline env values, which is why #401 documents them as out of scope.