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:
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.
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")
.
@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/[email protected]
or cue vet foo.com/[email protected] -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.
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.
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
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
CUE_EXPERIMENT=decodeint64
can no longer be disabled as we consider the experiment finished, having been introduced in CUE v0.11.0.
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 5ca3b8f
- internal/encoding/yaml: drop use of kr/pretty in a test by @mvdan in e769e47
- internal/core/adt: prevent superfluous circular reference by @mpvl in 9418bb0
- internal/core/adt: add tests for Issue 3941 by @mpvl in 938d270
- encoding/json: clarify how to encode a cue.Value to JSON by @mvdan in 3bc5784
- internal/core/adt: allow sharing of lets by @mpvl in 9a44314
- internal/core/adt: add tests for Issue 3938 by @mpvl in 3045a88
- internal/core/adt: treat for loop values as non-cyclic by @mpvl in e15f6e4
- internal/core/adt: relax inline cycles by @mpvl in 4a4d9ef
- internal/core/adt: disable setting Inline for evalv3 by @mpvl in 406f64c
- internal/core/adt: add tests for 3903 by @mpvl in eb61a84
- internal/core/adt: rewrite comprehension structs for disjuncts by @mpvl in 7a0906e
- internal/core/adt: dereference overlay by @mpvl in 894205c
- internal/core/adt: add tests for Issue 3935 by @mpvl in 1a2e80e
- cue/testdata: add a regression test for #3570 by @mvdan in 5a99880
- internal/core/adt: mark conjunct for incomplete disjunct by @mpvl in a3db8b8
- internal/core/adt: add tests for 3934 by @mpvl in d9bfe59
- pkg/encoding/json: fix validator by @mpvl in 17caa72
- pkg/encoding/json: add tests for issue 3932 by @mpvl in 5d863b6
- cue: fix path representation for shared nodes by @mpvl in af81550
- internal/core/adt: partial revert of fixes for 3919 by @mpvl in e12d544
- internal/core/adt: add tests for 3931 by @mpvl in cff2d7e
- cue/format: port format tests to cuetxtar by @mvdan in 8f841ee
- cmd/cue: stop creating cue.mod/pkg and cue.mod/usr in
cue mod init
by @mvdan in 8946dc9 - cue/build: standardise on using the Context's loader by @cuematthew in 0a71cae
- cmd/cue: add CUE_EXPERIMENT=cmdreferencepkg by @mvdan in 5548932
- pkg: make $id in tasks a reference to a hidden field by @mvdan in 1c27bdb
- cmd/cue: add testscript showing input unmarshal behavior with
cue cmd
by @mvdan in eebcefc - internal/core/adt: fix disjunction state management by @mpvl in e145a14
- internal/core/adt: add tests for Issue 3925 and 3905 by @mpvl in 38357b7
- Revert "internal/core/adt: carry over enclosing scope" by @mvdan in a6daeb9
- cue/testdata: add test cases for #3924 by @mvdan in 2740b68
- internal/core/adt: avoid finalizing too early by @mpvl in f87800d
- internal/core/adt: add tests for issue 3919 by @mpvl in 47c9e99
- internal/filetypes: remove version from TODO by @rogpeppe in c456d08
- cmd/cue: document that embedding is limited to files in the same module by @mvdan in 3559578
- cmd/cue: update which experiments are on by default by @mvdan in cfe1783
- cue/load: make MultiplePackageError support relative dir paths by @mvdan in a8f9383
- cmd/cue: test the "found packages $X and $Y in $DIR" error message by @mvdan in 4f3a215
- internal/core/adt: fix some embedding issues with closedness by @mpvl in 2597621
- internal/core/adt: add tests for 3921 by @mpvl in b3caad3
- internal/encoding/gotypes: handle cyclic types out of the box by @mvdan in 61e0d7f
- cmd/cue: don't use os.Getwd at init time by @mvdan in e7d687f
- internal/core/adt: carry over enclosing scope by @mpvl in 7de64e8
- internal/core/adt: add tests for 3920 by @mpvl in 0f26957
- encoding/jsonschema: fix x-kubernetes-group-version-kind by @rogpeppe in 9752c3a
- internal/core/adt: update environment for disjunctions by @mpvl in e231c49
- internal/core/adt: add tests for issue 3891 by @mpvl in bb2204f
- all: cue fmt by @mvdan in 5c33e24
- internal/golangorgx: cuelsp: load cue by @cuematthew in 8ca0f5b
- internal/golangorgx: cuelsp: remove Go-specific analysis by @cuematthew in b9acd04
- internal/core/adt: handle vertices properly for comprehensions spanning disjunctions by @mpvl in 56a915b
- internal/core/adt: add tests for issue 3899 by @mpvl in b17be30
- encoding/jsonschema: recognize date-time too by @rogpeppe in 398e8be
- encoding/jsonschema: update format support by @rogpeppe in 59e82a7
- encoding/jsonschema: add numeric format to CRD test by @rogpeppe in 4e8dc78
- cmd/cue: move CUE_DEBUG_PARSER_TRACE to CUE_DEBUG=parsertrace by @mvdan in 8fb5fea
- cmd/cue: add testscript for CUE_DEBUG_PARSER_TRACE by @mvdan in a95cfa8
- tools/flow: move CUE_DEBUG_TOOLS_FLOW=1 to CUE_DEBUG=toolsflow=1 by @mvdan in 38b8955
- internal/cueexperiment: phase out DecodeInt64 by @mvdan in 3be8e48
- cue/testdata: add regression test for issue 2310 by @mvdan in 8fa1079
- cue/errors: use slices.CompactFunc to deduplicate errors by @mvdan in a1a53e5
- encoding/jsonschema: avoid adding unnecessary ellipses by @rogpeppe in 68dad74
- encoding/jsonschema: implement x-kubernetes-group-version-kind by @rogpeppe in 2c01ee5
- encoding/jsonschema: add VersionKubernetesAPI by @rogpeppe in a918c8b
- internal/encoding/gotypes: implement optional=nillable by @mvdan in 9ef3b70
- cmd/cue: add more gengotypes test cases for optional=nillable by @mvdan in defc384
- internal/encoding/gotypes: parse type options as Go expressions by @mvdan in f2e0b7e
- encoding/jsonschema: CRD metadata field is not required by @rogpeppe in d0f10ea
- internal/filetypes: remove dependency on CUE evaluator by @rogpeppe in 050844f
- internal/filetypes: generate FromFile by @rogpeppe in f37ff95
- internal/filetypes: generate toFile implementation by @rogpeppe in 6454acb
- internal/filetypes/internal/genfunc: CUE to Go translation by @rogpeppe in b3e8da8
- internal/filetypes/internal/genfunc: CUE expression simplification by @rogpeppe in 9c267d8
- internal/filetypes/internal/genstruct: new package by @rogpeppe in c65ecb4
- internal/filetypes: remove special cases by @rogpeppe in c7a63ad
- internal/core/adt: allow stack-based unrolling of blocking by @mpvl in 5c22dc8
- internal/core/adt: add tests for 3899 by @mpvl in e65a5e0
- encoding/jsonschema: CRDs always define resources by @rogpeppe in dbe2611
- encoding/jsonschema: add metadata field to CRD test case by @rogpeppe in f712e19
- cmd/cue: add a testscript for --inject-vars by @mvdan in aeb0747
- encoding/openapi: add regression test for issue 1643 by @mvdan in 8e4c818
- cue/errors: print relative positions when used as arguments too by @mvdan in 80ff2bd
- internal/ci/goreleaser: adjust after evalv3 fix for #3908 by @mvdan in 6fd7ee4
- internal/core/adt: fix default handling by @mpvl in db98b5f
- internal/core/runtime: validate imports in package-less files too by @mvdan in 45bcd34
- cmd/cue: add testscript to ensure we report unused imports by @mvdan in 21d4ba7
- cue/testdata: add regression tests for issue 2337 by @mvdan in 4154968
- pkg/list: add a regression test for issue 3416 by @mvdan in b0a5318
- cue/testdata: add a regression test for issue 2241 by @mvdan in 17e198c
- cue/testdata: add a regression test for issue 2229 by @mvdan in 1048634
- pkg/list: add regression test for issue 2594 by @mvdan in f93b6b9
- cue/testdata: add regression test for issue 1867 by @mvdan in aacdc3b
- cue/testdata: remove resolve/002.txtar by @mvdan in 89d1313
- all: clean up a number of txtar test skips by @mvdan in ebf4e65
- cue/testdata: add regression test for issue 2209 by @mvdan in 5db678d
- cue/testdata: add a regression test for issue 1640 by @mvdan in 09dee80
- cmd/cue: mention vet-c's three behaviours by @jpluscplusm in 8f552be
- cue/testdata: add a regression test for issue 2526 by @mvdan in 0be3c85
- internal/cuetxtar: support matrix name skips like #skip-v2 by @mvdan in 6204a0a
- cue: fix two godoc links by @mvdan in 2aee339
- encoding/xml/koala: update koala header comments by @matts85 in 8a134a3
- encoding/jsonschema: fix the tests on Go tip by @mvdan in 3ba376f
- cmd/cue: fix up xml+koala testscript to actually test stdin by @mvdan in a1db0ad
- cue/format: add test case for formatting empty and near-empty files by @mvdan in 17317ca
- internal/golangorgx: stub out gcimporter by @mvdan in 4b194d7
- internal/golangorgx: drop testenv APIs we won't need by @mvdan in 0e10ed9
- internal/golangorgx: remove the goroot package by @mvdan in d3ae2ca
- internal/golangorgx: remove the aliases package by @mvdan in 4598c91
- internal/golangorgx: remove refactor/inline by @mvdan in 8e2dd0c
- internal/golangorgx: drop util/slices in favor of slices by @mvdan in 4a580ad
- internal/encoding/gotypes: don't drop docs for top-level definitions by @mvdan in 4c0c780
- cmd/cue: test that gengotypes keeps top-level definition docs by @mvdan in daaba58
- internal/filetypes: strict separation of tags vs subsidiary tags logic by @rogpeppe in cb7a48c
- internal/filetypes: regularize Default by @rogpeppe in ae4ac04
- internal/filetypes: clarify FromFile by @rogpeppe in 7701a87
- internal/filetypes: refactor parseType to parseScope by @rogpeppe in 8240e3c
- internal/filetypes: add evaluator mutex by @rogpeppe in 737cd20
- internal/filetypes: consolidation by @rogpeppe in 667575a
- encoding/jsonschema: add OpenOnlyWhenExplicit option by @rogpeppe in d1baad4
- internal/encoding/gotypes: analyze all CUE definitions first by @mvdan in 1753350
- internal/encoding/gotypes: control optional types via attributes by @mvdan in 8e82e47
- cmd/cue: add gengotypes test cases for the optional attribute option by @mvdan in a164970
- internal/encoding/gotypes: handle quoted CUE fields correctly by @mvdan in efd4ad1
- internal/core/adt: fix expression comments in SimplifyBounds by @mvdan in e77a582
- internal/core/adt: avoid apd.Decimal errors in SimplifyBounds by @mvdan in 4a1805a
- internal/core/adt: reuse a slice to make copies of the required reqSets by @mvdan in d3a3b16
- cue/ast/astutil: refactor walkVisitor away by @mvdan in 66cf387
- cmd/cue: add CUE_BENCH to benchmark CLI invocations with Go allocs by @mvdan in 2e8d5a7
- internal/ci: flip to using the official curated cue.dev schemas by @myitcv in a7e97fe
- internal/golangorgx: cuelsp: view definitions for cue by @cuematthew in 3478e43
- internal/ci: bump Go and goreleaser for the next alpha release by @mvdan in d1fb074
- internal/golangorgx: cuelsp: remove unneeded code by @cuematthew in e223de9
- cue/interpreter/embed: fix "glob" typo by @mvdan in 2666081
- cue/interpreter/embed: fail when glob pattern has no matches by @rogpeppe in b6d7332
- interpreter/embed: allow glob to match explicit dot files by @rogpeppe in 6741c90
- cmd/cue/cmd: add test case for embedding a pattern with an explicit dot file by @rogpeppe in 572a6cc
- pkg/tool/http: allow configuration of following redirects by @myitcv in acc06c5
- cmd/cue: error on useless commands by @myitcv in 4b5dd6b
- cmd/cue: remove test files related to old old closedness by @myitcv in 93e82f2
- internal/core/adt: cache reqSets in nodeContext by @mpvl in fac9a30
- internal/core/adt: add benchmark for 3881 by @mpvl in 3eef4dd
- internal/core/adt: add stats for new closedness algo by @mpvl in 5f329ce
- internal/core/adt: fix Vertex dereferencing for disjunctions by @mpvl in 96e0ebc
- internal/core/adt: add tests for 3850 and 3875 by @mpvl in 7cfe774
- internal/core/adt: fix test names by @mpvl in 5dcc768
- internal/core/topsort: prevent duplicates in nodeToStructMeta by @mvdan in a753c37
- internal/core/adt: remove unused nodeContext fields by @mvdan in b12e201
- internal/core/adt: show correct path for incomplete values by @mpvl in e714489
- internal/core/adt: skip work in checkTypos when a vertex has no arcs by @mvdan in 3c149f1
- internal/core/adt: reuse a local buffer in checkTypos by @mvdan in ab8bd45
- internal/golangorgx/gopls: Use the correct error. by @alingse in 19403a4
- internal/core/adt: avoid more allocations when LogEval is disabled by @mvdan in 34a512f
- internal/core/adt: remove unused code low-hanging fruit by @mvdan in 8fef4d3
- cmd/cue: convert examples to 'cue vet -c' by @myitcv in 08c3542
- internal/golangorgx/gopls: Get cue lsp to initialize with emacs lsp by @cuematthew in c54251d
- internal/core/adt: do not activate ids for non-definitions by @mpvl in 2824405
- internal/core/adt: add tests for 3858 by @mpvl in eec6a2a
- internal/core/adt: reuse reqSets slices via OpContext by @mvdan in 1d028fc
- internal/core/adt: prevent logging overhead when disabled by @mvdan in e778137
- internal/cuedebug: drop openinline flag by @mvdan in a09a38b
- pkg/uuid: remove ToString by @mvdan in f836184
- cmd/cue:
go get
Go fields with the json omitempty tag as optional by @mvdan in d9da212 - cmd/cue: add
get go
test case with the new omitzero json tag by @mvdan in be6c3db - internal/encoding/yaml: support alias to scalars as map keys by @OmriSteiner in a6fff27
- cmd/cue: actually update the _gen.go.want gengotypes testscript files by @mvdan in 52d9689
- update golang.org/x/... dependencies by @mvdan in 433ac2c
- update pelletier/go-toml to drop testify by @mvdan in 9b5b10f
- cmd/cue: wire up xml+koala via encoding/xml/koala by @mvdan in 096a114
- internal/encoding/gotypes: generate valid json tags for quoted fields by @trumant in 93c1421
- internal/mod/modload: preserve custom struct in module when tidying requirements by @snuxoll in e058014
- encoding/xml/koala: introduce the first experimental XML encoder by @matts85 in ebf42e5
- update golang.org/x dependencies by @mvdan in c565c1d
- cue/cuecontext: fix EvalDefault to follow the default, add EvalStable by @mvdan in ad0442b
- internal/core/runtime: select evaluator version with specific constants by @mvdan in 1ec46e7
- all: do not use Default/Dev/Experiment evaluator versions in tests by @mvdan in 07bccba
- cue/cuecontext: expand TestEvalVersion to test more combinations by @mvdan in 965e7b1
- internal/core/adt: fix disjunction corruption issue by @mpvl in 917ae0d
- cue/cuecontext: evalv3 is no longer experimental by @myitcv in 8080ec5
- internal/core/adt: fix panic due to envDisjunct corruption by @mpvl in 721ca5d
- internal/core/adt: disable structure sharing for pending arcs by @mpvl in 4fc579c
- internal/core/adt: add tests for Issue 3849 by @mpvl in 6ade302
- internal/core/adt: remove insertArcCC by @mpvl in 6654071
- internal/core/adt: inline structs in schema are not closed by default by @mpvl in 4e7564e
- internal/core/adt: add test for Issue 3853 by @mpvl in 5348d04
- pkg/internal/builtintest: remove "and X more errors" stripping for evalv3 by @mvdan in 32d0400
- internal/core/adt: support Ellipsis in MatchAndInsert by @mpvl in de69f12
- internal/core/adt: eliminate recursive processing on bottom by @mpvl in 447e98d
- internal/core/adt: add test for Issue 3851 by @mpvl in d58c804
- cmd/cue: re-enable
cue exp gengotypes
testscript by @mvdan in 18b4ba9 - internal/core/adt: add missing dereference by @mpvl in e22ea96
- cue: do not unify "accept" schema with result in UnifyAccept by @mpvl in ff654dc
- cue: prepare TestConjunctDedup for more cases by @mpvl in 2b82584
- cue: use fmt instead of MarhalJSON in TestUnifyAccept by @mpvl in 6912a11
- internal/tdtest: support cuetest.Run by @mpvl in 2402ef3
- internal/ci: simplify login to Central Registry by @myitcv in f4a2424
- encoding/jsonschema: clean up TestExtX by @mpvl in c0fc59b
- internal/core/adt: remove diff/todo for fixed issues by @mpvl in 773741f
- cue: add missing finalization by @mpvl in 4cbb180
- internal/core/adt: add indirection in some cases by @mpvl in c7a0369
- cmd/cue: fix up
help environment
with new defaults by @mvdan in 4810870 - cue: enable even more tests on evalv3 which pass now by @mvdan in 00f7a21
- cue: re-enable tests on evalv3 which succeed now by @mvdan in bd1839a
- internal/core/adt: fix deduping of pattern constraints by @mpvl in 76d6e68
- internal/core/adt: add tests for Issue 3843 by @mpvl in cf93185
- cue: add test for issue 3826 by @mpvl in 8cd6b71
- internal/core/adt: add tests for Issue 3839 by @mpvl in a91e7bf
- internal/core/adt: correct direction of equivalence set by @mpvl in 760b744
- encoding/jsonschema: add debug test for external tests by @mpvl in ce10c91
- encoding/jsonschema: move debugging test to separate file by @mpvl in fc4172f
- internal/core/adt: rewrite Environments for disjuncts by @mpvl in cdfb056
- internal/core/adt: add tests for Issue 3825 by @mpvl in a16bbf7
- internal/core/adt: remove "hole" logic and data structures by @mpvl in 85fb117
- internal/core/adt: set isOuterStruct field by @mpvl in d13d661
- internal/core/adt: sharpen criteria by @mpvl in 5423873
- internal/core/adt: clean up "withinLet" by @mpvl in 7c4b66d
- enable CUE_EXPERIMENT=evalv3 by default by @mvdan in 1eccc46
- cmd/cue: prepare testscripts for evalv3 being on by default by @mvdan in a78b158
- internal/core/adt: drop overlayContext.generation by @mvdan in dbed3d2
- cue: skip two tests failing on evalv3 by @mvdan in 5e5179c
- cue/interpreter/wasm: skip tests on evalv3 by @mvdan in d4dd2ce
- internal/core/adt: disable tests on evalv3 where they fail by @mvdan in 5883337
- internal/core/adt: finalize in lookup in more cases by @mpvl in cfbeb48
- internal/core/adt: add tests for 3836 and 3838 by @mpvl in 470a02a
- cue/testdata: add regression test for https://cuelang.org/issue/3688 by @myitcv in 72567b9
- cue/testdata: add regression test for https://cuelang.org/issue/3672 by @myitcv in bdeae96
- internal/core/adt: simplify representation of outer scope by @mpvl in 86e62b2
- internal/core/adt: reset embedding scopes for subfields by @mpvl in 2cd5ba6
- internal/core/adt: add tests for issue 3837 by @mpvl in 413d39a
- mod/module: deprecate ParseImportPath by @rogpeppe in 440b32c
- cue/load: support specifying an absolute package by @rogpeppe in ccd5b92
- internal/mod/modload: add ResolveAbsolutePackage by @rogpeppe in 0d32d6e
- internal/core/adt: obey internal/core/cuedebug defaults in TestEval by @mvdan in 1a40fd4
- internal/mod/modpkgload: add FindPackageLocations by @rogpeppe in 32b845b
- cue/ast: add a few ParseImportPath tests by @rogpeppe in d9aaf0a
- mod/modcache: implement FetchFromCache by @rogpeppe in 9bb88b9
- internal/filetypes: support richer versions in IsPackage by @rogpeppe in 0105c3f
- internal/cuedebug: turn openinline off by default by @mvdan in b0b6049
- internal/core/adt: apply replacements from ancestors by @mpvl in 112c279
- internal/core/adt: set nested groups by @mpvl in 290590f
- internal/core/adt: check right Vertex for single-level close by @mpvl in 81ef6bd
- internal/core/adt: hoist newGroup logic by @mpvl in f7095a9
- internal/core/adt: add tests for issue 3834 by @mpvl in c437118
- internal/core/adt: add test for issue 3833 by @mpvl in 93b548d
- internal/core/adt: ensure shared nodes are evaluated as per request by @mpvl in 5c06b58
- internal/core/adt: add test for 3835 by @mpvl in 5aea31b
- cue/testdata: add regression test for https://cuelang.org/issue/3813 by @myitcv in 7d6fe86
- cue/testdata: add regression test for https://cuelang.org/issue/3805 by @myitcv in 6ae6c99
- internal/core/adt: stop closing after enclosingEmbed has been activated by @mpvl in e311d45
- internal/core/adt: add another test for issue 3826 by @mpvl in 25f9087
- internal/core/adt: fix cycle issue by @mpvl in 3596477
- cmd/cue: import non-UTF8 Go string constants as CUE bytes by @mvdan in 7d0404a
- cmd/cue: verify the JSON for equivalence in get_go_json_compat by @mvdan in c65dfa3
- cmd/cue: support more escape codes from Go string constants by @mvdan in f567a0c
- cmd/cue: add test case for
get go
with string escape codes by @mvdan in ce37bb5 - internal/core/adt: add tests for issue 3827 by @mpvl in b75a12c
- internal/core/adt: eagerly evaluate let upon lookup by @mpvl in 5414b41
- internal/core/adt: remove use of arcCC by @mpvl in 8f2ae49
- internal/core/adt: conditional typo check by @mpvl in d541cce
- internal/core/adt: disable structure sharing for non-rooted values by @mpvl in 3a76c5c
- internal/core/adt: fix issue with nested lets by @mpvl in db40a06
- internal/core/adt: add tests for issue 3801 by @mpvl in 947d33f
- internal/core/adt: add tests for 3832 by @mpvl in c0356be
- internal/core/adt: more thorough evaluation for scalar values by @mpvl in 5f12a04
- Revert "core/adt: Add ellipsis in struct to patterns" by @cuematthew in 04fa872
- core/adt: Add ellipsis in struct to patterns by @cuematthew in 2c002ae
- internal/core/adt: add tests for issue 3828 by @mpvl in 4c49cd4
- internal/core/adt: only reset enclosingEmbed when used by @mpvl in 1e803fa
- internal/core/adt: add tests for issue 3826 by @mpvl in 61a8b03
- internal/core/adt: move src check to typocheck by @mpvl in 673d30f
- internal/core/adt: add test for issue 3824 by @mpvl in c479844
- internal/core/adt: add test for issue 3819 by @mpvl in 43ed667
- encoding/yaml: decode empty YAML files as
*null | _
by @mvdan in fd79eff - internal/core/adt: carry over more task types over disjunction boundaries by @mpvl in e56d550
- internal/core/adt: add tests for 3770 by @mpvl in 62a5dd0
- internal/core/adt: remove some unnecessary code by @mpvl in 4172469
- internal/core/adt: handle nested pending arcs by @mpvl in 93e7321
- internal/core/adt: add tests for 3729 by @mpvl in 4510dcb
- internal/core/adt: do not finalize before arcs are processed by @mpvl in cc75560
- internal/core/adt: add test case for order of resolution by @mpvl in 2cd2912
- internal/core/adt: add tests for 3780 by @mpvl in 4a800c8
- internal/core/adt: add test for evalv3 panic by @mpvl in 0db9094
- internal/core/adt: implementation of flat dynamic closedness by @mpvl in a1cfb1c
- internal/encoding/yaml: attach a filename position to an empty file "null" by @mvdan in 1ac74ac
- cmd/cue: add a test case for loading an empty YAML file by @mvdan in 91e843b
- cmd/cue: reject mod mirror without anything to do by @mvdan in f1c77f6
- cmd/cue: test mod mirror with no arguments nor --mod by @mvdan in 211b1b0
- cue: make Value.Default test for whether the vertex was default-able by @cuematthew in 16253d8
- cmd/cue: update mod mirror help text by @jpluscplusm in d1bf8fe
- internal/core/adt: set label of current node in Unify by @mpvl in 9e333c6
- internal/core/adt: arguments are not closed in definitions by @mpvl in 8bae48c
- internal/core/adt: add tests cases for new closedness by @mpvl in c263e98
- internal/core/adt: add tests for closing of arguments to validators by @mpvl in bc4f30d
- internal/core/adt: add tests for issue 3763 by @mpvl in 847f46f
- internal/core/adt: add tests for issue 3784 by @mpvl in 61cb9a2
- internal/core/adt: fix update scalar by @mpvl in 28fef96
- internal/core/adt: add test for issue 3633 by @mpvl in 941f898
- internal/ci: simplify and improve clearing of all cache entries by @mvdan in 2fe368e
- cmd/cue: skip mkRunE in the commandGroup wrapper by @mvdan in e919342
- cmd/cue: avoid confusing "unknown flag" errors in cue mod by @mvdan in 6ab9f11
- cmd/cue: deduplicate logic to implement command groups by @mvdan in 078125e
- cmd/cue: add more test cases for unknown flags and commands by @mvdan in 5a359d5
- cue: Make Value.LookupPath work on patterns for evalv3 by @cuematthew in cbb205e
- encoding/jsonschema: support x-kubernetes-embedded-resource by @rogpeppe in 0cd0a0c
- encoding/jsonschema: initial support for Kubernetes CRDs by @rogpeppe in 0dcaff5
- cmd/cue: mention --inject-vars/-T flag for injection help by @myitcv in 90c1965
- cue/load: respect build tags when determining package by @rogpeppe in 58e09ee
- internal/mod/modimports: exclude hidden CUE files by @rogpeppe in 8f2c89c
- cmd/cue, internal/mod/modimports: add test cases for issue 3795 by @rogpeppe in 2742aba
- cue/load: use iterator range by @rogpeppe in 9ba4189
- mod/module: add Version.Compare by @mvdan in 931fecb
- all: start making more use of strings.Cut by @mvdan in 7d62514
- all: unconvert -apply ./... by @mvdan in cbed854
- internal/ci: update Go and goreleaser by @mvdan in bebbaa9
- core/toposort: stop trying to order structinfos/structlits by @cuematthew in bc6c485
- internal/cuetxtar: Append \n to generated txtar file content by @cuematthew in 5d2da07
- cmd/cue: adjust the detection of Go standard library packages by @mvdan in 153fc8a
- cmd/cue: actually drop unsupported Go std types in
get go
by @mvdan in 97cbf7e - cmd/cue: add testscript reproducing get go issues with std packages by @mvdan in 9a53c81
- internal/_e2e: remove unused CUE_REGISTRY_TOKEN env var by @mvdan in 239f3d3
- encoding/jsonschema: delete code for Go 1.22 by @mvdan in 24e90ed
- update golang.org/x dependencies by @mvdan in b6618cc
- update various dependencies unlikely to cause breakage by @mvdan in 66f9e79
- all: use a few more newer std APIs by @mvdan in 538fb69
- core/toposort: Do not calculate cycles within an SCC by @cuematthew in d73e690
- cue/parser: allow
if
as a label for a required field by @haoqixu in 18367a6 - encoding/jsonschema: support single schema not at root by @rogpeppe in cdc4123
- cmd/cue: fix refactor imports over multiple modules by @rogpeppe in 7cc1de3
- cue.mod: use exp3 curated modules by @myitcv in fca4a5f
- internal/core/adt: fix counter issue by @mpvl in a0c6dfe
- internal/core/adt: fix edge case in structural cycles with structure sharing by @mpvl in 966a504
- internal/core/adt: fix structural cycle stack overflow by @mpvl in a66eaf3
- internal/core/adt: remove Inline check by @mpvl in 7bb676e
- internal/core/adt: make inline expressions addressable by @mpvl in 35ec59b
- encoding/openapi: convert remaining cue->json tests to txtar by @cuematthew in ba1084a
- encoding/openapi: convert test suite to txtar by @cuematthew in 374c59e
- internal/core/adt: do not hasNonCycle in one case by @mpvl in 52c02d0
- internal/core/adt: refactor unifyNode by @mpvl in e55c7a8
- internal/core/adt: add tests for issue 3634 by @mpvl in 8ed768a
- internal/encoding: don't interpret files as UTF8 with the binary encoding by @nichtsundniemand in 0b36c4e
- cue/interpreter/embed: remove obsolete TODOs by @mvdan in 8585568
- cmd/cue/cmd: show incorrect handling of binary files when embedded by @nichtsundniemand in 073d23c
- encoding/jsonschema: pass comments to DefineSchema by @rogpeppe in 880023b
- Revert "encoding/jsonschema: pass comments to DefineSchema" by @mvdan in b6f250e
- internal/core/adt: propagate default marker in single nested value by @mpvl in 26a698f
- cmd/cue: stop marking the login command as experimental by @mvdan in 324b3da
- internal/core/adt: add tests for issue 3779 by @mpvl in 8b80c3d
- cmd/cue: embed support is no longer experimental by @mvdan in dce7fda
- encoding/jsonschema: pass comments to DefineSchema by @rogpeppe in 7a3708e
- cue/parser: allow
for
as label for required field by @haoqixu in fc8791f - mod/modregistrytest: move from internal/registrytest by @mvdan in b14cfde
- internal/core/adt: fix FromDef by @mpvl in df327a6
- cmd/cue/cmd: add test for edge case by @mpvl in 587d5a1
- internal/core/adt: shorten closeContext graph depth by @mpvl in b17ea50
- all: start using slices.Backward by @mvdan in 66d4c35
- internal/vcs: use os.CopyFS from Go 1.23 by @mvdan in 873afd5
- cue: tweak cue.Value.Decode with Go std changes by @mvdan in 4e0cc47
- internal/core/adt: remove unnecessary clearing of CloseInfo by @mpvl in 3ed6d8d
- internal/core/adt: hoist feature checking logic by @mpvl in ae5a017
- internal/core/adt: do not add arc dependencies for some nodes by @mpvl in 98a3f93
- internal/core/adt: prepare for shortening root by @mpvl in 58b3e7d
- internal/core/adt: add test for closeContext graph shortening by @mpvl in 0d33c2e
- internal/core/adt: simplify ellipsis logic by @mpvl in 694d295
- internal/core/adt: fix bug when merging closing struct with ellipsis by @mpvl in 7822519
- internal/core/adt: add test for issue 3778 by @mpvl in df049c8
- all: use more maps and slices APIs from Go 1.23 by @mvdan in 6a00a13
- core/adt: correct copying of conjuncts in stripNonDefaults by @cuematthew in 15a702e
- cmd/cue: don't truncate refactor-imports help text by @jpluscplusm in 9413ce6
- encoding/jsonschema: better placement of jsonschema attribute by @rogpeppe in 09effdb
- internal/core/adt: bring semantics of top in line with v2 by @mpvl in 9601805
- tools/trim: implement trim for evalv3 by @cuematthew in e3d44f0
- tools/trim: prepare for trimv3 by @cuematthew in 13fdb81
- encoding/jsonschema: add test case for if/then/else with $id by @rogpeppe in 29be366
- all: GODEBUG=gotypesalias=1 is on as of go1.23.0 by @mvdan in 0eeb982
- all: start using maps and slices APIs from Go 1.23 by @mvdan in b343839
- internal/core/adt: fix yield unwinding issue for validators by @mpvl in 34ab133
- internal/core/adt: add tests for 3762 by @mpvl in 71edb90
- internal/core/adt: fix consistency issue for disjunctions by @mpvl in bb1be01
- internal/core/adt: add tests for 3124 by @mpvl in 53fbe1e
- internal/core/adt: remove diff/todo/p1 by @mpvl in a1be113
- internal/core/adt: improve reference cycle behavior by @mpvl in 67886c6
- internal/core/adt: explicitly detect cycle error by @mpvl in 4350436
- internal/core/adt: put blocking queue on stack by @mpvl in 313b62f
- internal/core/adt: add tests for 3669 and 3737 by @mpvl in 18a0661
- internal/core/adt: disable nodeContext.free by @mpvl in 93d4e38
- internal/core/adt: prune recursive processing by @mpvl in d8d19aa
- internal/core/adt: remove noop counter by @mpvl in 3390dea
- internal/core/adt: logging improvements by @mpvl in 7b03078
- cmd/cue: update workflow command help text links by @jpluscplusm in 3545df1
- cmd/cue: improve CUE example for exp-gengotypes by @jpluscplusm in 8d8a36d
- require Go 1.23 or later, test and release with Go 1.24 by @mvdan in 1a8c16d
- cue/testdata: add a benchmark test for https://cuelang.org/issue/3514 by @myitcv in d12c8be
- internal/core/adt: pass and use OpContext to functions using Schema by @mpvl in f1d39f0
- pkg: use adt.Unify instead of Value.Unify by @mpvl in b71b8c0
- internal/encoding/yaml: use adt.Unify instead of Value.Unify by @mpvl in c9c8cb4
- internal/core/adt: avoid crash by @mpvl in 11be031
- internal/core/adt: move cycle state saving logic to Expr by @mpvl in 3e021be
- internal/value: support more types and rename ConvertToContext by @mpvl in 96d9f6f
- all: use eval.NewContext when possible by @mpvl in f4da7a3
- internal/core/adt: add Expr method on CallContext by @mpvl in ee11854
- cmd/cue: mention -c=false in vet's incomplete error by @jpluscplusm in 6fb2a9b
- internal/core/adt: recursively resolve pending arcs before lookup by @mpvl in 8d01019
- internal/core/adt: add test for issue 3708 by @mpvl in 7bfa238
- cmd/cue: add experimental warning to gengotypes by @jpluscplusm in f0ed173
- internal/core/adt: remove GroupUnify mechanism by @mpvl in ab1e2d9
- internal/core/adt: do not carry forward FromEmbed by @mpvl in 455b96b
- internal/core/adt: do not carry forward FromDef flag by @mpvl in 3d57eed
- internal/core/adt: use adt.Unify in cue package by @mpvl in dd9e48f
- encoding/openapi: swap sort.Slice for slices.Sort by @mvdan in 1d7f66f
- encoding/jsonschema: use a cmp-based stable sort when decoding constraints by @mvdan in db72890
- internal/envflag: small follow-ups to int and string support by @mvdan in e6fec6b
- internal/core/adt: fix handling of top by @mpvl in 433e3c3
- cue: add tests for Unify by @mpvl in b582d7f
- internal/envflag: support int and string flags by @mvdan in 0e42b0b
- internal/envflag: skip over empty comma-separated elements by @mvdan in 62ea127
- cmd/cue: implement mod mirror by @rogpeppe in 7d7abff
- mod/modregistry: add Mirror by @rogpeppe in 5d7cdbb
- all: use ast.ParseImportPath and ast.ImportPath by @rogpeppe in d5ab208
- cmd/cue: add
refactor imports
command by @rogpeppe in 8dbff63 - cue/ast: properly deprecate Optional and Token in Fields by @mvdan in 0265d7d
- update emicklei/proto and protocolbuffers/txtpbfmt by @mvdan in 2781759
- cue: remove more long-deprecated APIs by @mvdan in 2c86de5
- cmd/cue: fix typos in cue-help-filetypes by @jpluscplusm in 0a43336
- internal/core/adt: pass CallContext to builtin functions by @mpvl in 5991735
- core/adt: Combine Vertex.Structs when inserting Conjunct for evalv3 by @cuematthew in 2d65404
- ast/astutil: make Resolve aware of version suffixes by @rogpeppe in 6a125a9
- cue.mod: upgrade to latest GitHub actions curated module by @myitcv in 802d7f4
- ast/astutil: add test for resolving imports with major version suffix by @rogpeppe in 5ab4551
- mod/modfile: add ModuleForImportPath by @rogpeppe in b684a52
- mod/modfile: make it an error to have an empty module path by @rogpeppe in c269767
- mod/module: add explicit test for package path with full version by @rogpeppe in 24cf1f8
- internal/core/adt: first step in using CallContext by @mpvl in 5886c49
- internal/core/adt: fix hang on finalization by @mpvl in d4d20b6
- pkg/encoding/json: expand implementation of Validate in place by @mpvl in 87db94f
- internal/core/adt: prevent recursion in calls by @mpvl in 16e3250
- internal/core/adt: do not count validators as new data by @mpvl in 5b4a02e
- internal/core/adt: fix some cycle issues related to validators by @mpvl in 36174e5
- pkg/encoding/yaml: hoist validate functionality by @mpvl in dc3e807
- internal/core/adt: set the parent in UnifyValidator by @mpvl in 0eb0235
- internal/core/adt: hoist unifyValidator by @mpvl in 7fd7f6d
- internal/core/adt: avoid cycle in debug output by @mpvl in bd087f6
- internal/core/adt: add tests for 3649 by @mpvl in c63ed21
- internal/core/adt: add more error context in matchN by @mpvl in 950a30f
- internal/cmd/cue-ast: add support for ref and file-only by @rogpeppe in 809299a
- internal/cueversion: bump LanguageVersion for v0.13 by @mvdan in 8a94279