github cue-lang/cue v0.15.0-alpha.1

pre-release7 hours ago

This release removes the old evalv2 evaluator, adds the explicitopen language experiment, and introduces an initial version of cue lsp.

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

Evaluator

⚠️ Removing evalv2

The old evalv2 evaluator, which previously could be re-enabled via CUE_EXPERIMENT=evalv3=0, is now deleted. The new evalv3 evaluator has been on by default since v0.13.0, and at this point our entire test suite including Unity is working.

Removing the old evaluator reduces significant load on development, as we were able to clear out four thousand lines of code and simplify the internal types and code structure. This is a necessary step to unblock upcoming feature work in the evaluator.

As a bonus, because the old and new evaluators shared many core evaluator types, removing the fields only used by the old evaluator yields modest memory usage improvements around 4-6%.

explicitopen experiment for #A...

The explicitopen experiment enables the posfix ... operator to explicitly open closed structs, allowing additional fields to be added. This is a breaking change to the language which we are starting to transition towards; many users found the existing embed semantics to be confusing.

Furthermore, the existing semantics greatly complicated the evaluator and prevented significant performance optimizations. The new semantics also resolve a number of limitations, such as not being able to enforce a schema at the package level without opening up the schema due to the necessary embedding.

Once a module's language.version targets v0.15.0, this can be enabled via the file attribute @experiment(explicitopen). To automatically convert files or packages to the new semantics, use cue fix --exp=explicitopen. Once the proposal is accepted, we intend to provide a command to safely upgrade a module to use the new semantics, without affecting its dependencies nor dependents.

For more information, see the proposal on GitHub and the spec change patch.

Other changes

A number of panics and error regressions in the evaluator which were reported in the last month have been fixed; thank you to all who reported these.

Dependency analysis now avoids computing references more than once, which resolves an expontential performance issue for some configurations using chains of CUE references.

Evaluating concrete CUE values no longer involves dependency analysis; this should result in modest speed improvements for users of standard library APIs such as yaml.Marshal.

Some error positions which were lost in the transition from evalv2 to evalv3 have been reintroduced by a few fixes.

File embedding via the @embed attribute has gained an allowEmptyGlob option, to allow glob patterns to match zero files without causing an error.

cmd/cue

The cue fix --exp flag is introduced to rewrite files or packages to use new and experimental semantics with @experiment attributes.

cue get go now stops if loading the given Go packages resulted in any errors. We would previously try to continue in the presence of some syntax or type-checking errors, but this could easily lead to subtle bugs such as panics or generated CUE which was incomplete or incorrect.

LSP

This alpha release includes the initial version of cue lsp - with support for "go to definition", code completion, hover documentation, and code formatting.

See our Getting Started wiki page for instructions on how to set it up with your editor.

Please report any bugs or missing features you encounter via the Issue tracker or via the #lsp channels on either Discord or Slack.

Encodings

The Protobuf decoder has been tweaked to not require files such as google/protobuf/timestamp.proto to exist on disk, given that they are mapped to CUE standard library APIs directly.

The Protobuf decoder has also been tweaked to support fully qualified references such as my.pkg.name.MessageName.

A bug is fixed in the TOML decoder where subtable keys could incorrectly lead to duplicate key errors.

Standard library

The net package has gained new AddIP and AddIPCIDR functions to add numerical offsets to IP addresses or CIDR networks.

The Atoi, ParseInt, and ParseUint functions in the strconv package now work on integers with unlimited precision, like the rest of the CUE evaluator, rather than just a maximum of 64 bits.

Go API

encoding/json gains JSON Pointer APIs, which are already useful in packages like encoding/jsonschema.

cue/ast introduces PostfixExpr to support upcoming additions to the language syntax.

tools/fix has gained new APIs to fix configs to use an active experiment, as well as fixing configs to a newer language version.

cue introduces a Path.Append convenience method.

cue/token is adjusted so that node positions within a file never result in an offset which is outside the bounds of the file. This could easily lead to subtle bugs or panics when using node position offsets.

cue/errors is adjusted so that Positions only collects printable positions, to prevent printing empty positions in the CLI.

cue/ast deprecates the File.Imports field in favor of the File.ImportSpecs iterator method. The iterator method File.ImportDecls is also introduced for completeness.

⚠️ The long-deprecated cue.ResolveReferences option API is now removed.

cue/parser.DeprecationError.Version is deprecated, as tracking CUE language versions via integers has not been used since v0.4.3, and the mechanism was never properly documented.

Full list of changes since v0.14.0
  • lsp/definitions: Add support for explicit-open by @cuematthew in cbb9e94
  • .claude: wildcards are only supported at the end of a command by @mvdan in 64f9a26
  • cmd/cue: stop using an internal test package by @mvdan in 1c4b8f6
  • Revert "cmd/cue: use os/signal.NotifyContext for the root command context" by @mvdan in 1061fcd
  • cue: add Path.Append method by @mpvl in 9ddc9b8
  • internal/task: factor out task function creation by @mpvl in 4336f31
  • tools/flow: make running variable more robust by @mpvl in c87a88b
  • tools/fix: implement __closeAll wrapper insertion by @mpvl in c5f9ed8
  • internal/core/export: disable pivotter for data output by @mpvl in a964aef
  • internal/core/adt: avoid computing duplicate dependencies by @mpvl in f545420
  • internal/core/dep: add test for Issue #4064 by @mpvl in c5f1aa9
  • internal/core/dep: keep track of number of dependencies computed by @mpvl in 7ebdd14
  • internal/core/adt: reuse allocations of source-less booleans by @mvdan in 2135d16
  • internal/core/adt: re-enable TestScheduler by @mvdan in fbc7d36
  • lsp/server: make formatter be a noop if result is unparsable by @cuematthew in 1b05645
  • lsp/server: add test to show bad formatting by @cuematthew in 3e45a4d
  • update cobra and pflag dependencies by @mvdan in 0667e66
  • update golang.org/x/... dependencies by @mvdan in fff2509
  • internal/ci: upgrade to actions/setup-go@v6 by @mvdan in 467726a
  • internal/ci: update versions of Go and goreleaser for alpha.1 by @mvdan in a486317
  • cue/token: clarify docs on printable positions by @mvdan in 8799675
  • internal/lsp: implement hover by @cuematthew in 723e0de
  • lsp/cache: refactor and reduce duplication by @cuematthew in cd1a950
  • lsp/cache: prevent infinitely loading the same package by @cuematthew in 20531e1
  • internal/core:adt: don't report errors beyond disjunction boundary by @mpvl in e999d98
  • internal/core/adt: revert "report comprehension error at task level" by @mpvl in 58e6f08
  • internal/core/adt: report comprehension error at task level by @mpvl in d77101d
  • internal/core/adt: add tests for Issue 4055 and 4056 by @mpvl in 9ce1ae1
  • internal/core/adt: disable part of memory reclamation for disjunctions by @mpvl in a6fa43f
  • internal/core/adt: start clean up of IsClosedStruct by @mpvl in 7ceab16
  • cue: compile/erralias.txtar no longer stack overflows on evalv3 by @mvdan in 8e0b5ae
  • all: clean up #skip-v2 txtar lines by @mvdan in bca58a4
  • internal: remove "dev" test matrices by @mvdan in b6fed6e
  • cue/errors: omit non-printable positions from Positions by @mvdan in c7831b9
  • cmd/cue: add a test showing how we can print empty positions by @mvdan in c9a076f
  • cue/errors: use cue/token.Pos.Compare directly in approximateEqual by @mvdan in 3058193
  • pkg/strconv: CUE_UPDATE=1 go test by @mvdan in 6519da0
  • internal/lsp: cope with symlinks and files being deleted by @cuematthew in 3883a78
  • cue: remove more unnecessary evalv3 test skips by @mvdan in 2957497
  • cue: remove todoV3 for a Syntax test with a structural cycle by @mvdan in 4830d30
  • cue: remove the long-deprecated ResolveReferences option by @mvdan in e8f4d93
  • internal/core/adt: add test for issue #4001 by @mpvl in 881c5f1
  • internal/core/compile: fix stack alignment for let references by @mpvl in 3de5c17
  • cmd/cue: increase the cmd_after sleep before printing a timestamp by @mvdan in ee222d3
  • internal/core/export: add tests for Issue #4051 by @mpvl in a30ff33
  • internal/core/compile: add option to print expressions in let references by @mpvl in b97a8db
  • internal/core: remove some parallel tests by @mpvl in 335d306
  • cue/parser: remove all users of FromVersion by @mvdan in 38ec6b8
  • internal/core/dep: don't do typo checks for dependency analysis by @mpvl in 9110e72
  • internal/core/adt: gate openDebugGraph on debug flag by @mpvl in 3ea1abe
  • internal/core/adt: pass flags through as is by @mpvl in 3e7dc44
  • internal/core/adt: refactor flags passed to unify by @mpvl in 7065726
  • internal/core/adt: make combinedFlags public by @mpvl in af2083a
  • internal: remove old mechanism to track CUE language versions by @mvdan in d1f6273
  • internal/lsp: implement LSP Completion by @cuematthew in 6beee33
  • lsp/cache,lsp/fscache,lsp/server: always use a non-nil AST by @cuematthew in a1d0472
  • internal: move SetPackage to cmd/cue/cmd.setPackage by @mvdan in 0434db5
  • internal/core/compile: implement __closeAll builtin by @mpvl in 2b8b299
  • tools/fix: add TestX for quick tests by @mpvl in 6d6ff15
  • cmd/cue: add cue mod upgrade and --exp flag for fix by @mpvl in 0070ee7
  • tools/fix: add experiment and upgrade support by @mpvl in af6c567
  • internal/cueexperiment: add experiment validation and lifecycle API by @mpvl in d442e3a
  • lsp/definitions: correct modelling of ellipses by @cuematthew in 80231f2
  • lsp/definitions: add test showing broken behaviour by @cuematthew in 2061b79
  • internal: move ListEllipsis to internal/core/compile.listEllipsis by @mvdan in ae9f86a
  • internal: move MergeDocs to internal/core/export.mergeDocs by @mvdan in 4e71090
  • internal: move EmbedStruct to encoding/jsonschema.embedStruct by @mvdan in 859b546
  • internal: move IsEllipsis to cue/format.isEllipsis by @mvdan in 0f64f5d
  • internal/core: implement #A... by @mpvl in faed5e0
  • cue/parser: test use of ... with wrong version by @mpvl in b523734
  • cue/parser,cue/format: implement PostfixExpr parsing and formatting by @mpvl in c6ca3e0
  • internal: move ErrInexact to internal/core/subsume by @mvdan in cd50fd0
  • internal: ConstraintToken is no longer necessary by @mvdan in 18f3952
  • lsp/cache: be tolerant of unknown imports by @cuematthew in 55e8ce9
  • internal: remove ErrIncomplete, which was read once but never set by @mvdan in 3efa36a
  • cmd/cue-ast: always print the ast if it exists by @cuematthew in 74ef4d2
  • internal: inline the only use of NewAttr by @mvdan in 36a56d2
  • cue/ast: add PostfixExpr AST node for postfix operators by @mpvl in 1bc2d90
  • cmd/cue: abort get go on any syntax or type errors by @mvdan in b311ec4
  • cmd/cue: tweak get go error tests to actually do what they say by @mvdan in 3995d69
  • CONTRIBUTING: fix links spotted by xurls -fix by @mvdan in a8ef9bc
  • cmd/cue: re-enable skipped cue get go test with broken go:embed by @mvdan in 5e7885d
  • cue/load: simplify DefaultTagVars code a bit by @mvdan in bcb48b3
  • encoding/protobuf: support decoding fully qualified references by @hiporox in aa2b7a6
  • internal/core/adt: remove check by @mpvl in e2b9c0d
  • cue/ast: add a TODO as a reminder to remove deprecated Field fields by @mvdan in 331b88b
  • cue/ast: deprecate File.Imports in favor of File.ImportSpecs by @mvdan in ff529b7
  • cue/ast: introduce File.ImportSpecs by @mvdan in f3ad21b
  • all: replace uses of cue/ast.File.VisitImports with ImportDecls by @mvdan in b523454
  • internal/golangorgx/tools/testenv: remove unnecessary package by @mvdan in 07ed0ce
  • encoding/toml: fix decoding subtable duplicate keys by @theoretick in 343456a
  • cue/ast: introduce an iterator version of File.VisitImports by @mvdan in ad08a6b
  • cue/load: clarify semantics of Dir with Overlay by @mvdan in 506578a
  • encoding/protobuf: don't require google/protobuf files on disk by @hiporox in 8d98b1c
  • cmd/cue: use os/signal.NotifyContext for the root command context by @mvdan in 6334f7f
  • internal/ci/checks: improve @-mention comments by @jpluscplusm in 3e063a7
  • cue/ast/astutil,internal/core/toposort: remove unused code by @mvdan in adc29dd
  • re-enable staticcheck's S1008 check by @mvdan in a7ba537
  • internal/golangorgx/tools/xcontext: replace Detach with context.WithoutCancel by @mvdan in 1118c02
  • internal/golangorgx/tools/fuzzy: remove another unused package by @mvdan in b168c3c
  • internal/golangorgx/gopls/util/constraints: remove another unused package by @mvdan in dd1b8df
  • internal/golangorgx/tools/proxydir: remove another unused package by @mvdan in b3707ad
  • internal/golangorgx/gopls/version: remove another unused package by @mvdan in 1fec68d
  • internal/golangorgx/tools/memoize: remove another unused package by @mvdan in e6c9e27
  • cue/token: correct out-of-bounds token offsets and positions by @cuematthew in 0b2faae
  • lsp/definitions: detect new nodes more efficiently by @cuematthew in c68d9ad
  • internal/golangorgx/tools/versions: remove as an unused package by @mvdan in fa7625d
  • internal/golangorgx/tools/gocommand: remove as an unused package by @mvdan in 8949907
  • lsp/definitions: fix forward references via explicit unification by @cuematthew in 1eff22f
  • lsp/definitions: add test showing bad behaviour by @cuematthew in 45af799
  • cue/parser: consistent double-underscore validation by @mpvl in 978fc1e
  • encoding/openapi: fix "allOff" misspelling by @rogpeppe in a77f90c
  • encoding/openapi: attempt round-trip of generated OpenAPI schema by @rogpeppe in c7bd41c
  • lsp/definitions: canonicalise import path during resolution by @cuematthew in 4f7461a
  • lsp/definitions: add tests for bad imports by @cuematthew in 180b162
  • lsp/cache: Only reformat CUE files if they have no syntactic errors by @cuematthew in 710d9e5
  • lsp/server: add test to demonstrate bad formatting by @cuematthew in 445d741
  • lsp/fs_cache: cache the parsing error as well as the ast by @cuematthew in db451cd
  • lsp/cache: Add support for old module system by @cuematthew in a070a4a
  • lsp/definitions: add test for definition definitions by @cuematthew in f2ba1a2
  • lsp/definitions: correct evaluation of comprehensions by @cuematthew in 70f9753
  • lsp/definitions: Add test for broken for- and let-comprehensions by @cuematthew in 829997b
  • lsp/definitions: Improve resolution of fields inline expressions by @cuematthew in 53e2d0a
  • lsp/definitions: add tests for broken behavior by @cuematthew in fac115c
  • lsp/server: allow server to be initialized with zero workspace folders by @cuematthew in ae03d29
  • lsp/cache: Do not rely on import paths being unique by @cuematthew in 542de3a
  • lsp/cache: Override the registry Fetch method within LSP by @cuematthew in 9880749
  • lsp/cache: Add failing test by @cuematthew in 8d73712
  • mod/modimports: errors from parsing are not terminal and are captured by @cuematthew in 948b921
  • internal/core/adt: better doc comment for OpContext by @rogpeppe in 66d6226
  • cmd/cue/cmd: fix CRD imports by @rogpeppe in e3445f0
  • cmd/cue/cmd: add vet to CRD test by @rogpeppe in ed18339
  • internal/core/adt: fix panic on uninitialized vertex in attemptOnly mode by @mvdan in 15d1982
  • cmd/cue/cmd: skip TestVersion if VCS information is not stamped by @mvdan in 84dd9df
  • lsp/definitions: Make field keys resolve to themselves by @cuematthew in bfd487f
  • encoding/openapi: deprecate Gen by @rogpeppe in 2bf0bd5
  • cue/errors: cleanups by @rogpeppe in 02cd8d7
  • all: simplify iterating over reflect and go/types lists by @mvdan in 6b7cdcd
  • internal/vcs: remove SYSTEMROOT workaround for Windows by @mvdan in 4adf74c
  • internal/intset: delete this no-longer-used package by @mvdan in 8cfc2a0
  • internal/cueconfig: use omitzero for RegistryLogin.Expiry by @mvdan in f83cf7b
  • cmd/cue: rip out the VCS-based version logic by @mvdan in 80884df
  • cmd/cue: test cue version outside of testscript by @mvdan in 043b7de
  • encoding/jsonschema: remove evalv2 from test data by @rogpeppe in a2eed32
  • cue/interpreter/embed: add allowEmptyGlob option for globs by @rogpeppe in e09bac9
  • encoding/jsonschema: flip the character class tests on for Go 1.25 by @mvdan in 5f50884
  • cmd/cue: replace os.Chdir with testing.T.Chdir in tests by @mvdan in d405769
  • all: rely on go get -tool now that we require Go 1.24 or later by @mvdan in d40cfd3
  • all: require Go 1.24 or later, release on 1.25 by @mvdan in f2abd00
  • lsp/definitions: goto-dfn on an import spec jumps to that pkg by @cuematthew in 919aeb4
  • cmd/cue: include full gengotypes warning prefix by @jpluscplusm in 26ca4d3
  • internal/core/adt: fix dependency issue by @mpvl in 0fde6c8
  • internal/core/adt: add test for dependency issue by @mpvl in f5f9ae3
  • internal/core/adt: remove unused StructLit fields by @mpvl in ba43e9f
  • Revert "mod/modregistry: mirror referrers in Client.Mirror" by @rogpeppe in 66211bf
  • internal/core/adt: ensure a node is initialized by @mpvl in ccc44aa
  • internal/core/adt: promote some evalv3 results to "golden" by @mpvl in 2424234
  • internal/core/adt: note that envDisjunct.src is unused via a TODO by @mvdan in d7b32c7
  • encoding/json: export JSON Pointer functions by @rogpeppe in 01a745a
  • mod/modregistry: mirror referrers in Client.Mirror by @rogpeppe in e402d77
  • internal/core/adt: use stringer for two more types by @mvdan in d782e0b
  • internal/core/adt: add a TODO about the parent in newInlineVertex by @mvdan in cc7e9a4
  • encoding/jsonschema: add ExtractedCRD.VersionToPath by @rogpeppe in 4dfe192
  • pkg/strconv: make ParseUint work with unlimited size ints by @rogpeppe in f607070
  • internal/core/adt: deduplicate code handling lower and upper bounds by @mvdan in 0bcb56d
  • internal/core/adt: fix a few godocs to align with the declared names by @mvdan in 41c09d5
  • internal/core/adt: remove duplicate package docs by @mvdan in 8893db5
  • lsp/cache: reduce column number by 1 if jump-to-definition produces no results by @cuematthew in fef46d9
  • lsp/definitions: do not ever call eval before all fields are established by @cuematthew in 7fb2146
  • lsp/definitions: flatten tests by @cuematthew in d858fb3
  • lsp/definitions: implement ability for jump-to-dfn to switch package and module by @cuematthew in 2ddc6de
  • lsp/cache: create modules and packages when demanded by modpkgload by @cuematthew in 31dc91e
  • internal/lsp: wire up jump-to-dfn by @cuematthew in 895f15c
  • lsp/definitions: add analysis to determine resolution of idents by @cuematthew in 5b5cf18
  • pkg/strconv: fix Atoi and ParseInt to handle unlimited precision integers by @rogpeppe in 54a8330
  • internal/core/adt: fix concreteness check by @mpvl in 1fcd2a3
  • internal/core/adt: add tests for 3993 by @mpvl in d3cf5b3
  • internal/core/adt: clarify n.reqSets is a buffer by @mpvl in 5d9d0bb
  • internal/core/adt: add tests for Issue 4020 by @mpvl in 8d60816
  • internal/core/adt: remove Specialize methods by @mvdan in 28455c7
  • internal/core/adt: remove Environment.evalCached by @mvdan in fb72538
  • internal/core/adt: apply evalv3 TODO in updateListType by @mvdan in 8230c13
  • internal/core/adt: remove StructMarker.NeedClose by @mvdan in ceeef0f
  • internal/core/adt: fix initArcs for errors in optional fields by @mpvl in dd5aacf
  • internal/core/adt: add tests for Issue 4022 by @mpvl in e7d914a
  • internal/core/adt: remove OpContext.optionalMark by @mvdan in d9a9f7b
  • internal/core/adt: remove CloseInfo.IsClosed by @mvdan in 88adc22
  • internal/core/adt: remove StructInfo.Disable by @mvdan in 34592cd
  • internal/core/adt: remove CycleInfo.Inline by @mvdan in 5657913
  • internal/core/adt: disable OpContext.toFinalize by @mvdan in b33c0f5
  • internal/core/adt: remove OpContext.inDisjunct by @mvdan in a2c445b
  • internal/core/adt: remove disjunct.isDefault by @mvdan in 49b8b29
  • internal/core/adt: remove nodeContext.conjuncts by @mvdan in bebae29
  • internal/core/adt: actually set nodeContext.kindID by @mvdan in c40a3f9
  • internal/core/adt: remove a piece of code in isFinal only needed for evalv2 by @mvdan in 5310686
  • internal/core/adt: remove a piece of code in isClosed only needed for evalv2 by @mvdan in e02b962
  • internal/cueexperiment: deprecate the evalv3 flag by @mvdan in 40e1595
  • cmd/cue/cmd: use ParseInt with 64 bit size in cmd_after testdata by @folliehiyuki in 08f7564
  • internal/adt/core: improve validation error positions by @mpvl in 6e2b1df
  • internal/core/adt: use cuetdtest for TestValidate by @mpvl in 4389bff
  • internal/core/adt: add missing dereference by @mpvl in 889734f
  • pkg/net: add ip arithmetic functions by @takonomura in f374d29
  • internal/core/adt: add tests for 4011 by @mpvl in ae34585
  • all: remove some more unused code found by staticcheck by @mvdan in fd7eec8
  • internal/core/adt: add more error positions by @mpvl in a293c62
  • encoding/xml/koala: remove trailing whitespace by @mpvl in 441eab3
  • internal/core/adt: remove unused nodeContext fields by @mpvl in 4b8d8d6
  • internal/core/adt: remove some Vertex-related fields by @mpvl in 34a8732
  • internal/core/adt: remove EvalV2 optional tracking by @mpvl in 216b1c0
  • internal/core/adt: remove obsolete CloseInfo methods by @mpvl in 54603d1
  • internal/core/adt: remove EvalV2 closeInfo remnants by @mpvl in f0cc63b
  • tools/trim: remove EvalV2 trim implementation by @mpvl in dbc027a
  • internal/core/adt: remove unused Vertex fields by @mpvl in 8bcd577
  • internal/core/adt: remove unused nodeContext fields by @mpvl in 536ab5a
  • internal/core/adt: remove EvalV2 remnants by @mpvl in 240b79d
  • ai: document cueckoo runtrybot command by @mpvl in c996280
  • internal/core/adt: remove EvalV2-specific code by @mpvl in dfb0f39
  • internal/core/adt: set right version for test by @mpvl in 29544b4
  • internal: remove EvalV2 from public API and runtime by @mpvl in ed13739
  • internal/cuetdtest: remove evalv2 from default matrixes by @mpvl in b0dcdba
  • cue: turn of some tests for evalv2 by @mpvl in 2ae3ec2
  • cmd/cue/cmd: remove EvalV2-specific tests by @mpvl in 3eef82c
  • internal/cuetdtest: remove support for evalv2 by @mpvl in fa08400
  • internal/core/adt: detect non-cycle by @mpvl in a622559
  • internal/core/adt: fix cycle for structural cycles by @mpvl in e44ffe8
  • internal/core/adt: add tests for issue 3940 and 3990 by @mpvl in fbbee4d
  • ai: add more commands allow list by @mpvl in 25f71ea
  • internal/core/subsume: use errors.Details instead of single error by @mpvl in 1630b49
  • internal/core/subsume: remove explicit test indices by @mpvl in 5d07944
  • internal/core/subsume: convert to cuetdtest framework by @mpvl in fe3d72f
  • internal/core/subsume: use error strings in tests by @mpvl in 0ad768e
  • internal/core/subsume: reformat struct fields by @mpvl in 59b4253
  • internal/ci: drop the use of ns-linux aliases by @mvdan in 9bd14b4
  • ai: set coAuthoredBy in settings by @mpvl in e6d8175
  • internal/ci: have the dispatch and trigger workflows use a separate cache by @mvdan in d7a0e58
  • internal/ci: drop use of setup-buildx-action by @mvdan in 7c21401
  • internal/ci: require that workflow names be unique by @mvdan in de5c77e
  • internal/cueversion: bump LanguageVersion to v0.15.0 by @mvdan in abf08f2
  • internal/core/adt: fix ellipsis strictness issue by @mpvl in 8729327
  • internal/core/adt: add tests for #4015 by @mpvl in 4350895
  • lsp/cache: don't return cue errors to client by @cuematthew in 49b8de5
  • internal/robustio: mark sleeping test as long by @mvdan in 93337b3

Don't miss a new cue release

NewReleases is sending notifications on new releases.