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

pre-releaseone day ago

This release adds a new cycle algorithm to the new evaluator, removes some long-deprecated Go APIs, and includes multiple improvements to the existing encodings.

Evaluator

CL 1201897 lands a new cycle algorithm in CUE_EXPERIMENT=evalv3, which is much simpler than the old algorithm and is needed to unlock further bug fixes and performance improvements.

Go API

CLs 1201768, 1201933, 1201934, 1201936, and 120193 remove encoding/openapi Go APIs which have been deprecated for some time and already have reasonable alternatives available.

CL 1201962 removes fields from cue/build.Instance and cue/load.Config which have been deprecated and unused for some time.

CL 1201963 removes APIs from encoding/json and encoding/yaml which have been deprecated for some time and already have reasonable alternatives available.

Encodings

CL 1201910 allows configuring how encoding/jsonschema maps URLs to values within a package.

CL 1201935 refactors encoding/openapi so that it can directly use the existing CUE value encoder for JSON, rather than a parallel encoder of CUE syntax trees to JSON which had to be maintained separately.

CLs 1201807, 1201808, 1201824, and 1201826 improve the performance of encoding CUE values to JSON, resulting in as much as a 10x improvement in wall time and memory usage for deeply nested CUE values.

Full list of changes since v0.11.0-alpha.2
  • internal/ci: bump Go and goreleaser for alpha.3 by @mvdan in 5ffd573
  • update dependencies before alpha.3 by @mvdan in 402aeda
  • internal/ci: cue fmt by @rogpeppe in bdab4b2
  • internal/ci: pass access token to releaser step by @rogpeppe in 20d6573
  • internal/ci: rename and clarify the e2e logins.json secret by @mvdan in 992127e
  • internal/cueconfig: note the difference between token expiry fields by @mvdan in 186763c
  • cmd/cue: truncate expiry timestamps to seconds by @mvdan in a3fb8e8
  • internal/ci: use githubactions schema from registry by @rogpeppe in 093a2c6
  • internal/core/adt: new cycle algorithm by @mpvl in 92330b4
  • internal/core/debug: report more structure sharing by @mpvl in a0138fb
  • internal/core/debug: add cycle detector by @mpvl in 06141e4
  • internal/core/adt: bail on empty node by @mpvl in 4140094
  • internal/core/adt: split updateCyclicStatus based on version by @mpvl in bf54346
  • cmd/cue: store token expiry timestamps in UTC in logins.json by @mvdan in 6b73188
  • cmd/cue: test storing access token expiry in login by @mvdan in 25e0884
  • cmd/cue: add more sanity checks for produced logins.json files by @mvdan in 791420a
  • encoding/json,encoding/yaml: remove long deprecated cue.Instance APIs by @mvdan in f0c77ed
  • cue/build,cue/load: remove deprecated fields by @mvdan in 02a694e
  • encoding/openapi: unexport OrderedMap by @mvdan in 9f2c2fe
  • encoding/openapi: remove OrderedMap.Set by @mvdan in 3fb46c3
  • encoding/openapi: marshal JSON via cue.Value.MarshalJSON by @mvdan in e7d9d47
  • encoding/openapi: remove most public API surfacing OrderedMap by @mvdan in 90c9c95
  • encoding/openapi: remove Config.All by @mvdan in b24335b
  • cue: reuse adt.OpContext in Value.structValOpts by @mvdan in 91b12ec
  • internal/core/export: swap sort.Slice APIs for slices.Sort by @mvdan in 0078d26
  • cue: reuse adt.OpContext in MarshalJSON recursion by @mvdan in 9c3e156
  • cue: clarify status of zero Path value by @rogpeppe in 32b169a
  • encoding/jsonschema: allow mapping URLs to values within a package by @rogpeppe in 5cc6175
  • encoding/jsonschema: clearer internals by @rogpeppe in 19eea7f
  • cue: only use internaljson.Marshal where necessary by @mvdan in da2e501
  • cue: use append-like funcs inside Value.MarshalJSON by @mvdan in fed4998
  • cue: recursively marshal JSON values directly by @mvdan in 3f1e72b
  • cue: use unwrapJSONError in the entrypoint API only by @mvdan in 01b0064
  • cue: marshal a Value as JSON null directly by @mvdan in 97f622b
  • internal/core/convert: do not roundtrip MarshalText to JSON by @mvdan in 7ba104c
  • cue: add large Value.MarshalJSON benchmark by @mvdan in b37ab01
  • encoding/openapi: drop use of cue.Runtime from tests by @mvdan in c8b32e9
  • encoding/openapi: drop support for Config.ReferenceFunc by @mvdan in e339345
  • cue: remove unneeded fields from goField by @mvdan in 1b45c99
  • internal/tdtest: use sync.OnceValues by @mvdan in 774e40e
  • all: remove a few unused parameters spotted by unparam by @mvdan in ffafd61

Don't miss a new cue release

NewReleases is sending notifications on new releases.