github cue-lang/cue v0.11.0-alpha.5

pre-release20 hours ago

This release introduces a new toposort evaluator experiment, fixes multiple bugs with the embed experiment, and includes more JSON Schema improvements.

Changes which may break some users are marked below with: ⚠️

Evaluator

A new experiment is introduced via CUE_EXPERIMENT=toposort which enables a more principled ordering of CUE fields as produced by cue export and cue eval. The intention is to ensure the old and new evaluators order fields of structs in the same way, in order to build confidence and ease the transition to the new evaluator. There are still a few wrinkles to work out, and the question of iteration order in comprehensions over structs remains to be tackled. An issue for gathering feedback is available.

CL 1202746 teaches CUE_STATS_FILE to start reporting the evaluator version being used, which is useful information when looking at performance stats.

CL 1203264 fixes a bug where CUE_EXPERIMENT=embed would work when outside of a CUE module, which should not work as it can lead to security risks.

CL 1203267 fixes a bug where CUE_EXPERIMENT=embed would not work with attributes attached to quoted field names.

CL 1203528 fixes a bug where CUE_EXPERIMENT=embed would not work with the cue cmd subcommand at all.

Go API

⚠️ CL 1203193 adds a new experiment via CUE_EXPERIMENT=decodeint64 which causes cue.Value.Decode to default to int64 rather than int when decoding CUE integer values. This ensures consistent behavior with 32-bit architectures.

⚠️ CL 1203192 tweaks the signature of cue.Index so that it accepts int64 as well as int for consistency with 32-bit architectures.

CL 1202744 tweaks cuecontext.EvalVersion so that the zero value is not a valid evaluator version, as that could lead to unintentional behavior.

cmd/go

⚠️ CL 1203289 moves cuepls to cue lsp, enabling users to install one binary rather than two, and avoiding potential version discrepancies.

Encodings

JSON Schema spec compatibility is improved further by fixing a number of bugs and adding missing features.

Full list of changes since v0.11.0-alpha.4

Don't miss a new cue release

NewReleases is sending notifications on new releases.