Download Latest Version cue_v0.14.0_darwin_amd64.tar.gz (8.6 MB)
Email in envelope

Get an email when there's a new version of The CUE Data Constraint Language

Home / v0.13.0
Name Modified Size InfoDownloads / Week
Parent folder
checksums.txt 2025-05-22 582 Bytes
cue_v0.13.0_windows_amd64.zip 2025-05-22 9.2 MB
cue_v0.13.0_windows_arm64.zip 2025-05-22 8.4 MB
cue_v0.13.0_darwin_amd64.tar.gz 2025-05-22 9.2 MB
cue_v0.13.0_darwin_arm64.tar.gz 2025-05-22 8.6 MB
cue_v0.13.0_linux_amd64.tar.gz 2025-05-22 9.0 MB
cue_v0.13.0_linux_arm64.tar.gz 2025-05-22 8.3 MB
README.md 2025-05-22 41.8 kB
v0.13.0 source code.tar.gz 2025-05-22 2.8 MB
v0.13.0 source code.zip 2025-05-22 4.1 MB
Totals: 10 Items   59.7 MB 0

This release finally enables the new evaluator by default -- the culmination of over a year's worth of work!

It also packs in lots of new features, such as support for absolute module packages, dozens of JSON Schema improvements, and a new experimental XML encoding.

Changes which may break some users are marked below with: :warning:

Evaluator

The new evaluator first introduced in v0.9.0 via CUE_EXPERIMENT=evalv3 is now enabled by default! There are no remaining substantial regressions in our test suite, and the Unity corpus is almost entirely working now. Given that the new evaluator fixes dozens of bugs for many users, and is already significantly faster for the majority of CUE users, we believe it is time to turn it on by default.

We will continue to track any remaining issues for the new evaluator via the evalv3 label. If you encounter any regressions, please file a bug report. You can also revert to the old evaluator to temporarily work around bugs via CUE_EXPERIMENT=evalv3=0. See this FAQ page for more information.

We aim to resolve many of these remaining bugs in an upcoming v0.13.1 bugfix release.

An entirely new algorithm for cue trim and tools/trim has been implemented for evalv3, which resolves all known bugs when trimming CUE.

Closedness in evalv3 has been revisited to match the semantics of evalv2 much more closely, while at the same time reducing its overhead for larger configurations. This fixes most "field not allowed" regressions and improves the performance of some configurations by up to 5x. As a result, CUE_DEBUG=openinline is now removed as it is unnecessary.

Performance work for the new evaluator is ongoing; a number of changes in this release led to performance improvements of between 5% and 80% for a variety of projects. For more details, see Marcel's performance update last month.

:warning: The new topological sort algorithm for field ordering has been tweaked to avoid becoming too slow in some cases. This may result in some ordering changes, but we expect them to be relatively small. See the change for more details.

The parser now correctly allows keywords as required field labels, such as if!: _, fixing a discrepancy with the spec.

Filenames beginning with a dot can now be embedded as long as the glob pattern uses an explicit dot, such as @embed(glob="dir/.data_*.json").

:warning: @embed(glob="pattern...") directives whose file globbing results in zero files now result in an error, to avoid situations where a glob pattern silently stops working as intended.

cmd/cue

Initial support for absolute packages is introduced, which allow specifying a remote package at a particular version such as cue export foo.com/data@v1.2.3 or cue vet foo.com/schema@v1.2.3 -d '#schema' data.yaml without requiring a CUE module file locally.

The cue help filetypes logic, written itself in CUE, no longer requires using the evaluator to parse CLI arguments or load CUE packages. This results in significant speed-ups when using the CLI with many inputs.

The new cue refactor imports command rewrites import paths, making it easy to migrate between module locations and major versions.

The new cue mod mirror command copies modules from one registry to another.

cue mod tidy now preserves the top-level custom field as intended.

Hidden files, and files with build tags, should now be correctly filtered when loading a single CUE package.

cue get go should no longer attempt to import types from the Go standard library as CUE, which caused errors.

cue get go no longer fails on Go strings containing certain character escape sequences or non-UTF8 bytes.

cue get go now interprets Go fields with the new json:",omitzero" struct tag as CUE optional fields.

cue cmd now fails if no tasks were actually defined, to avoid situations where a user is misled into thinking a task was defined when it was not.

Encodings

The XML "Koala" encoding proposed in February is now available via an experimental implementation. Try it out via the CLI like cue export xml+koala: data.xml, or via its Go API.

The encoding/jsonschema package gains better support for Kubernetes schemas (CRDs and the core API) although these improvements are as yet only available via the Go API.

:warning: The JSON Schema decoder now imports schema descriptions as CUE doc comments, which required a change to encoding/jsonschema.Config.DefineSchema.

Empty YAML files are now decoded as *null | _ rather than null, allowing them to be unified with struct schemas as if they were an empty struct.

cue exp gengotypes now allows control over how to generate optional CUE fields via e.g. @(,optional=nullable), where the default now is not to use pointers.

:warning: cue exp gengotypes tweaks how it parses @(,type=) options to support composite types such as slices and maps. Note that this means package paths with slashes must be quoted now.

Builtins

:warning: The uuid.ToString function is removed, given that it never did anything useful and could mislead users into thinking it did.

tool/http gained a followRedirects option to let the user disable HTTP redirection.

Go API

:warning: CUE_EXPERIMENT=decodeint64 can no longer be disabled as we consider the experiment finished, having been introduced in CUE v0.11.0.

:warning: The long-deprecated cue.Runtime methods Parse, FromExpr, CompileFile, and CompileExpr are now removed.

cuecontext.EvalDefault still pointed to the old evaluator; it now correctly points to the new evaluator, and follows the CUE_EXPERIMENT=evalv3 flag just like cmd/cue and the rest of the Go API.

Mirroring cuecontext.EvalExperiment, the new cuecontext.EvalStable constant is added to track the latest stable version of the evaluator.

module.SplitPathVersion and module.ParseImportPath have been deprecated in favor of cue/ast.SplitPackageVersion and cue/ast.ParseImportPath package to consolidate the API.

The new mod/modfile.File.ModuleForImportPath function allows resolving a module and default major version for a package without consulting a registry.

The new mod/modregistry.Client.Mirror method implements the logic behind the new cue mod mirror command.

The new mod/module.Version.Compare method is added in favor of module.Sort, which is now deprecated.

Full list of changes since v0.12.0 * internal/ci: bump the pinned Go version for releases by @mvdan in [5ca3b8] * internal/encoding/yaml: drop use of kr/pretty in a test by @mvdan in [e769e4] * internal/core/adt: prevent superfluous circular reference by @mpvl in [9418bb] * internal/core/adt: add tests for Issue 3941 by @mpvl in [938d27] * encoding/json: clarify how to encode a cue.Value to JSON by @mvdan in [3bc578] * internal/core/adt: allow sharing of lets by @mpvl in [9a4431] * internal/core/adt: add tests for Issue 3938 by @mpvl in [3045a8] * internal/core/adt: treat for loop values as non-cyclic by @mpvl in [e15f6e] * internal/core/adt: relax inline cycles by @mpvl in [4a4d9e] * internal/core/adt: disable setting Inline for evalv3 by @mpvl in [406f64] * internal/core/adt: add tests for 3903 by @mpvl in [eb61a8] * internal/core/adt: rewrite comprehension structs for disjuncts by @mpvl in [7a0906] * internal/core/adt: dereference overlay by @mpvl in [894205] * internal/core/adt: add tests for Issue 3935 by @mpvl in [1a2e80] * cue/testdata: add a regression test for [#3570] by @mvdan in [5a9988] * internal/core/adt: mark conjunct for incomplete disjunct by @mpvl in [a3db8b] * internal/core/adt: add tests for 3934 by @mpvl in [d9bfe5] * pkg/encoding/json: fix validator by @mpvl in [17caa7] * pkg/encoding/json: add tests for issue 3932 by @mpvl in [5d863b] * cue: fix path representation for shared nodes by @mpvl in [af8155] * internal/core/adt: partial revert of fixes for 3919 by @mpvl in [e12d54] * internal/core/adt: add tests for 3931 by @mpvl in [cff2d7] * cue/format: port format tests to cuetxtar by @mvdan in [8f841e] * cmd/cue: stop creating cue.mod/pkg and cue.mod/usr in `cue mod init` by @mvdan in [8946dc] * cue/build: standardise on using the Context's loader by @cuematthew in [0a71ca] * cmd/cue: add CUE_EXPERIMENT=cmdreferencepkg by @mvdan in [554893] * pkg: make $id in tasks a reference to a hidden field by @mvdan in [1c27bd] * cmd/cue: add testscript showing input unmarshal behavior with `cue cmd` by @mvdan in [eebcef] * internal/core/adt: fix disjunction state management by @mpvl in [e145a1] * internal/core/adt: add tests for Issue 3925 and 3905 by @mpvl in [38357b] * Revert "internal/core/adt: carry over enclosing scope" by @mvdan in [a6daeb] * cue/testdata: add test cases for [#3924] by @mvdan in [2740b6] * internal/core/adt: avoid finalizing too early by @mpvl in [f87800] * internal/core/adt: add tests for issue 3919 by @mpvl in [47c9e9] * internal/filetypes: remove version from TODO by @rogpeppe in [c456d0] * cmd/cue: document that embedding is limited to files in the same module by @mvdan in [355957] * cmd/cue: update which experiments are on by default by @mvdan in [cfe178] * cue/load: make MultiplePackageError support relative dir paths by @mvdan in [a8f938] * cmd/cue: test the "found packages $X and $Y in $DIR" error message by @mvdan in [4f3a21] * internal/core/adt: fix some embedding issues with closedness by @mpvl in [259762] * internal/core/adt: add tests for 3921 by @mpvl in [b3caad] * internal/encoding/gotypes: handle cyclic types out of the box by @mvdan in [61e0d7] * cmd/cue: don't use os.Getwd at init time by @mvdan in [e7d687] * internal/core/adt: carry over enclosing scope by @mpvl in [7de64e] * internal/core/adt: add tests for 3920 by @mpvl in [0f2695] * encoding/jsonschema: fix x-kubernetes-group-version-kind by @rogpeppe in [9752c3] * internal/core/adt: update environment for disjunctions by @mpvl in [e231c4] * internal/core/adt: add tests for issue 3891 by @mpvl in [bb2204] * all: cue fmt by @mvdan in [5c33e2] * internal/golangorgx: cuelsp: load cue by @cuematthew in [8ca0f5] * internal/golangorgx: cuelsp: remove Go-specific analysis by @cuematthew in [b9acd0] * internal/core/adt: handle vertices properly for comprehensions spanning disjunctions by @mpvl in [56a915] * internal/core/adt: add tests for issue 3899 by @mpvl in [b17be3] * encoding/jsonschema: recognize date-time too by @rogpeppe in [398e8b] * encoding/jsonschema: update format support by @rogpeppe in [59e82a] * encoding/jsonschema: add numeric format to CRD test by @rogpeppe in [4e8dc7] * cmd/cue: move CUE_DEBUG_PARSER_TRACE to CUE_DEBUG=parsertrace by @mvdan in [8fb5fe] * cmd/cue: add testscript for CUE_DEBUG_PARSER_TRACE by @mvdan in [a95cfa] * tools/flow: move CUE_DEBUG_TOOLS_FLOW=1 to CUE_DEBUG=toolsflow=1 by @mvdan in [38b895] * internal/cueexperiment: phase out DecodeInt64 by @mvdan in [3be8e4] * cue/testdata: add regression test for issue 2310 by @mvdan in [8fa107] * cue/errors: use slices.CompactFunc to deduplicate errors by @mvdan in [a1a53e] * encoding/jsonschema: avoid adding unnecessary ellipses by @rogpeppe in [68dad7] * encoding/jsonschema: implement x-kubernetes-group-version-kind by @rogpeppe in [2c01ee] * encoding/jsonschema: add VersionKubernetesAPI by @rogpeppe in [a918c8] * internal/encoding/gotypes: implement optional=nillable by @mvdan in [9ef3b7] * cmd/cue: add more gengotypes test cases for optional=nillable by @mvdan in [defc38] * internal/encoding/gotypes: parse type options as Go expressions by @mvdan in [f2e0b7] * encoding/jsonschema: CRD metadata field is not required by @rogpeppe in [d0f10e] * internal/filetypes: remove dependency on CUE evaluator by @rogpeppe in [050844] * internal/filetypes: generate FromFile by @rogpeppe in [f37ff9] * internal/filetypes: generate toFile implementation by @rogpeppe in [6454ac] * internal/filetypes/internal/genfunc: CUE to Go translation by @rogpeppe in [b3e8da] * internal/filetypes/internal/genfunc: CUE expression simplification by @rogpeppe in [9c267d] * internal/filetypes/internal/genstruct: new package by @rogpeppe in [c65ecb] * internal/filetypes: remove special cases by @rogpeppe in [c7a63a] * internal/core/adt: allow stack-based unrolling of blocking by @mpvl in [5c22dc] * internal/core/adt: add tests for 3899 by @mpvl in [e65a5e] * encoding/jsonschema: CRDs always define resources by @rogpeppe in [dbe261] * encoding/jsonschema: add metadata field to CRD test case by @rogpeppe in [f712e1] * cmd/cue: add a testscript for --inject-vars by @mvdan in [aeb074] * encoding/openapi: add regression test for issue 1643 by @mvdan in [8e4c81] * cue/errors: print relative positions when used as arguments too by @mvdan in [80ff2b] * internal/ci/goreleaser: adjust after evalv3 fix for [#3908] by @mvdan in [6fd7ee] * internal/core/adt: fix default handling by @mpvl in [db98b5] * internal/core/runtime: validate imports in package-less files too by @mvdan in [45bcd3] * cmd/cue: add testscript to ensure we report unused imports by @mvdan in [21d4ba] * cue/testdata: add regression tests for issue 2337 by @mvdan in [415496] * pkg/list: add a regression test for issue 3416 by @mvdan in [b0a531] * cue/testdata: add a regression test for issue 2241 by @mvdan in [17e198] * cue/testdata: add a regression test for issue 2229 by @mvdan in [104863] * pkg/list: add regression test for issue 2594 by @mvdan in [f93b6b] * cue/testdata: add regression test for issue 1867 by @mvdan in [aacdc3] * cue/testdata: remove resolve/002.txtar by @mvdan in [89d131] * all: clean up a number of txtar test skips by @mvdan in [ebf4e6] * cue/testdata: add regression test for issue 2209 by @mvdan in [5db678] * cue/testdata: add a regression test for issue 1640 by @mvdan in [09dee8] * cmd/cue: mention vet-c's three behaviours by @jpluscplusm in [8f552b] * cue/testdata: add a regression test for issue 2526 by @mvdan in [0be3c8] * internal/cuetxtar: support matrix name skips like #skip-v2 by @mvdan in [6204a0] * cue: fix two godoc links by @mvdan in [2aee33] * encoding/xml/koala: update koala header comments by @matts85 in [8a134a] * encoding/jsonschema: fix the tests on Go tip by @mvdan in [3ba376] * cmd/cue: fix up xml+koala testscript to actually test stdin by @mvdan in [a1db0a] * cue/format: add test case for formatting empty and near-empty files by @mvdan in [17317c] * internal/golangorgx: stub out gcimporter by @mvdan in [4b194d] * internal/golangorgx: drop testenv APIs we won't need by @mvdan in [0e10ed] * internal/golangorgx: remove the goroot package by @mvdan in [d3ae2c] * internal/golangorgx: remove the aliases package by @mvdan in [4598c9] * internal/golangorgx: remove refactor/inline by @mvdan in [8e2dd0] * internal/golangorgx: drop util/slices in favor of slices by @mvdan in [4a580a] * internal/encoding/gotypes: don't drop docs for top-level definitions by @mvdan in [4c0c78] * cmd/cue: test that gengotypes keeps top-level definition docs by @mvdan in [daaba5] * internal/filetypes: strict separation of tags vs subsidiary tags logic by @rogpeppe in [cb7a48] * internal/filetypes: regularize Default by @rogpeppe in [ae4ac0] * internal/filetypes: clarify FromFile by @rogpeppe in [7701a8] * internal/filetypes: refactor parseType to parseScope by @rogpeppe in [8240e3] * internal/filetypes: add evaluator mutex by @rogpeppe in [737cd2] * internal/filetypes: consolidation by @rogpeppe in [667575] * encoding/jsonschema: add OpenOnlyWhenExplicit option by @rogpeppe in [d1baad] * internal/encoding/gotypes: analyze all CUE definitions first by @mvdan in [175335] * internal/encoding/gotypes: control optional types via attributes by @mvdan in [8e82e4] * cmd/cue: add gengotypes test cases for the optional attribute option by @mvdan in [a16497] * internal/encoding/gotypes: handle quoted CUE fields correctly by @mvdan in [efd4ad] * internal/core/adt: fix expression comments in SimplifyBounds by @mvdan in [e77a58] * internal/core/adt: avoid apd.Decimal errors in SimplifyBounds by @mvdan in [4a1805] * internal/core/adt: reuse a slice to make copies of the required reqSets by @mvdan in [d3a3b1] * cue/ast/astutil: refactor walkVisitor away by @mvdan in [66cf38] * cmd/cue: add CUE_BENCH to benchmark CLI invocations with Go allocs by @mvdan in [2e8d5a] * internal/ci: flip to using the official curated cue.dev schemas by @myitcv in [a7e97f] * internal/golangorgx: cuelsp: view definitions for cue by @cuematthew in [3478e4] * internal/ci: bump Go and goreleaser for the next alpha release by @mvdan in [d1fb07] * internal/golangorgx: cuelsp: remove unneeded code by @cuematthew in [e223de] * cue/interpreter/embed: fix "glob" typo by @mvdan in [266608] * cue/interpreter/embed: fail when glob pattern has no matches by @rogpeppe in [b6d733] * interpreter/embed: allow glob to match explicit dot files by @rogpeppe in [6741c9] * cmd/cue/cmd: add test case for embedding a pattern with an explicit dot file by @rogpeppe in [572a6c] * pkg/tool/http: allow configuration of following redirects by @myitcv in [acc06c] * cmd/cue: error on useless commands by @myitcv in [4b5dd6] * cmd/cue: remove test files related to old old closedness by @myitcv in [93e82f] * internal/core/adt: cache reqSets in nodeContext by @mpvl in [fac9a3] * internal/core/adt: add benchmark for 3881 by @mpvl in [3eef4d] * internal/core/adt: add stats for new closedness algo by @mpvl in [5f329c] * internal/core/adt: fix Vertex dereferencing for disjunctions by @mpvl in [96e0eb] * internal/core/adt: add tests for 3850 and 3875 by @mpvl in [7cfe77] * internal/core/adt: fix test names by @mpvl in [5dcc76] * internal/core/topsort: prevent duplicates in nodeToStructMeta by @mvdan in [a753c3] * internal/core/adt: remove unused nodeContext fields by @mvdan in [b12e20] * internal/core/adt: show correct path for incomplete values by @mpvl in [e71448] * internal/core/adt: skip work in checkTypos when a vertex has no arcs by @mvdan in [3c149f] * internal/core/adt: reuse a local buffer in checkTypos by @mvdan in [ab8bd4] * internal/golangorgx/gopls: Use the correct error. by @alingse in [19403a] * internal/core/adt: avoid more allocations when LogEval is disabled by @mvdan in [34a512] * internal/core/adt: remove unused code low-hanging fruit by @mvdan in [8fef4d] * cmd/cue: convert examples to 'cue vet -c' by @myitcv in [08c354] * internal/golangorgx/gopls: Get cue lsp to initialize with emacs lsp by @cuematthew in [c54251] * internal/core/adt: do not activate ids for non-definitions by @mpvl in [282440] * internal/core/adt: add tests for 3858 by @mpvl in [eec6a2] * internal/core/adt: reuse reqSets slices via OpContext by @mvdan in [1d028f] * internal/core/adt: prevent logging overhead when disabled by @mvdan in [e77813] * internal/cuedebug: drop openinline flag by @mvdan in [a09a38] * pkg/uuid: remove ToString by @mvdan in [f83618] * cmd/cue: `go get` Go fields with the json omitempty tag as optional by @mvdan in [d9da21] * cmd/cue: add `get go` test case with the new omitzero json tag by @mvdan in [be6c3d] * internal/encoding/yaml: support alias to scalars as map keys by @OmriSteiner in [a6fff2] * cmd/cue: actually update the _gen.go.want gengotypes testscript files by @mvdan in [52d968] * update golang.org/x/... dependencies by @mvdan in [433ac2] * update pelletier/go-toml to drop testify by @mvdan in [9b5b10] * cmd/cue: wire up xml+koala via encoding/xml/koala by @mvdan in [096a11] * internal/encoding/gotypes: generate valid json tags for quoted fields by @trumant in [93c142] * internal/mod/modload: preserve custom struct in module when tidying requirements by @snuxoll in [e05801] * encoding/xml/koala: introduce the first experimental XML encoder by @matts85 in [ebf42e] * update golang.org/x dependencies by @mvdan in [c565c1] * cue/cuecontext: fix EvalDefault to follow the default, add EvalStable by @mvdan in [ad0442] * internal/core/runtime: select evaluator version with specific constants by @mvdan in [1ec46e] * all: do not use Default/Dev/Experiment evaluator versions in tests by @mvdan in [07bccb] * cue/cuecontext: expand TestEvalVersion to test more combinations by @mvdan in [965e7b] * internal/core/adt: fix disjunction corruption issue by @mpvl in [917ae0] * cue/cuecontext: evalv3 is no longer experimental by @myitcv in [8080ec] * internal/core/adt: fix panic due to envDisjunct corruption by @mpvl in [721ca5] * internal/core/adt: disable structure sharing for pending arcs by @mpvl in [4fc579] * internal/core/adt: add tests for Issue 3849 by @mpvl in [6ade30] * internal/core/adt: remove insertArcCC by @mpvl in [665407] * internal/core/adt: inline structs in schema are not closed by default by @mpvl in [4e7564] * internal/core/adt: add test for Issue 3853 by @mpvl in [5348d0] * pkg/internal/builtintest: remove "and X more errors" stripping for evalv3 by @mvdan in [32d040] * internal/core/adt: support Ellipsis in MatchAndInsert by @mpvl in [de69f1] * internal/core/adt: eliminate recursive processing on bottom by @mpvl in [447e98] * internal/core/adt: add test for Issue 3851 by @mpvl in [d58c80] * cmd/cue: re-enable `cue exp gengotypes` testscript by @mvdan in [18b4ba] * internal/core/adt: add missing dereference by @mpvl in [e22ea9] * cue: do not unify "accept" schema with result in UnifyAccept by @mpvl in [ff654d] * cue: prepare TestConjunctDedup for more cases by @mpvl in [2b8258] * cue: use fmt instead of MarhalJSON in TestUnifyAccept by @mpvl in [6912a1] * internal/tdtest: support cuetest.Run by @mpvl in [2402ef] * internal/ci: simplify login to Central Registry by @myitcv in [f4a242] * encoding/jsonschema: clean up TestExtX by @mpvl in [c0fc59] * internal/core/adt: remove diff/todo for fixed issues by @mpvl in [773741] * cue: add missing finalization by @mpvl in [4cbb18] * internal/core/adt: add indirection in some cases by @mpvl in [c7a036] * cmd/cue: fix up `help environment` with new defaults by @mvdan in [481087] * cue: enable even more tests on evalv3 which pass now by @mvdan in [00f7a2] * cue: re-enable tests on evalv3 which succeed now by @mvdan in [bd1839] * internal/core/adt: fix deduping of pattern constraints by @mpvl in [76d6e6] * internal/core/adt: add tests for Issue 3843 by @mpvl in [cf9318] * cue: add test for issue 3826 by @mpvl in [8cd6b7] * internal/core/adt: add tests for Issue 3839 by @mpvl in [a91e7b] * internal/core/adt: correct direction of equivalence set by @mpvl in [760b74] * encoding/jsonschema: add debug test for external tests by @mpvl in [ce10c9] * encoding/jsonschema: move debugging test to separate file by @mpvl in [fc4172] * internal/core/adt: rewrite Environments for disjuncts by @mpvl in [cdfb05] * internal/core/adt: add tests for Issue 3825 by @mpvl in [a16bbf] * internal/core/adt: remove "hole" logic and data structures by @mpvl in [85fb11] * internal/core/adt: set isOuterStruct field by @mpvl in [d13d66] * internal/core/adt: sharpen criteria by @mpvl in [542387] * internal/core/adt: clean up "withinLet" by @mpvl in [7c4b66] * enable CUE_EXPERIMENT=evalv3 by default by @mvdan in [1eccc4] * cmd/cue: prepare testscripts for evalv3 being on by default by @mvdan in [a78b15] * internal/core/adt: drop overlayContext.generation by @mvdan in [dbed3d] * cue: skip two tests failing on evalv3 by @mvdan in [5e5179] * cue/interpreter/wasm: skip tests on evalv3 by @mvdan in [d4dd2c] * internal/core/adt: disable tests on evalv3 where they fail by @mvdan in [588333] * internal/core/adt: finalize in lookup in more cases by @mpvl in [cfbeb4] * internal/core/adt: add tests for 3836 and 3838 by @mpvl in [470a02] * cue/testdata: add regression test for https://cuelang.org/issue/3688 by @myitcv in [72567b] * cue/testdata: add regression test for https://cuelang.org/issue/3672 by @myitcv in [bdeae9] * internal/core/adt: simplify representation of outer scope by @mpvl in [86e62b] * internal/core/adt: reset embedding scopes for subfields by @mpvl in [2cd5ba] * internal/core/adt: add tests for issue 3837 by @mpvl in [413d39] * mod/module: deprecate ParseImportPath by @rogpeppe in [440b32] * cue/load: support specifying an absolute package by @rogpeppe in [ccd5b9] * internal/mod/modload: add ResolveAbsolutePackage by @rogpeppe in [0d32d6] * internal/core/adt: obey internal/core/cuedebug defaults in TestEval by @mvdan in [1a40fd] * internal/mod/modpkgload: add FindPackageLocations by @rogpeppe in [32b845] * cue/ast: add a few ParseImportPath tests by @rogpeppe in [d9aaf0] * mod/modcache: implement FetchFromCache by @rogpeppe in [9bb88b] * internal/filetypes: support richer versions in IsPackage by @rogpeppe in [0105c3] * internal/cuedebug: turn openinline off by default by @mvdan in [b0b604] * internal/core/adt: apply replacements from ancestors by @mpvl in [112c27] * internal/core/adt: set nested groups by @mpvl in [290590] * internal/core/adt: check right Vertex for single-level close by @mpvl in [81ef6b] * internal/core/adt: hoist newGroup logic by @mpvl in [f7095a] * internal/core/adt: add tests for issue 3834 by @mpvl in [c43711] * internal/core/adt: add test for issue 3833 by @mpvl in [93b548] * internal/core/adt: ensure shared nodes are evaluated as per request by @mpvl in [5c06b5] * internal/core/adt: add test for 3835 by @mpvl in [5aea31] * cue/testdata: add regression test for https://cuelang.org/issue/3813 by @myitcv in [7d6fe8] * cue/testdata: add regression test for https://cuelang.org/issue/3805 by @myitcv in [6ae6c9] * internal/core/adt: stop closing after enclosingEmbed has been activated by @mpvl in [e311d4] * internal/core/adt: add another test for issue 3826 by @mpvl in [25f908] * internal/core/adt: fix cycle issue by @mpvl in [359647] * cmd/cue: import non-UTF8 Go string constants as CUE bytes by @mvdan in [7d0404] * cmd/cue: verify the JSON for equivalence in get_go_json_compat by @mvdan in [c65dfa] * cmd/cue: support more escape codes from Go string constants by @mvdan in [f567a0] * cmd/cue: add test case for `get go` with string escape codes by @mvdan in [ce37bb] * internal/core/adt: add tests for issue 3827 by @mpvl in [b75a12] * internal/core/adt: eagerly evaluate let upon lookup by @mpvl in [5414b4] * internal/core/adt: remove use of arcCC by @mpvl in [8f2ae4] * internal/core/adt: conditional typo check by @mpvl in [d541cc] * internal/core/adt: disable structure sharing for non-rooted values by @mpvl in [3a76c5] * internal/core/adt: fix issue with nested lets by @mpvl in [db40a0] * internal/core/adt: add tests for issue 3801 by @mpvl in [947d33] * internal/core/adt: add tests for 3832 by @mpvl in [c0356b] * internal/core/adt: more thorough evaluation for scalar values by @mpvl in [5f12a0] * Revert "core/adt: Add ellipsis in struct to patterns" by @cuematthew in [04fa87] * core/adt: Add ellipsis in struct to patterns by @cuematthew in [2c002a] * internal/core/adt: add tests for issue 3828 by @mpvl in [4c49cd] * internal/core/adt: only reset enclosingEmbed when used by @mpvl in [1e803f] * internal/core/adt: add tests for issue 3826 by @mpvl in [61a8b0] * internal/core/adt: move src check to typocheck by @mpvl in [673d30] * internal/core/adt: add test for issue 3824 by @mpvl in [c47984] * internal/core/adt: add test for issue 3819 by @mpvl in [43ed66] * encoding/yaml: decode empty YAML files as `*null | _` by @mvdan in [fd79ef] * internal/core/adt: carry over more task types over disjunction boundaries by @mpvl in [e56d55] * internal/core/adt: add tests for 3770 by @mpvl in [62a5dd] * internal/core/adt: remove some unnecessary code by @mpvl in [417246] * internal/core/adt: handle nested pending arcs by @mpvl in [93e732] * internal/core/adt: add tests for 3729 by @mpvl in [4510dc] * internal/core/adt: do not finalize before arcs are processed by @mpvl in [cc7556] * internal/core/adt: add test case for order of resolution by @mpvl in [2cd291] * internal/core/adt: add tests for 3780 by @mpvl in [4a800c] * internal/core/adt: add test for evalv3 panic by @mpvl in [0db909] * internal/core/adt: implementation of flat dynamic closedness by @mpvl in [a1cfb1] * internal/encoding/yaml: attach a filename position to an empty file "null" by @mvdan in [1ac74a] * cmd/cue: add a test case for loading an empty YAML file by @mvdan in [91e843] * cmd/cue: reject mod mirror without anything to do by @mvdan in [f1c77f] * cmd/cue: test mod mirror with no arguments nor --mod by @mvdan in [211b1b] * cue: make Value.Default test for whether the vertex was default-able by @cuematthew in [16253d] * cmd/cue: update mod mirror help text by @jpluscplusm in [d1bf8f] * internal/core/adt: set label of current node in Unify by @mpvl in [9e333c] * internal/core/adt: arguments are not closed in definitions by @mpvl in [8bae48] * internal/core/adt: add tests cases for new closedness by @mpvl in [c263e9] * internal/core/adt: add tests for closing of arguments to validators by @mpvl in [bc4f30] * internal/core/adt: add tests for issue 3763 by @mpvl in [847f46] * internal/core/adt: add tests for issue 3784 by @mpvl in [61cb9a] * internal/core/adt: fix update scalar by @mpvl in [28fef9] * internal/core/adt: add test for issue 3633 by @mpvl in [941f89] * internal/ci: simplify and improve clearing of all cache entries by @mvdan in [2fe368] * cmd/cue: skip mkRunE in the commandGroup wrapper by @mvdan in [e91934] * cmd/cue: avoid confusing "unknown flag" errors in cue mod by @mvdan in [6ab9f1] * cmd/cue: deduplicate logic to implement command groups by @mvdan in [078125] * cmd/cue: add more test cases for unknown flags and commands by @mvdan in [5a359d] * cue: Make Value.LookupPath work on patterns for evalv3 by @cuematthew in [cbb205] * encoding/jsonschema: support x-kubernetes-embedded-resource by @rogpeppe in [0cd0a0] * encoding/jsonschema: initial support for Kubernetes CRDs by @rogpeppe in [0dcaff] * cmd/cue: mention --inject-vars/-T flag for injection help by @myitcv in [90c196] * cue/load: respect build tags when determining package by @rogpeppe in [58e09e] * internal/mod/modimports: exclude hidden CUE files by @rogpeppe in [8f2c89] * cmd/cue, internal/mod/modimports: add test cases for issue 3795 by @rogpeppe in [2742ab] * cue/load: use iterator range by @rogpeppe in [9ba418] * mod/module: add Version.Compare by @mvdan in [931fec] * all: start making more use of strings.Cut by @mvdan in [7d6251] * all: unconvert -apply ./... by @mvdan in [cbed85] * internal/ci: update Go and goreleaser by @mvdan in [bebbaa] * core/toposort: stop trying to order structinfos/structlits by @cuematthew in [bc6c48] * internal/cuetxtar: Append \n to generated txtar file content by @cuematthew in [5d2da0] * cmd/cue: adjust the detection of Go standard library packages by @mvdan in [153fc8] * cmd/cue: actually drop unsupported Go std types in `get go` by @mvdan in [97cbf7] * cmd/cue: add testscript reproducing get go issues with std packages by @mvdan in [9a53c8] * internal/_e2e: remove unused CUE_REGISTRY_TOKEN env var by @mvdan in [239f3d] * encoding/jsonschema: delete code for Go 1.22 by @mvdan in [24e90e] * update golang.org/x dependencies by @mvdan in [b6618c] * update various dependencies unlikely to cause breakage by @mvdan in [66f9e7] * all: use a few more newer std APIs by @mvdan in [538fb6] * core/toposort: Do not calculate cycles within an SCC by @cuematthew in [d73e69] * cue/parser: allow `if` as a label for a required field by @haoqixu in [18367a] * encoding/jsonschema: support single schema not at root by @rogpeppe in [cdc412] * cmd/cue: fix refactor imports over multiple modules by @rogpeppe in [7cc1de] * cue.mod: use exp3 curated modules by @myitcv in [fca4a5] * internal/core/adt: fix counter issue by @mpvl in [a0c6df] * internal/core/adt: fix edge case in structural cycles with structure sharing by @mpvl in [966a50] * internal/core/adt: fix structural cycle stack overflow by @mpvl in [a66eaf] * internal/core/adt: remove Inline check by @mpvl in [7bb676] * internal/core/adt: make inline expressions addressable by @mpvl in [35ec59] * encoding/openapi: convert remaining cue->json tests to txtar by @cuematthew in [ba1084] * encoding/openapi: convert test suite to txtar by @cuematthew in [374c59] * internal/core/adt: do not hasNonCycle in one case by @mpvl in [52c02d] * internal/core/adt: refactor unifyNode by @mpvl in [e55c7a] * internal/core/adt: add tests for issue 3634 by @mpvl in [8ed768] * internal/encoding: don't interpret files as UTF8 with the binary encoding by @nichtsundniemand in [0b36c4] * cue/interpreter/embed: remove obsolete TODOs by @mvdan in [858556] * cmd/cue/cmd: show incorrect handling of binary files when embedded by @nichtsundniemand in [073d23] * encoding/jsonschema: pass comments to DefineSchema by @rogpeppe in [880023] * Revert "encoding/jsonschema: pass comments to DefineSchema" by @mvdan in [b6f250] * internal/core/adt: propagate default marker in single nested value by @mpvl in [26a698] * cmd/cue: stop marking the login command as experimental by @mvdan in [324b3d] * internal/core/adt: add tests for issue 3779 by @mpvl in [8b80c3] * cmd/cue: embed support is no longer experimental by @mvdan in [dce7fd] * encoding/jsonschema: pass comments to DefineSchema by @rogpeppe in [7a3708] * cue/parser: allow `for` as label for required field by @haoqixu in [fc8791] * mod/modregistrytest: move from internal/registrytest by @mvdan in [b14cfd] * internal/core/adt: fix FromDef by @mpvl in [df327a] * cmd/cue/cmd: add test for edge case by @mpvl in [587d5a] * internal/core/adt: shorten closeContext graph depth by @mpvl in [b17ea5] * all: start using slices.Backward by @mvdan in [66d4c3] * internal/vcs: use os.CopyFS from Go 1.23 by @mvdan in [873afd] * cue: tweak cue.Value.Decode with Go std changes by @mvdan in [4e0cc4] * internal/core/adt: remove unnecessary clearing of CloseInfo by @mpvl in [3ed6d8] * internal/core/adt: hoist feature checking logic by @mpvl in [ae5a01] * internal/core/adt: do not add arc dependencies for some nodes by @mpvl in [98a3f9] * internal/core/adt: prepare for shortening root by @mpvl in [58b3e7] * internal/core/adt: add test for closeContext graph shortening by @mpvl in [0d33c2] * internal/core/adt: simplify ellipsis logic by @mpvl in [694d29] * internal/core/adt: fix bug when merging closing struct with ellipsis by @mpvl in [782251] * internal/core/adt: add test for issue 3778 by @mpvl in [df049c] * all: use more maps and slices APIs from Go 1.23 by @mvdan in [6a00a1] * core/adt: correct copying of conjuncts in stripNonDefaults by @cuematthew in [15a702] * cmd/cue: don't truncate refactor-imports help text by @jpluscplusm in [9413ce] * encoding/jsonschema: better placement of jsonschema attribute by @rogpeppe in [09effd] * internal/core/adt: bring semantics of top in line with v2 by @mpvl in [960180] * tools/trim: implement trim for evalv3 by @cuematthew in [e3d44f] * tools/trim: prepare for trimv3 by @cuematthew in [13fdb8] * encoding/jsonschema: add test case for if/then/else with $id by @rogpeppe in [29be36] * all: GODEBUG=gotypesalias=1 is on as of go1.23.0 by @mvdan in [0eeb98] * all: start using maps and slices APIs from Go 1.23 by @mvdan in [b34383] * internal/core/adt: fix yield unwinding issue for validators by @mpvl in [34ab13] * internal/core/adt: add tests for 3762 by @mpvl in [71edb9] * internal/core/adt: fix consistency issue for disjunctions by @mpvl in [bb1be0] * internal/core/adt: add tests for 3124 by @mpvl in [53fbe1] * internal/core/adt: remove diff/todo/p1 by @mpvl in [a1be11] * internal/core/adt: improve reference cycle behavior by @mpvl in [67886c] * internal/core/adt: explicitly detect cycle error by @mpvl in [435043] * internal/core/adt: put blocking queue on stack by @mpvl in [313b62] * internal/core/adt: add tests for 3669 and 3737 by @mpvl in [18a066] * internal/core/adt: disable nodeContext.free by @mpvl in [93d4e3] * internal/core/adt: prune recursive processing by @mpvl in [d8d19a] * internal/core/adt: remove noop counter by @mpvl in [3390de] * internal/core/adt: logging improvements by @mpvl in [7b0307] * cmd/cue: update workflow command help text links by @jpluscplusm in [3545df] * cmd/cue: improve CUE example for exp-gengotypes by @jpluscplusm in [8d8a36] * require Go 1.23 or later, test and release with Go 1.24 by @mvdan in [1a8c16] * cue/testdata: add a benchmark test for https://cuelang.org/issue/3514 by @myitcv in [d12c8b] * internal/core/adt: pass and use OpContext to functions using Schema by @mpvl in [f1d39f] * pkg: use adt.Unify instead of Value.Unify by @mpvl in [b71b8c] * internal/encoding/yaml: use adt.Unify instead of Value.Unify by @mpvl in [c9c8cb] * internal/core/adt: avoid crash by @mpvl in [11be03] * internal/core/adt: move cycle state saving logic to Expr by @mpvl in [3e021b] * internal/value: support more types and rename ConvertToContext by @mpvl in [96d9f6] * all: use eval.NewContext when possible by @mpvl in [f4da7a] * internal/core/adt: add Expr method on CallContext by @mpvl in [ee1185] * cmd/cue: mention -c=false in vet's incomplete error by @jpluscplusm in [6fb2a9] * internal/core/adt: recursively resolve pending arcs before lookup by @mpvl in [8d0101] * internal/core/adt: add test for issue 3708 by @mpvl in [7bfa23] * cmd/cue: add experimental warning to gengotypes by @jpluscplusm in [f0ed17] * internal/core/adt: remove GroupUnify mechanism by @mpvl in [ab1e2d] * internal/core/adt: do not carry forward FromEmbed by @mpvl in [455b96] * internal/core/adt: do not carry forward FromDef flag by @mpvl in [3d57ee] * internal/core/adt: use adt.Unify in cue package by @mpvl in [dd9e48] * encoding/openapi: swap sort.Slice for slices.Sort by @mvdan in [1d7f66] * encoding/jsonschema: use a cmp-based stable sort when decoding constraints by @mvdan in [db7289] * internal/envflag: small follow-ups to int and string support by @mvdan in [e6fec6] * internal/core/adt: fix handling of top by @mpvl in [433e3c] * cue: add tests for Unify by @mpvl in [b582d7] * internal/envflag: support int and string flags by @mvdan in [0e42b0] * internal/envflag: skip over empty comma-separated elements by @mvdan in [62ea12] * cmd/cue: implement mod mirror by @rogpeppe in [7d7abf] * mod/modregistry: add Mirror by @rogpeppe in [5d7cdb] * all: use ast.ParseImportPath and ast.ImportPath by @rogpeppe in [d5ab20] * cmd/cue: add `refactor imports` command by @rogpeppe in [8dbff6] * cue/ast: properly deprecate Optional and Token in Fields by @mvdan in [0265d7] * update emicklei/proto and protocolbuffers/txtpbfmt by @mvdan in [278175] * cue: remove more long-deprecated APIs by @mvdan in [2c86de] * cmd/cue: fix typos in cue-help-filetypes by @jpluscplusm in [0a4333] * internal/core/adt: pass CallContext to builtin functions by @mpvl in [599173] * core/adt: Combine Vertex.Structs when inserting Conjunct for evalv3 by @cuematthew in [2d6540] * ast/astutil: make Resolve aware of version suffixes by @rogpeppe in [6a125a] * cue.mod: upgrade to latest GitHub actions curated module by @myitcv in [802d7f] * ast/astutil: add test for resolving imports with major version suffix by @rogpeppe in [5ab455] * mod/modfile: add ModuleForImportPath by @rogpeppe in [b684a5] * mod/modfile: make it an error to have an empty module path by @rogpeppe in [c26976] * mod/module: add explicit test for package path with full version by @rogpeppe in [24cf1f] * internal/core/adt: first step in using CallContext by @mpvl in [5886c4] * internal/core/adt: fix hang on finalization by @mpvl in [d4d20b] * pkg/encoding/json: expand implementation of Validate in place by @mpvl in [87db94] * internal/core/adt: prevent recursion in calls by @mpvl in [16e325] * internal/core/adt: do not count validators as new data by @mpvl in [5b4a02] * internal/core/adt: fix some cycle issues related to validators by @mpvl in [36174e] * pkg/encoding/yaml: hoist validate functionality by @mpvl in [dc3e80] * internal/core/adt: set the parent in UnifyValidator by @mpvl in [0eb023] * internal/core/adt: hoist unifyValidator by @mpvl in [7fd7f6] * internal/core/adt: avoid cycle in debug output by @mpvl in [bd087f] * internal/core/adt: add tests for 3649 by @mpvl in [c63ed2] * internal/core/adt: add more error context in matchN by @mpvl in [950a30] * internal/cmd/cue-ast: add support for ref and file-only by @rogpeppe in [809299] * internal/cueversion: bump LanguageVersion for v0.13 by @mvdan in [8a9427]
Source: README.md, updated 2025-05-22