Update dependency cue-lang/cue to v0.17.1
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| cue-lang/cue | minor | 0.14.1 → 0.17.1 |
Release Notes
cue-lang/cue (cue-lang/cue)
v0.17.1
Evaluator
Fix several regressions introduced in v0.17.0: a panic when evaluating some disjunctions (#4419), and spurious invalid interpolation (#4420), field not allowed (#4423), and structural cycle (#4430) errors involving comprehensions or self references.
Fix two regressions introduced in v0.17.0 where evaluation could hang (#4421, #4422), as well as two long-standing hangs on self-referencing configurations (#2766, #4231).
cmd/cue
Fix a panic in cue exp gengotypes, a regression introduced in v0.17.0, when a definition references a definition from another package via embedding (#4436).
Module replacements are now subject to minimum-version selection like any other dependency. cue mod tidy now normalizes a fully-pinned replacement to its major version and records the target as a regular dependency.
Full list of changes since v0.17.0
- internal/cueversion: bump for v0.17.1 by @mvdan in
fc6c0b2 - internal/ci: bump pinnedReleaseGo for v0.17.1 by @mvdan in
9c720d0 - [release-branch.v0.17] internal/core: resolve import instances back to their build instance by @mvdan in
8ead2d9 - [release-branch.v0.17] internal/core/adt: allow chained re-instantiation of inline conjunctions by @mvdan in
f81f772 - [release-branch.v0.17] cue/testdata/cycle: add regression test for spurious inline cycle by @mvdan in
993c44e - [release-branch.v0.17] internal/core/adt: fix hang on let binding a self-referencing struct by @mvdan in
1cd5e1f - [release-branch.v0.17] internal/core/adt: fix hang on self-feeding cycle advancing depth by @mvdan in
ed51952 - [release-branch.v0.17] internal/core/adt: defer field-set freeze for a running resolver by @mvdan in
e69e621 - [release-branch.v0.17] internal/core/adt: defer fieldSetKnown for a running field-adding conjunct by @mvdan in
459016a - [release-branch.v0.17] internal/core/adt: do not defer resolvers during comprehension clauses by @mvdan in
f89ebec - [release-branch.v0.17] cue/testdata/comprehensions: test guard-driven premature finalization by @mvdan in
6176fb5 - [release-branch.v0.17] internal/core/adt,pkg: bound string, bytes, and list repeat counts by @mvdan in
3017156 - [release-branch.v0.17] cue/parser: limit expression nesting depth during parsing by @mvdan in
f6f05bb - [release-branch.v0.17] internal/encoding/yaml: limit the size of YAML alias expansion by @mvdan in
04d57ab - [release-branch.v0.17] internal/core/adt: treat cyclic under-resolved values as incomplete scalars by @mvdan in
63994d5 - [release-branch.v0.17] cue/testdata/references: test a comprehension dynamic field under a let self by @mvdan in
0ba71ca - [release-branch.v0.17] internal/core/adt: do not reclaim disjunct arc states before merging by @mvdan in
b72d5b4 - [release-branch.v0.17] internal/core/adt: do not discard recomputed let cycle placeholders by @mvdan in
f82d498 - [release-branch.v0.17] internal/core/adt: fix hang on dynamic field whose key is under evaluation by @mvdan in
e0b974d - [release-branch.v0.17] all: re-run tests with CUE_UPDATE=1 by @mvdan in
7d5a557 - [release-branch.v0.17] encoding/jsonschema: avoid panic on non-string element in "required" by @mvdan in
f6bc350
v0.17.0
Changes which may break some users are marked below with:
Language
The active try experiment renames the new fallback keyword, used with for comprehensions, to otherwise. fallback continues to be accepted for now, but is rewritten to the new form.
The active aliasv2 experiment now allows ~(X) as an alternative to ~X for the single postfix alias form. ~X is also rewritten as ~(X) for the sake of consistency and clarity.
Language versions v0.17.0 and later allow omitting commas in multi-line lists. Just like a newline after a struct field implies a comma, a newline after a list element now implies a comma as well.
Language versions v0.17.0 and later allow a newline or a comma before the closing bracket of an index expression, matching how lists and func arguments allow omitting trailing commas.
The language spec is tweaked to make $ a valid identifier, which was already allowed by the parser and evaluator.
div, mod, quo, and rem operators has been removed. Since late 2020, these infix forms have been undocumented and rewritten by cue fix to the new function calls.
The new shortcircuit experiment
This release introduces the shortcircuit experiment, which changes the && and || operators to not evaluate the right operand if the left operand alone determines the result.
This matches the behavior already documented in the CUE spec and is consistent with most mainstream languages, but for the sake of a smooth transition for end users, we are rolling out this change via an experiment.
You can try this experiment via the @experiment(shortcircuit) file attribute. To mimic the old behavior with the experiment, you can use a hidden field:
_y: Y
if X && _y {}
Evaluator
Comprehensions
The comprehension algorithm now waits to run a comprehension's body until the fields it reads have a concrete value, rather than trying to produce its fields up front. This resolves a number of long-standing bugs, most notably the last known regressions from evalv2, where a comprehension that should have resolved instead failed as an incomplete value or a cycle.
This design also greatly simplifies upcoming evaluator work, such as introducing new builtins to replace comparing values to bottom, as well as the design of evalv4.
Other changes
The evaluator no longer deduplicates errors just by position, which was causing some useful errors from disjunctions or standard library calls to be dropped incorrectly.
Several long-standing cycle-detection bugs have been fixed, such as self-referential uses of matchN and matchIf, self-feeding disjunctions, and comprehensions that read a let binding which refers back to the comprehension's own fields.
Fixed a bug where the same package imported via different qualified import paths (e.g. foo.com/bar@v0 or foo.com/bar:baz) did not share the same hidden field namespace.
Resolving an unversioned import from a dependency module now respects that module's own default major version, instead of always using the main module's default.
Fix a number of issues where cue def could produce invalid CUE output, such as due to name conflicts.
Fix an evaluator regression where embedded disjunctions across packages may not correctly apply closedness.
Fix an evaluator bug where cue.Context.BuildExpr of close({}) did not actually result in a closed struct.
Fix a bug where some calls to standard library functions or validators did not include the "error in call to pkg.Func" error context, or included it twice.
A few changes to the evaluator should reduce allocated objects by up to 16%, reducing GC overhead and memory usage.
To ease the transition into the new formatter we plan to release with v0.18, CUE_EXPERIMENT=formatv2=0 is now allowed as a no-op.
A number of other bugs, panics, and hangs have been resolved as well.
cmd/cue
Module replaces
CUE now supports substituting a module dependency with a local directory or a different remote module during development - for example while testing a fix to a dependency before it is published, or to replace a dependency with a fork including improvements.
This configuration lives in cue.mod/local-module.cue, which is excluded when publishing to registries. cue mod edit and cue mod tidy gain support for maintaining this file.
We have also published a how-to guide on replacing a dependency with a local module.
Read the full design doc in the proposal, or read the cue.mod/local-module.cue reference docs.
Other changes
The new global -C or --chdir flag runs cue from the given working directory.
Command input parsing is improved so that CUE packages can come after data files, such as cue vet -c data.yaml ./schema.
cue import --with-context now ensures that data represents the original raw input data, and not its interpretation like JSON Schema.
cue import --path now skips over null values in an input stream, such as empty documents in a YAML file.
Fix a bug where the flag cue export --path was ignored when the inputs were pure CUE.
The new cue exp gengotypes --outfile flag controls the output file path when generating a single package.
cue vet -d/--schema now supports hidden fields, and correctly reports an error when the command inputs are CUE only.
cue fix and cue trim no longer change file modification times when no changes are necessary.
A $CUE_CACHE_DIR directory is no longer required when loading CUE without external dependencies.
The "filetypes" lookup tables now use a more compact encoding, saving about 150KiB in binary size for cmd/cue as well as Go API users.
LSP server
Add an initial version of organize-imports, which sorts the existing imports and removes unneeded imports. It is not yet capable of suggesting missing imports.
Wait for a short period of inactivity before sending diagnostics to the editor. This "debounce" means that a user typing incomplete CUE syntax will not be distracted with syntax errors as much.
The aliasv2 experiment is now fully supported.
The rename function is fixed to distinguish between field names and aliases.
Improve field name analysis in general so that fields with multiple aliases (e.g. v=[k=string]: _) are properly supported.
Improve attribute handling for file-level embedded attributes, and to attach attributes within expressions to the correct struct.
Treat conjunctions (&) and disjunctions (|) the same way for goto-definition. With the cursor on a path, it returns all results that the path MAY resolve to. With the cursor on a field declaration name, it returns all results that the path constructed from the field's name, and its field's name (and so on) MAY resolve to.
Special-case close function calls so that paths can resolve through fields within the argument to close.
Encodings
# character, shortening names and ensuring compatibility with the wider JSON Schema ecosystem. This required deprecating encoding/jsonschema.GenerateConfig.NameFunc in favor of NamesFunc.
The JSON Schema encoder is improved to support list.UniqueItems and standalone validators, to use maxItems and minItems instead of maxLength and minLength for lists with prefix elements, and to generate description keywords for doc comments.
Several closedness bugs in the JSON Schema encoder have been fixed, ensuring that the generated JSON Schema behaves the same way as the original CUE definition.
The JSON Schema decoder is improved to better handle the prefixItems keyword.
The ProtoBuf decoder now resolves relative references following the usual scoping rules, instead of always resolving them against the top-level scope.
Standard library
Add time.ToUnix and time.ToUnixNano, which convert an RFC3339Nano time value into seconds or nanoseconds since the Unix epoch, complementing the existing Unix builtin.
strconv.FormatFloat now accepts a string format parameter, like FormatFloat(3.14, "e", 4, 64).
list.MatchN now shows what expected value it's matching against when it fails.
The net IP APIs now consistently return an error on invalid input types.
Go API
Using cue.Values concurrently is now fully supported, which required deprecating cue.Value.Context. If you encounter any races or bugs, please report them via the issue tracker.
cue/load now supports loading from an io/fs.FS, as outlined in proposal #4285. Loading file embeds through Config.Overlay and Config.FS is supported now as well.
cue/ast/astutil deprecates Sanitize in favor of the new SanitizeFiles API, given that Sanitize on a single file cannot know if another file in the same package shadows builtin names like self.
Add Path.Compare and Selector.Compare, providing allocation-free total ordering suitable for slices.SortFunc.
Clarify that cue/format indents with a tab width of 4 by default.
A new fuzzer has been introduced in the cue package, checking that the parser doesn't crash and that its results are consistent with the rest of the Go APIs like cue/literal. So far, it has already resulted in seventeen bug fixes.
The cue.Interpreter option API has been deprecated in favor of cue.WithInjection, which is a better name going forward.
cue/ast.File.Imports, deprecated in mid 2025 in favor of cue/ast.File.ImportSpecs, is now removed.
cue.Instance methods Lookup, LookupDef, LookupField, and Fill are now removed.
modconfig.Registry interface is changed to report default major versions, which is required for resolving unversioned imports against each dependency module's own defaults. Clients that implement or wrap the interface will need to update. The new interface is future-proofed for upcoming modules changes.
Full list of changes since v0.16.0
- [release-branch.v0.17] internal/mod: resolve module replacements via minimum-version selection by @rogpeppe in
0fc639b - cue/format: revert #4296 regression test by @mvdan in
e73658d - cue/format: revert manual-AST field alignment fix by @mvdan in
c3f08a1 - cue/format: revert issue #1006 test cases by @mvdan in
60e1bb7 - cue/format: revert list and call argument column alignment fix by @mvdan in
3f7aafe - cue/format: revert spurious empty line fix by @mvdan in
e2eb7f5 - cue/format: revert Option-behavior test by @mvdan in
0fa6c09 - cue/format: revert default tab width change from 8 to 4 by @mvdan in
1e07f16 - cue/format: revert multiline string interpolation indentation fix by @mvdan in
7190842 - internal/cueexperiment: teach v0.17 about the formatv2 experiment by @mvdan in
8d2db9d - cmd/cue: test sharing CUE_EXPERIMENT=formatv2 across v0.17 and v0.18 by @mvdan in
ac083b5 - Revert "internal/core/compile: return Disjunction directly from or() builtin" by @mvdan in
bc31ef8 - all: hide the "ini" decoder for v0.17 by @mvdan in
0f15eed - internal/core/compile: re-run with CUE_UPDATE=1 by @mvdan in
4bec06b - all: stop using "directive" terminology for module replaces by @mvdan in
9916719 - cmd/cue: test that mod publish rejects an invalid module path by @mvdan in
376a328 - mod/modfile: rename the local-module.cue replace field to replaceWith by @mvdan in
b32aca7 - internal/ci: stop running trybot jobs with pull_request_target by @mvdan in
61bcbc9 - internal/filetypes: shrink embedded toFile lookup tables by @mvdan in
01907a9 - internal/core/adt: do not freeze fieldSetKnown while an own field task is pending by @mvdan in
906c3e9 - cue/testdata/eval: add test for issue 4392 list-in-let freeze regression by @mvdan in
7d77fe7 - mod/modzip: reject a downloaded module containing local-module.cue by @rogpeppe in
4d73286 - cue/cmd: more replacement test cases by @rogpeppe in
a4372d3 - cmd/cue: reject non-string label values for --path by @mvdan in
5a0f4f7 - cmd/cue: add test for --path with a non-string label value by @mvdan in
772d1d3 - update dependencies ahead of v0.17.0-alpha.3 by @mvdan in
b7d1625 - cmd/cue: drop github.com/google/shlex test dependency by @mvdan in
69bf7d7 - cue/load: accept package arguments after file arguments by @mvdan in
dd80111 - cmd/cue: add test for package arguments listed after files by @mvdan in
ed3622b - internal/cuetxtar: port old stats framework by @mpvl in
489b249 - encoding/ini: pass token.Pos through the decoder directly by @mvdan in
91a3f18 - encoding/ini: minor decoder cleanups by @mvdan in
5b8ba6e - encoding/ini: reject section and property name collisions by @mvdan in
eb8ac73 - cue/testdata: add missing error output for issue2627 by @mpvl in
092c281 - Revert "cue/errors: augment paths of wrapped errors" by @mvdan in
a361a5b - cmd/cue: add replace directive support to mod edit by @rogpeppe in
9984dae - internal/mod/modload,mod/modzip,cmd/cue: tidy and publish two-file modules by @rogpeppe in
5adf7f5 - mod/modfile,cue/load: read replace directives from local-module.cue by @rogpeppe in
12ecd27 - all: add core plumbing for module replace directives by @rogpeppe in
74d78c1 - cue/build,cue/load: fix hidden-field namespace for versioned imports by @rogpeppe in
b159ed1 - cue/testdata: add regression test for issue #2937 by @mvdan in
39d5c4e - cue/errors: augment paths of wrapped errors by @mvdan in
71c13d2 - pkg/encoding/json: add test for Validate hiding the failing field by @mvdan in
8507be6 - pkg/time: add ToUnix and ToUnixNano builtins by @mvdan in
d5a3fb7 - cmd/cue: honor -l/--path when exporting CUE values by @mvdan in
0abb86e - cmd/cue: add test for export -l with CUE output by @mvdan in
14d7d4d - all: make more use of string cut/trim/contains APIs by @mvdan in
40ad26f - internal/mod/modpkgload,cue/load: resolve major version defaults per module by @rogpeppe in
b24b39c - cue: format builtin call's function operand as a bare reference by @mvdan in
7392c8e - cue: add test for builtin call function operand formatting by @mvdan in
72ff12b - cue/parser: support try clauses in list literals by @mvdan in
b0a4125 - cmd/cue: point to 'cue help flags' from the --with-context flag by @mvdan in
8b9f8be - cmd/cue: evaluate --with-context labels against the source data by @mvdan in
9bb021f - mod/modconfig: lazily initialize registry clients by @mvdan in
44f24f1 - cmd/cue: test various command scenarios without cache/config dirs by @mvdan in
445c76d - cmd/cue: add test for label references with jsonschema import by @mvdan in
f33b9de - internal: only wrap over-long generated comment lines by @mvdan in
b682521 - encoding/jsonschema: add test for doc comment reflow by @mvdan in
fa683ed - internal/core/adt: handle cycle placeholder for composite builtins by @mpvl in
32244d1 - internal/core/adt: guard nodeContext free on refCount by @mpvl in
03748aa - internal/cuetxtar: fix inline runner writeStruct cycle and BasicType embed by @mpvl in
afa5272 - cue/testdata: add test case demonstrating #2627 reopen by @mpvl in
684e354 - internal/core/adt: resolve imports to a per-evaluation instance by @mvdan in
86eb4f1 - cmd/cue: add test cases for issues 4370 and 4371 by @rogpeppe in
230bbbb - internal/mod: minor module-related code improvements by @rogpeppe in
964c012 - internal/core/adt: test optional field referencing pushed-down comprehension by @mvdan in
32e6da5 - encoding/jsonschema: compile CRD schema only once by @mvdan in
139794b - internal/core/adt: attribute failed try references to the owning body by @mvdan in
8c8c47c - cue/testdata: add regression tests for nested try clauses by @mvdan in
f7a59da - internal/core/adt: fire comprehensions on let-bound self references by @mvdan in
f6d7894 - internal/core/adt: add test for comprehensions on let-bound self references by @mvdan in
c60ba81 - internal/core/adt: bound self-feeding disjunction recursion in cycle detection by @mvdan in
43d216f - cue/testdata: add a test for the cycle-detection blowup of issue #4377 by @mvdan in
e7d5121 - cue: add regression test for FillPath exporting fields as optional by @mvdan in
00df6eb - internal/core/compile: detect structural cycles in self-referential matchIf by @mvdan in
ec1313c - internal/core/compile: detect structural cycles in self-referential matchN by @mvdan in
d1a6540 - cue: accept a leading index in ParsePath by @mvdan in
0b61fdf - cue: add TestPaths cases for a leading index in a path by @mvdan in
a035333 - cue: give each TestPaths case its own CUE input by @mvdan in
5cf0e58 - pkg/list: add regression test for list.Contains with defaults by @mvdan in
7c6d8ae - .claude: add a skill to draft release notes from a commit log by @mvdan in
7935fe8 - internal/ci: bump Go and goreleaser for the upcoming alpha by @mvdan in
c2a8155 - encoding/jsonschema: mark generation as experimental by @rogpeppe in
223cfa7 - encoding/protobuf: translate google.protobuf.Struct to an open struct by @mvdan in
ef3e0ee - internal/core/adt: report true element count for list length mismatch by @mvdan in
d474938 - cue/testdata: add test for list-length error with comprehensions by @mvdan in
40961bb - cue: fix Value.ReferencePath after Eval when sharing is disabled by @mvdan in
9a6d76d - cue: clarify Value.ReferencePath path semantics by @mvdan in
0adb8dd - pkg/list: report a missing less field as a fatal error by @mvdan in
6aa4a11 - cmd/cue: fix vet -d resolving a hidden constraint by @mvdan in
5651def - cmd/cue: add test for vet -d with a hidden constraint by @mvdan in
1a0c02c - pkg/encoding: report every Validate conflict by @mvdan in
81f9d1b - pkg/encoding: add tests for Validate reporting a single conflict by @mvdan in
5310062 - mod/modconfig: delete the dummy $DOCKER_CONFIG dir when the tests are done by @mvdan in
ffb2fbd - cue/errors: deduplicate without rendering errors unnecessarily by @mvdan in
e9f02ca - cue/errors: report all distinct errors at the same position by @mvdan in
774942d - cue/errors: add a test recording how often removeMultiples renders errors by @mvdan in
2ba0d46 - cue/errors: add tests for distinct errors dropped at the same position by @mvdan in
a753484 - modconfig: update ociregistry to pick up ociauth fix by @mvdan in
e5e958e - internal/core/debug: only print integer-labeled arcs of a list value by @mvdan in
8fdf9d5 - pkg/list: add a regression test for list error printing hidden arcs by @mvdan in
f9b4c66 - internal/filetypes: clarify error for combined file type and file name by @mvdan in
b15022d - cmd/cue: add a regression test for issue 3187 by @mvdan in
8273d6f - cue: avoid panic in Value.Path for dereferenced let bindings by @mvdan in
58f2356 - internal/core/adt: recompute cached let results that resolved to a cycle by @mvdan in
4a67df9 - cue/testdata/cycle: add regression test for issue 4357 by @mvdan in
ffc0541 - cue/testdata: add #4149 regression test for
orstructural cycle by @mvdan in803c837 - internal/cuetxtar: keep nested inline positions relative by @mpvl in
dede65a - internal/core/adt: detect structural cycle through inline conjunction by @mvdan in
f518389 - internal/core/compile: update compile file comments by @mpvl in
5a6110a - internal/core/adt: loosen structure-sharing skip in cycle detection by @mpvl in
aae3830 - internal/core/adt: bound self-recursion in cycle detection skip by @mpvl in
297d254 - internal/core/adt: do not treat structure sharing as a cycle by @mpvl in
c37cf24 - internal/core/adt: scope task context error before deferred tasks by @mpvl in
697512f - cue/testdata: add #4367 regression tests by @mpvl in
2735d5a - internal/core/adt: skip typo check on cross-context Finalize by @mpvl in
a9f3f2a - all: adopt the cueckoo @-import guidance mechanism by @myitcv in
5f10676 - all: fix reversed argument order in cmp.Diff calls by @mvdan in
82d70cb - cue/testdata/cycle: add regression test for issue 3364 by @mvdan in
40caafe - encoding/protobuf: respect lexical scoping rules by @SteveRuble in
d34b9f5 - internal/mod/modregistry: bump ociregistry to merge auth sources by @mvdan in
033671e - cmd/cue: add test for mixing Docker and Podman auth files by @mvdan in
268fe24 - internal/core/adt: skip in-flight nodes when reclaiming buffers by @mpvl in
489f4a9 - cmd/cue: preserve mtimes in cue fix and cue trim no-op rewrites by @mvdan in
28b3474 - cmd/cue: document mtime drift in fix and trim by @mvdan in
e56df9e - cue/parser: allow a newline before the closing bracket of an index expression by @mvdan in
fa44ce4 - cue/testdata: add regression test for self-referential builtin cycles by @mvdan in
abe46a1 - internal/core/compile: include label-aliased fields in cross-file scope by @mvdan in
4157262 - cue/testdata: add test for issue #4312 by @mvdan in
9888e6f - internal/core/export: fix label references in pattern constraints by @mvdan in
0c639f4 - internal/core/compile: strip @test attributes from mirrored inputs by @mpvl in
b343757 - internal/core/adt: flush label-only cyclic CallExpr deferments by @mpvl in
dd5b4c0 - update dependencies ahead of the next alpha release by @mvdan in
2fddd86 - cmd/cue: fix json error tests on Go tip by @mvdan in
bd45f3e - cue/testdata: add comprehension pushdown regression for inline conjunction iterator by @mpvl in
29b71ea - encoding/ini: make dotted section-name nesting configurable by @ReginaZhangMS in
cd0f418 - internal/core/adt: remove unused nodeContextState.hasOpenValidator by @mvdan in
ae29eac - internal/core/adt: remove unused Bottom.Permanent field by @mvdan in
8f8a581 - internal/core/adt: remove unused Bottom.ForCycle field by @mvdan in
b24e6fd - internal/core/adt: remove unused StructLit.isComprehension field by @mvdan in
0e0dbc1 - internal/core/adt: remove unused StructLit.IsOpen field by @mvdan in
023bcd0 - internal/ci: set GORACE in the base config by @mvdan in
0e2745d - internal/core/adt: fix data race in concurrent FillPath by @mvdan in
06056b9 - pkg/tool/exec: default env to an empty struct by @mvdan in
74211d7 - cmd/cue/cmd: add test for exec.Run JSON marshaling by @mvdan in
f44f49a - all: make use of strings.CutPrefix by @mvdan in
34f13a2 - cue/testdata: add test for issue #4174 by @mvdan in
75c434d - cue/testdata: add test for issue #4094 by @mvdan in
e0a7df6 - cue/testdata: add test for issue #4091 by @mvdan in
dd8ef3d - cue/parser: remove pre-v0.2 alias special error by @mvdan in
1889ee7 - cue/parser: add test cases for pre-v0.2 alias handling by @mvdan in
f68b1ed - cue/parser: remove dead error test code by @mvdan in
d636840 - internal/core/compile: isolate txtar goldens by @mpvl in
dfc376f - internal/core/adt: skip Disjunctions on ancestor-cycle arcs by @mpvl in
a10029d - internal/core/adt: fix stale BaseValue cycle on cross-package imports by @mpvl in
b7f911d - cue: add Unify regression test for comp-produced sub-vertex by @mpvl in
6a67e3f - internal/core/adt: re-deref v in Vertex.lookup after state.process by @mpvl in
d30d51a - internal/core/adt: defer fieldSetKnown while a parent task is still active by @mpvl in
9e96d2c - internal/core/adt: dependency-tracking comprehension pushdown by @mpvl in
339485d - encoding/jsonschema: fix closedness handling in Generate by @rogpeppe in
3767108 - encoding/jsonschema: pass closedness mode through OrOp in Generate by @rogpeppe in
b01cdb4 - encoding/jsonschema: add test case by @rogpeppe in
c0afa64 - encoding/jsonschema: add tests for closedness bugs in Generate by @rogpeppe in
2db6796 - internal/core/toposort: interleave sibling Repeats in field ordering by @mpvl in
00349c2 - internal/core/export: add another test for the toposort bug by @mpvl in
93c3a70 - internal/core/export: add topocomp regression test by @mpvl in
65492ed - internal/core/export: dedup conjuncts sharing the same body AST by @mpvl in
18911c7 - internal/core/adt: add reproducer for unity failure by @mpvl in
defac2f - cue/testdata: add regression test cases to comprehensions/pushdown by @mpvl in
bd146e1 - cmd/cue: surface [inputs] and [flags] in command help by @mvdan in
bfa0112 - mod/modcache: retry .partial file writes on Windows by @mvdan in
f438e31 - internal/ci: allow specifying a custom ref in checkoutCode by @mvdan in
697a664 - internal/core/adt: propagate cycle errors via state in reportFieldError by @mpvl in
424fe38 - internal/core/adt: tighten up states by @mpvl in
e3cf2cd - internal/core/adt: add some edge case tests by @mpvl in
8421e7e - cue: handle ArcPending and ArcNotPresent in fromArcType by @mpvl in
3b7b66e - cue: drop stale same-runtime/build requirement from Value docs by @mvdan in
e512a32 - cmd/cue: error when -d/--schema is used without non-CUE input by @mvdan in
0a3d5ba - cmd/cue: test current -d behavior with only CUE input by @mvdan in
0409f59 - add a SECURITY.md for easier GitHub discovery by @mvdan in
8115669 - cue/testdata: relax test assertions for refactoring stability by @mpvl in
55a7b0a - internal/golangorgx: remove unused dead files by @mvdan in
84032e7 - tools/fix: remove the unused processor type by @mvdan in
a07a818 - internal/core/adt: identified faulty tests by @mpvl in
22e3b46 - internal/core/adt: localize cycle in disjunct sharing path by @mpvl in
7c6198e - internal/core/adt: yield on incomplete reference to in-flight node by @mpvl in
17a5fa8 - internal/cuetxtar: honor any= in cmpErr (nested @test(err, any, ...)) by @mpvl in
5f571a5 - internal/cuetxtar: replay source @test directives for permute by @mpvl in
a90bc50 - internal/cuetxtar: render struct-level errors as bare | with err annotation by @mpvl in
a59b4cd - internal/cuetxtar: auto-promote @test(eq:todo) under CUE_UPDATE by @mpvl in
ea842e9 - internal/cuetxtar: tighten cmpStruct/cmpConjunction against silent passes by @mpvl in
dbda38d - internal/core/adt: force update cleanup by @mpvl in
b3338e8 - encoding/jsonschema: propagate recursive closedness in Generate by @mvdan in
2b2987e - encoding/jsonschema: test recursive closedness of generated schemas by @mvdan in
5a0dd64 - encoding/jsonschema: better definition names in Generate by @rogpeppe in
8e638c0 - cue: add Compare methods to Path and Selector by @rogpeppe in
63c8014 - internal/anyhash: new package by @rogpeppe in
019f9df - internal/ci: bump Go and goreleaser versions for v0.17.0-alpha.1 by @mvdan in
d11a8f8 - cue/ast/astutil: deprecate Sanitize in favor of SanitizeFiles by @mvdan in
89b80ad - cmd/cue/cmd: add regression test for hidden fields like _5 by @mvdan in
1ed8051 - cmd/cue/cmd: add regression test for vet list.Contains errors by @mvdan in
c2f7338 - update dependencies ahead of v0.17.0-alpha.1 by @mvdan in
03f2868 - cue/testdata/cycle: add test for issue #4253 by @mvdan in
f31ac4d - encoding/ini: introduce an INI decoder by @ReginaZhangMS in
e5482ee - cue/load,internal/mod/modpkgload: respect nested cue.mod boundaries by @mvdan in
de61149 - all: use slices and maps iterators for collect-and-sort patterns by @mvdan in
8345fc2 - cmd/cue/cmd: document wrong nested-module behavior for issue 2707 by @mvdan in
8ff6cee - all: use strings.SplitSeq and strings.Cut to avoid intermediate slices by @mvdan in
1ea5ad5 - all: fix stray and misplaced doc comments by @mvdan in
64eaf2f - cue/inject/embed: resolve files via cue/load.Config's FS or Overlay by @mvdan in
b0ce1f5 - internal/core/export: sanitize Profile.Value output by @mvdan in
d846deb - cue: add regression test for predeclared builtin shadowing in %v by @mvdan in
6040780 - cmd/cue: list user-defined commands in cue cmd --help by @mvdan in
fbcd9f7 - internal/core/export: mark predeclared builtin references as such by @mvdan in
d3187e5 - internal/core/export: add test for predeclared builtin shadowing by @mvdan in
922493a - internal/core/adt: fix conjunction semantics for opened embeddings by @mpvl in
619d46e - tools/fix: extract and extend explicitopen fix by @mpvl in
349c457 - cmd/cue: add -C flag, like
goandgitby @mvdan in079f1a3 - internal/core: __reclose: detect and restore non-recursive closing by @mpvl in
3091146 - tools/fix: add inline @test framework by @mpvl in
f679d39 - cue/ast/astutil: detect aliasv2 postfix label-name redeclarations by @mvdan in
27b5e67 - cue/ast/astutil: add test coverage for redeclared alias errors by @mvdan in
6d45692 - internal/core/adt: document why toComplete hook must stay by @mpvl in
5ae2c12 - internal/core/adt: remove completeNodeTasks from doDisjunct by @mpvl in
a6b5a9f - internal/core/adt: strengthen field-set and arc-type checks by @mpvl in
5750aa5 - .claude: remove deny clause by @rogpeppe in
aa0b641 - encoding/jsonschema: support
descriptionkeyword by @rogpeppe in70043a5 - cue: allow and enforce parens for single postfix alias by @mpvl in
d05d75f - internal/core/adt: remove dead code in process and evalStateCI by @mpvl in
1ebe938 - internal/core/adt: fix error propagation bug in inline structs by @mpvl in
881d9cf - internal/core/adt: remove support for list task dependencies by @mpvl in
75af110 - internal/core/adt: remove taskPos field from scheduler by @mpvl in
003a182 - internal/core/adt: add handleParents and processAncestors by @mpvl in
61fb61b - cue/ast/astutil,tools/fix: add cross-file shadowing detection for predeclared identifiers by @mpvl in
e249168 - .gitignore: ignore .gocache by @mpvl in
09c0a65 - internal/core/adt: streamline task equality checking by @mpvl in
24446ee - internal/core/adt: get rid of schedFINALIZING by @mpvl in
fd21f07 - internal/cueexperiment: add ShortCircuit experiment by @mpvl in
7946990 - cue/format,fix: handle trailing commas in lists by @mpvl in
0fdc3b3 - cue/parser: allow omitting commas in lists by @mpvl in
70a9648 - Revert "internal/core/adt: remove now-unnecessary panic workaround" by @mvdan in
1b32beb - internal/lsp: add toggle surrounding struct braces code action by @myitcv in
cb4bd6a - internal/core/adt: unify builtin-range matching under MatchBuiltinRange by @mvdan in
99c9c5c - internal/core: render predeclared ranged numeric types by name by @mvdan in
ba93a23 - cmd/cue: add regression test for ranged numeric type names by @mvdan in
04f2c29 - internal/core/debug: document Config fields by @mvdan in
8a3c77c - cue/testdata: re-test with CUE_UPDATE=1 by @mvdan in
8165de0 - cue/load: support absolute directory paths as package args by @mvdan in
c08ec6d - cmd/cue: test that package paths outside the module are rejected by @mvdan in
af9f89b - cue/ast: add Interpolation.Quotes helper by @mvdan in
f2dcaea - cue: remove long-deprecated and hidden Instance methods by @mvdan in
7efad27 - all: allow newlines around interpolations in single-line strings by @mvdan in
35cefbf - cue/literal: reject trailing characters after SI multiplier by @mvdan in
6ed6b1e - cue: use %q rather than %s in fuzzing errors by @mvdan in
fa30adf - cue/literal: reject NUL bytes in ParseNum by @mvdan in
728b6f6 - cue/scanner: accept SI multiplier after a bare 0 by @mvdan in
a00881d - cue/scanner: align raw quote lexing with cue/literal by @mvdan in
a655ed1 - cue/cuecontext: allow multiple injections for a given kind by @rogpeppe in
311bfa7 - cue/scanner: fix greedy lexing of _ followed by | by @myitcv in
e26d4a7 - all: adopt cueckoo guidance SessionStart hook by @myitcv in
3ce5d41 - CLAUDE.md: use cueckoo guidance as a base by @myitcv in
9802e5e - internal/cuetxtar: remove @test(leq) by @mpvl in
a24e1f8 - internal/cuetxtar: fix two inline runner bugs by @mpvl in
5f95d22 - cue/testdata: convert txtar tests to inline @test format by @mpvl in
5fc6ae2 - cue/testdata: add @test to cycle/issue3527 by @mpvl in
78a2962 - cue/testdata: rename #todo:inline: markers by @mpvl in
32d96b5 - internal/cuetxtar: add field coverage checking by @mpvl in
236f4eb - cue/ast: remove the deprecated File.Imports slice by @mvdan in
68d9c0b - cmd/cue: make tests pass with Go at tip (1.27) again by @mvdan in
f1be256 - internal/cuetxtar: use structural_cycle code by @mpvl in
96651e4 - internal/cuetxtar: auto-manage out/errors.txt by @mpvl in
50022d1 - internal/cuetxtar: merge permuteCount into permute directive by @mpvl in
d0a9f9a - cue/testdata/benchmarks: convert to inline @test format by @mpvl in
59c78d5 - internal/cuetxtar: simplify empty @test() by @mpvl in
3820643 - cue/testdata/cycle: harder cases by @mpvl in
0de9845 - cue/testdata: conversion of cases marked as "hard" by @mpvl in
9045f62 - cue/testdata: more issue descriptions and links by @mpvl in
96b4a97 - internal/core/export: fix infinite recursion in vertex() on cyclic BuiltinValidator by @mpvl in
fbc8eaa - internal/cuetxtar: convert runner tests to txtar inline format by @mpvl in
d3cd0d8 - cue/testdata: add shareID annotations and fix pos= line numbers by @mpvl in
69a8bc6 - internal/cuetxtar: handle field aliases in labelSelector by @mpvl in
ca5b6d1 - cue/testdata/comprehensions: manual corrections by @mpvl in
4cdd361 - internal/cuetxtar: emit embedded scalars by @mpvl in
7e957c9 - internal/cuetxtar: include definitions in list elements of @test(eq) by @mpvl in
c2f87c5 - cue/testdata/eval: manual corrections by @mpvl in
d1f08be - cue/testdata/resolve: manual corrections by @mpvl in
9a8f69b - cue/testdata: convert remaining medium tests by @mpvl in
0fc9179 - cue/testdata: convert disjunctions tests to inline @test format by @mpvl in
635c10b - cue/testdata: convert comprehensions tests to @test format by @mpvl in
d2f6c3e - internal/cuetxtar: enhance @test(err) fill by @mpvl in
994cb28 - cue/testdata: convert eval/ tests to @test format by @mpvl in
6fbe77c - internal/cuetxtar: fix two @test(err) bugs and unify validation logic by @mpvl in
2c81a10 - mod/modregistrytest: add metadata capability by @rogpeppe in
97b4cd0 - internal/cuetxtar: emit @test(err,...) annotation for error fields in eq fill by @mpvl in
aa02a6d - internal/cuetxtar: add txtar test by @mpvl in
dd2e03a - cue/testdata: force update cleanup by @mpvl in
ea287c1 - internal/cuetxtar: fill nested pos=[] by @mpvl in
b8bbf50 - pkg/tool/http: restore Do request header/trailer to accept single strings by @mvdan in
c476e86 - cmd/cue/cmd: use goproxytest.Setup for per-test proxy modules by @rogpeppe in
89bcf7a - cue/testdata: convert resolve/ tests to inline @test format by @mpvl in
97ee8d4 - internal/cuetxtar: fix deduplication for at= directives by @mpvl in
58a3f02 - internal/cuetxtar: extend shareID checks and fix path aliasing by @mpvl in
edbf489 - internal/cuetxtar: improve eq value formatter by @mpvl in
8e08414 - internal/cuetxtar: split inline.go by @mpvl in
ac993a2 - cue/testdata: convert definitions/ tests to inline @test format by @mpvl in
d7cb1b1 - cue/testdata: convert definitions/ and comprehensions/ tests by @mpvl in
035331e - internal/cuetxtar: detect misplaced @test by @mpvl in
388b7b8 - internal/cuetxtar: add custom eq formatter for hidden fields and disjunctions by @mpvl in
0890c56 - internal/cuetxtar: fix hidden-field path handling in source AST walker by @mpvl in
dc09eb7 - internal/cuetxtar: restrict @test(allows) to struct/list by @mpvl in
6a50f74 - internal/cuetxtar: improve @test(eq) formatting and body validation by @mpvl in
9f6b851 - internal/cuetxtar: fix error message formatting by @mpvl in
9e38c54 - internal/cuetxtar: add @test(allows, sel) directive by @mpvl in
4f32ebb - internal/cuetxtar: omit optional error fields in closed structs by @mpvl in
1cc2518 - internal/cuetxtar: fix shared disjunction eq; add at= support by @mpvl in
83c2843 - cue/testdata: convert choosedefault/ compile tests to use @test by @mpvl in
d178621 - cue/testdata: convert builtins tests to inline @test format by @mpvl in
592dd33 - internal/cuetxtar: unify write-backs; strip test attrs from formatted values by @mpvl in
0096aed - internal/cuetxtar: fix error positions to reference original source by @mpvl in
2d88651 - internal/cuetxtar: rename debugOutput to debug by @mpvl in
ad75f35 - internal/cuetxtar: fix debug attr formatting by @mpvl in
806d5cc - cue/testdata: add missing issue comments to txtar files by @mpvl in
54759dc - cue/testdata: add issue comments to txtar test files by @mpvl in
c426c7f - cue/testdata: convert comparison, interpolation, list, and scalar tests to inline format by @mpvl in
748a3db - internal/cuetxtar: detect hidden/def fields in non-struct @test(eq) by @mpvl in
50f436a - doc/ref: treat "$" as a valid identifier in the spec by @mvdan in
658e2c5 - cue/literal: reject triple quotes at line start in multiline strings by @mvdan in
52810f7 - cue/testdata/fuzz: remove a file I added by accident by @mvdan in
531e826 - cue: exempt preamble keywords from fuzzer's ParseFile vs ParseExpr check by @mvdan in
9f0aeee - cue/build, cue/load: add ModuleVersion field to build.Instance by @rogpeppe in
4c72d71 - internal/core/runtime: rename Interpreter/Compiler to Injection/Injector by @rogpeppe in
6d814c7 - internal/lsp: implement organise imports code action by @cuematthew in
70a104f - pkg/net: work around upstream idna bug breaking net.FQDN validation by @mvdan in
f001187 - pkg/net: add regression tests for net.FQDN with invalid domain names by @mvdan in
1e47014 - internal: remove cuetest.Chunker by @mvdan in
d574f75 - internal/core/runtime: refactor ExtractAttrsByKind by @rogpeppe in
3798917 - internal: replace ParseAttrBody with ParseAttr by @rogpeppe in
069f279 - internal/core/export: fix hidden field visibility for anonymous pkgID by @mpvl in
c87cd58 - cue/literal: reject invalid UTF-8 in Unquote by @mvdan in
dc8d0f7 - cue/scanner: reject leading-zero integers followed by range operator by @mvdan in
88f4d9d - cue/parser: use named error return in ParseExpr to fix error loss on bail-out by @mvdan in
f7464a8 - cue: always check that ParseExpr doesn't panic in the fuzzer by @mvdan in
6aad43f - mod/modconfig: set DOCKER_CONFIG in tests to prevent hangs by @mpvl in
30718b7 - cue/literal: reject literal NUL bytes in Unquote by @mvdan in
6ba6d06 - cue: add Attribute.Args iterator by @rogpeppe in
856a378 - cue: refactor attribute test by @rogpeppe in
ed15be3 - internal/core/path: remove unused internal package by @mvdan in
54c2b42 - internal/copy: remove unused internal package by @mvdan in
a84d23d - cue/literal: fix panic when parsing an empty string by @rogpeppe in
aa9ec0f - internal/cuetxtar: fix astcmp for embedded scalars by @mpvl in
b97865c - internal/cuetxtar: fix error message formatting by @mpvl in
d55ba61 - internal/cuetxtar: fix permuteCount lookup and log permutation count by @mpvl in
50a2f84 - internal/cuetxtar: error on suberr without = by @mpvl in
ba24b41 - cue/parser: initialize experiments in ParseExpr by @mvdan in
2b939e8 - cue/literal: reject invalid characters after digits in ParseNum by @mvdan in
9b4d4a4 - cue/scanner: don't let bare \r prevent multiline string closing by @mvdan in
719111c - cue/scanner: refactor TestScan to use named fields and a want field by @mvdan in
470120e - internal/core/adt: stop comparing V3/V2 stats in TestEvalV3 by @mpvl in
288a9fd - internal/cuetxtar: fix CUE_UPDATE=force for eq by @mpvl in
34ded2f - internal/cuetxtar: report @test parse errors by @mpvl in
b1846d7 - internal/cuetxtar: add err:todo, incorrect, and p= modifiers by @mpvl in
6a8143b - cue/testdata: add issue headers and convert tests to inline format by @mpvl in
0ff6db1 - internal/cuetxtar: fix pattern label comparison in @test(eq, ...) by @mpvl in
63752f9 - internal/golangorgx: delete Go-specific analyzer infrastructure by @mvdan in
f70cf43 - lsp/eval: correct lsp evaluator for imports by @cuematthew in
fae4cc7 - internal/golangorgx: delete unused gopls protocol/command package by @mvdan in
8277362 - cue/literal: reject consecutive underscores in numbers like the parser does by @mvdan in
df4ddd9 - cue/literal: reject leading-zero integers like the parser does by @mvdan in
a31acf2 - cue: fuzz invalid CUE source as well by @mvdan in
560ba4b - cue/scanner: reject multiline strings with non-matching whitespace by @mvdan in
0e01196 - list: suggest MatchN for non-concrete values in Contains doc by @mxey in
e21b59a - cue: add more entries to the fuzzing seed corpus by @mvdan in
0d9aef6 - cue/literal: allow triple quotes inside multiline string content by @mvdan in
4bc27c4 - cue/scanner: expand checkError to scan past interpolations too by @mvdan in
fa9c31f - update the rest of the direct dependencies by @mvdan in
b9b0210 - update all golang.org/x/... dependencies by @mvdan in
de8a97c - cue/testdata: re-test with CUE_UPDATE=1 by @mvdan in
b06b49a - internal/lsp: support lazy code action edit resolution by @cuematthew in
c28dcea - all: rename fallback keyword to otherwise by @mpvl in
58cc93c - pkg/list: improve error message for MatchN by @mxey in
1b8f058 - cue/testdata: convert txtar tests to inline @test format by @mpvl in
9dd28f0 - internal/cuetxtar: add hint= flag and unknown-flag validation to @test directives by @mpvl in
7d7052e - cue/testdata/eval: convert eval txtar tests to inline @test format by @mpvl in
fcb5e33 - internal/cuetxtar: fix @test(debugOutput) multiline string format by @mpvl in
fc0e52b - internal/cuetxtar: simplify regression guard for @test(eq) mismatches by @mpvl in
c882b03 - internal/cuetxtar: require commas between pos= specs by @mpvl in
b1f4929 - internal/cuetxtar: add at=, pos= order-independence, and hidden field guards by @mpvl in
a909542 - internal/cuetxtar: add args= and suberr= to @test(err, ...) by @mpvl in
7a97228 - internal/cuetxtar: support suberr=(...) in @test(err, ...) by @mpvl in
aecf5fe - internal/cuetxtar: move error assertion code to inline_err.go by @mpvl in
1513726 - internal/cuetxtar: support shareID assertions in inline tests by @mpvl in
953a252 - cmd: fix link to issue 2031 by @mxey in
c237724 - internal/cuetxtar: document new @test directives by @mpvl in
afc75bc - internal/cuetxtar: show ./ prefix in out/errors.txt paths by @mpvl in
3456ab0 - internal/cuetxtar: fix inline loader by @mpvl in
aac9498 - cue/testdata: convert easy inline tests by @mpvl in
1c555aa - cue/testdata: convert issue2649 to inline by @mpvl in
6e5ebcf - internal/cuetxtar: support struct-embed form in @test(eq, ...) by @mpvl in
a8dddff - cue/testdata: mark unconverted tests by @mpvl in
6e0f91c - cue/testdata: convert list/comprehension tests by @mpvl in
f5c7dc5 - internal/cuetxtar: detect @test in comprehensions by @mpvl in
5e6eac8 - cue/testdata/basicrewrite: convert basic by @mpvl in
39c40b7 - internal/cuetxtar: support multi-code errors by @mpvl in
3189d7f - internal/cuetxtar: add out/errors.txt section by @mpvl in
94e7ceb - cue/testdata: convert fulleval/resolve by @mpvl in
aabdde7 - cue/testdata: convert tests to inline @test annotations by @mpvl in
1f46fae - internal/cuetxtar: add validator and todo support by @mpvl in
5d1f99a - internal/cuetxtar: add inline test runner by @mpvl in
d5ec6ca - lsp/eval: teach lsp to understand "close" by @cuematthew in
650c029 - lsp/eval: add tests showing current behaviour for close calls by @cuematthew in
4fe6dcb - doc/ref: clarify the rule for preceding whitespace in multiline strings by @mvdan in
6c3186b - cue/scanner: reject underscores in string escape sequences by @mvdan in
a3b2da7 - cue/scanner: reject octal and hex escapes in string literals by @mvdan in
2fccd15 - cue/literal: allow bare carriage return in single-line strings by @mvdan in
49e709a - lsp/eval: treat disjunctions the same as conjunctions by @cuematthew in
d28c79a - internal/lsp: debounce sending non-empty diagnostics by @cuematthew in
e3b45a0 - cue/scanner: reject exponents with no digits by @mvdan in
286fbab - internal/pkg: rely on the adt package to wrap call errors by @mvdan in
9572fbc - internal/core/adt: implement BuiltinValidator equality by @mpvl in
801a74a - cue: teach the fuzzer to check against cue/ast and cue/literal by @mvdan in
7f20f3e - cue/scanner: reject closing quotes of multiline strings not after a newline by @mvdan in
2f87503 - cue/scanner: reject __# as an invalid identifier by @mvdan in
b1dc725 - cue: teach the fuzzer to cover cue/format, ast.Walk, and astutil.Apply by @mvdan in
9a4eacf - cue: move fuzz_test.go from cue/parser and expand a bit by @mvdan in
c1e6de6 - protobuf/jsonpb: fix panic when decoding non-string bytes by @cuematthew in
cdc175b - internal/core/convert: avoid allocating when checking for omitempty by @mvdan in
f48f1de - internal/core/adt: use grouped allocation for let Vertex and Conjunct by @mvdan in
db07a41 - internal/pkg: remove unnecessary runtime fields by @mvdan in
08e8038 - internal/core/adt: use strings.Builder for interpolations by @mvdan in
5acaffb - internal/core/compile: return Disjunction directly from or() builtin by @mvdan in
a97cdb9 - all: remove support for infix div, mod, quo, and rem by @mvdan in
6b49d16 - internal/core/adt: fix !=null as top-level embedding losing constraint by @mpvl in
990bcf9 - internal/core/adt: add test for !=null as top-level embedding by @mpvl in
4739b2c - cmd/cue: add a regression test for issue #1595 by @mvdan in
3b9743e - remove f.txtar and gitignore any such files going forward by @mvdan in
56af02f - cue/testdata: add regression test for issue #1886 by @mvdan in
5e3b554 - cue/testdata: add a regression test for issue #2405 by @mvdan in
584547e - internal/core/adt: allocate tasks in chunks to reduce GC overhead by @mvdan in
4865a8e - internal/core/adt: avoid interface boxing in error creation by @mvdan in
fede7d9 - cmd/cue: add regression test for issue #1783 by @mvdan in
f5c2185 - internal/lsp: correct attributes in expressions by @cuematthew in
875bf82 - lsp/eval: add support for aliasv2 experiment by @cuematthew in
ef4f661 - lsp/eval: rework field name(s) analysis by @cuematthew in
62b93c3 - internal/core/adt: use inline buffer for error position slices by @mvdan in
98fc542 - internal/core/adt: use slices.Clip instead of slices.Clone for Conjuncts by @mvdan in
824cbfc - internal/core/adt: propagate ClosedNonRecursive for non-data vertices by @mvdan in
2c281cb - internal/core/adt: fix closedness check for cross-package embedded disjunctions by @mvdan in
c172d9c - internal/core/runtime: rename "test" extern interpreter to "testfn" by @mpvl in
2b3154a - internal/diff: use Myers algorithm for lists by @mpvl in
26db406 - internal/diff: memoize shared-vertex pairs to avoid re-traversal by @mpvl in
20e140f - cmd/cue: add regression test for issue #1834 by @mvdan in
cebad32 - cmd/cue: add regression test for issue #2575 by @mvdan in
a78c254 - cue/testdata: add regression test for issue #962 by @mvdan in
7473662 - cmd/cue: print error and benchmark results with CUE_BENCH by @mvdan in
bcabdbb - cmd/cue: test CUE_STATS_FILE and CUE_BENCH on failing evaluations by @mvdan in
b777709 - cue/load: fs.FS support by @rogpeppe in
d267795 - cue: clarify that values no longer need to come from the same context by @mvdan in
4c1f083 - cmd/cue: add exp gengotypes --outfile by @mvdan in
0716321 - internal/core/export: add regression test for issue 3714 by @mvdan in
b546fdd - pkg/strconv: allow string argument for FormatFloat format parameter by @mvdan in
36ee91d - internal/lsp/fscache: use internal.Package helper by @mvdan in
8a417a6 - all: use cue/ast.File.Preamble in two more places by @mvdan in
79b0698 - cmd/cue: swap BuildFile for BuildExpr in --path by @mvdan in
d5a7b9b - simplify and generalize
@externsupport by @rogpeppe ind1f58c6 - cmd/cue: add edge case tests for embed attributes by @rogpeppe in
de7f29a - lsp/extvalidator: support https://github.com/ remotes by @cuematthew in
d4d0005 - cmd/cue: add testscript for #2648 by @mvdan in
f8e86e8 - cmd/cue: reuse astutil.ToFile for --path expressions by @mvdan in
0f3b837 - cmd/cue: skip over null when importing with --path by @haoqixu in
31ab53b - cmd/cue: add tests for issue 3464 by @haoqixu in
52606f9 - cue/format: fix indentation of multiline strings with interpolation by @mvdan in
256bd97 - pkg/net: return errors for unexpected types in IP validators by @mvdan in
d2d85c7 - pkg/net: add regression tests for IP validators with unexpected types by @mvdan in
c1fa76c - mod/module,cue/load,internal/filetypes: reject version in import qualifier by @mvdan in
1de56c5 - cmd/cue: add tests for bad version and qualifier in import paths by @mvdan in
eab59f8 - internal/lsp: add support for evaluation via external validators by @cuematthew in
bf11a94 - tools/jsonrpc2: permit func enqueuing into message daisychain by @cuematthew in
48972ef - lsp/server: remove mutex by @cuematthew in
ce34b12 - gopls/cmd: remove unused code by @cuematthew in
52868cf - cue/format: change default tab width from 8 to 4 by @mvdan in
470250b - cue/format: add a test showing how each Option behaves by @mvdan in
3ab3da1 - mod/modfile,internal/mod: clean up now that #2733 is fixed by @mvdan in
6a7dca8 - internal/cueversion: bump for the upcoming v0.17 release cycle by @mvdan in
60dac4a - cmd/cue: suggest docker/podman login when OAuth2 device flow is unsupported by @mvdan in
295e51e - cmd/cue: add testscript for cue login when device code endpoint is unsupported by @mvdan in
a789bce - cmd/cue: clarify how to authenticate with standard OCI registries by @mvdan in
35f0a56 - cue/format: fix spurious empty line between definitions by @mvdan in
b6f4b6d - lsp/cache: improve rename by @cuematthew in
9a0566b - integration/workspace: add test showing bad behaviour by @cuematthew in
fe0649f - cue: allow concurrent use of Value by @rogpeppe in
5b2a1ff - doc/ref/spec.md: show multiple package attributes in example by @myitcv in
67c9c5b - internal/core/convert: simplify typeAssert by @rogpeppe in
03f71ff - cue/format: fix incorrect column alignment in lists and call args by @mvdan in
67e478b - cue/format: add test cases for issue #1006 by @mvdan in
3a3e2ab - internal/core/convert: fix astFromGoType for recursive types and shared AST pointers by @rogpeppe in
0feb8a8 - internal/core/compile: avoid mutating AST by @rogpeppe in
efbd321 - internal/core/convert: split FromGoType into AST and ADT phases by @rogpeppe in
a5034b4 - internal/core/export: fix alias/field name conflict in pattern constraints by @mvdan in
e429741 - internal/core/export: add regression test for alias/field name conflict by @mvdan in
a825637 - internal/encoding/gotypes: preserve type references through conjunctions by @mvdan in
820e153 - cmd/cue: add gengotypes test for conditional narrowing of a type reference by @mvdan in
757e683 - pkg: fix godoc mistakes across several packages by @mvdan in
f86d07c - internal/core/convert: fix panic when encoding pointer-receiver marshalers by @mvdan in
f087406 - cue/literal: make invalid multi-line string whitespace errors explicit by @mvdan in
a6075bd - cmd/cue: return an error for non-label --path expressions instead of panicking by @mvdan in
e098874 - encoding/json: clarify and test the behavior of nil data with Extract by @mvdan in
b06b9bd - cmd/cue: add test for package qualifier in subdirectories by @mvdan in
2ebb51d - cue/format: fix field alignment for manual ASTs with relative positions by @mvdan in
d84ff45 - cue/format: add regression test for #4296 by @mvdan in
bf001e0 - cue/format: clarify the default behavior for the spacing options by @mvdan in
5898489 - encoding: add godoc hints for cue/ast result types by @mvdan in
d8a8c79 - cue: improve error messages for hidden fields in paths by @myitcv in
dd80ba6 - internal/ci: default to a later version of the CI commit checks by @myitcv in
9147ea2 - cue/errors: use token.Pos.Compare in Positions by @mvdan in
c045ec2 - all: remove some unused code spotted by staticcheck by @mvdan in
4047528 - internal/core/compile: recognize ast.NewPredeclared by @mvdan in
b99401f - cue: add tests showing how ast.NewPredeclared fails to compile by @mvdan in
abfb224 - all: stop using XXX for examples and tests by @mvdan in
db09a3c - README: clarify that source archive builds lack version info by @mvdan in
c19c1c4 - doc/ref: start testing code blocks which we expect to fail parsing by @mvdan in
310f61c - lsp/server: protect lsp state modifications with mutex by @cuematthew in
08f7d61 - doc/ref: start testing CUE code blocks in the spec via
go testby @mvdan incec0ef8 - doc/ref: annotate CUE code blocks via their triple backticks by @mvdan in
28736a8 - doc/ref: annotate EBNF code blocks via their triple backticks by @mvdan in
990bf09 - internal/core/adt: always add disjunctionTask on builtin arg eval by @rogpeppe in
9c38a1d - internal/core/adt: do not side-effect argument state to result state by @rogpeppe in
6b2a5c6 - internal/ci: use OIDC with the Central Registry for the e2e tests by @mvdan in
c38e454 - encoding/jsonschema: recognize builtin validators without call by @rogpeppe in
8da9114 - cue: fix Value.ReferencePath on top level value by @rogpeppe in
b63d89f - cue: add test case for Value.ReferencePath at top level by @rogpeppe in
7c8469a - encoding/jsonschema: handle items keyword correctly in draft2020-12 by @rogpeppe in
807ba3b - encoding/jsonschema: fix two bugs in CUE-to-JSON-Schema generation by @rogpeppe in
e6866ab - re-enable staticcheck's SA4000 and SA4003 checks by @mvdan in
0a6b6d6 - internal: bump staticcheck to v0.7.0 for Go 1.26 support by @mvdan in
691d604 - lsp/eval: correct resolution of package-level fields by @cuematthew in
43aefcc - lsp/eval: add test showing bad behaviour by @cuematthew in
2a5108a - lsp/server: make "Remove surrounding struct braces" preferred by @cuematthew in
83e4b54 - internal/core/adt: preparatory work for user-defined functions by @rogpeppe in
14b4578 - internal/core/adt: remove CallContext.Args method by @rogpeppe in
7d60579
v0.16.1
Language
The fallback keyword in the aliasv2 experiment is replaced by otherwise, which is clearer. cue fmt or cue fix can be used to rewrite existing code.
Evaluator
Fix a regression where the compiler could add comments to the input AST value, which could lead to increased memory usage.
Fix a bug where exporting certain schemas could result in "cannot have both alias and field in same scope" errors.
cmd/cue
Fix a panic which could occur when using non-label expressions in the --path flag.
Teach cue login to give helpful errors when used with OCI registries which don't support the OAuth2 device flow.
Go API
Fix a regression where cue.Context.Encode could panic on custom marshaler types with pointer receivers.
Full list of changes since v0.16.0
- internal/cueversion: bump to v0.16.1 by @mvdan in
6d609d7 - internal/ci: build releases with Go 1.26.2 by @mvdan in
cedf4c8 - update all golang.org/x/... dependencies by @mvdan in
b4efeef - all: rename fallback keyword to otherwise by @mpvl in
f813811 - lsp/cache: improve rename by @cuematthew in
8e47027 - integration/workspace: add test showing bad behaviour by @cuematthew in
a5e0ef5 - cmd/cue: suggest docker/podman login when OAuth2 device flow is unsupported by @mvdan in
c169605 - cmd/cue: add testscript for cue login when device code endpoint is unsupported by @mvdan in
d7c882a - cmd/cue: clarify how to authenticate with standard OCI registries by @mvdan in
2613edf - internal/core/compile: avoid mutating AST by @rogpeppe in
e4b0516 - internal/core/export: fix alias/field name conflict in pattern constraints by @mvdan in
1e46409 - internal/core/export: add regression test for alias/field name conflict by @mvdan in
1654f66 - pkg: fix godoc mistakes across several packages by @mvdan in
eae9aaf - internal/core/convert: fix panic when encoding pointer-receiver marshalers by @mvdan in
8e39aec - cmd/cue: return an error for non-label --path expressions instead of panicking by @mvdan in
5a55849 - encoding: add godoc hints for cue/ast result types by @mvdan in
682c663
v0.16.0
Changes which may break some users are marked below with:
Language
As a reminder, we have two ongoing language experiments since v0.15; a replacement for struct embedding and a rework of aliases. Please give these a try and report any issues or feedback!
cmdreferencepkg global experiment is now stable, meaning that CUE_EXPERIMENT=cmdreferencepkg is always enabled.
#"""# is now accepted as a string literal quoting a double quote, ".
Multiline string literals now require a trailing newline, matching the language spec.
The new try experiment
This release introduces the try experiment, which adds a try clause in comprehensions as well as the use of ? in field selectors. This addition to the language is intended to provide a more concise syntax for handling optional fields without the risk of unintentionally swallowing errors.
This experiment also introduces the else clause for if and try comprehensions, and the fallback clause for for comprehensions, which trigger when a comprehension produces zero values.
You can try this experiment by following our how-to guides on the try clause and the else clause. For more information, see the proposal on GitHub and the spec change patch.
Evaluator
Performance
Further improve the use of caching in the typochecker algorithm; this provides speed-ups of up to 80% on some large projects.
Very large structs (tested with 20,000 fields) are up to 80% faster now, as we were repeating some work unnecessarily.
A great deal of effort has gone into reducing the allocations and memory usage across a number of projects. For some of these, memory usage is down by as much as 60%.
These improvements were possible thanks to our Unity service, letting us analyze CUE's performance and test for regressions on third party projects. Contact @mvdan on Discord, Slack, or via the Unity page to ensure that your project is included or you are running into slowness.
A number of changes were made to improve support for using cue.Values concurrently; see Issue #2733 for more details and ongoing progress.
Other changes
Fix a regression introduced in v0.13 where the or built-in with literal arguments could stop behaving like a disjunction.
A number of panics and other bugs in the evaluator which were reported since v0.15.0 have been fixed; thank you to all who reported these.
cmd/cue
Add support for $DOCKER_AUTH_CONFIG to directly provide the contents of $DOCKER_CONFIG/config.json to authenticate with module registries, matching Docker's current behavior.
The --outfile flag now works when given non-regular files such as named pipes or sockets.
cue mod publish no longer ignores sub-directories containing a go.mod file.
cue inside the cue.mod directory now fails consistently with a clear error message to not place CUE code there. Previously, some commands worked while others failed with confusing errors.
--verbose and --trace flags have been moved to the cue get go and cue trim commands respectively, as they were the only ones actually using those flags, and this could be confusing to users.
Fix a bug where loading ./...:pkgname could lead to loading directories without CUE files as instances, which could cause poor performance for CUE packages with multiple parent directories.
cue exp writefs gains an encoding optional field for regular files, to specify an encoding rather than infer it from the filename extension.
LSP server
Initial LSP support for editing embedded JSON and YAML files. This feature provides completions and hover-docs when editing JSON or YAML files which are embedded into CUE via the @embed attribute. A teaser video is available on YouTube.
Code Actions: two code actions are now provided, Add surrounding struct braces and Remove surrounding struct braces, which convert between
a: b: c
and
a: {
b: c
}
with the cursor on b.
A complete overhaul of how the LSP server suggests code completions. This solves the previous naïve implementation which would only make suggestions after a field name or path had been started. Now completions are available from within whitespace.
Embedded paths with mutual dependencies: embedded paths with multiple components (e.g. a.b.c) can in some cases only be fully resolved after the resolution of other embedded paths. The LSP server can now correctly handle these dependencies.
The LSP server now implements LSP Document Symbols functionality. This is often used by editors to provide light-weight breadcrumb navigation within a file.
Some preliminary diagnostics are now sent from the LSP server back to the editor. Initially this mainly indicates syntax errors in CUE files, but this can be extended in the future.
Many bug fixes, including better behaviour for files and directories with spaces; improvements for value aliases (foo: L=x); LSP rename now provides placeholder text; improved jump-to-definition behaviour for package-level fields; fixed issues around imports; path resolution; formatting of standalone CUE files; and others.
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 Discord or Slack.
Encodings
Add support for encoding YAML tags like key: !Custom value by using CUE attributes like key: "value" @​yaml(,tag="!Custom").
cue get go now detects which Go packages use Kubernetes type semantics via // +k8s:openapi-gen=true and obeys the field annotations // +optional and // +nullable.
cue get go gains a --codec flag to configure the use and priority of Go struct field tags like json or yaml.
Fix a bug where cue get go could skip over fields whose type implements one of the supported marshaling interfaces.
Fix a few bugs where cue get go could result in invalid or failing CUE code.
JSON Schema's Config.OpenOnlyWhenExplicit option is now exposed for the CLI via the filetype tag jsonschema+openOnlyWhenExplicit.
JSON Schema now properly encodes hash references for better compatibility with other tools.
Standard library
The strconv package adds ParseNumber, like ParseInt or ParseFloat but allowing other CUE number strings such as 1Ki.
The net package adds InCIDR to test whether an IP is contained by a CIDR string.
The net package adds ParseCIDR to extract useful information from a CIDR string.
The net package adds CompareIP to compare two IP addresses, which can be useful for computing with IP ranges.
The net/http package adds Serve as an experimental API to listen on a port and serve HTTP requests.
The tool/file package adds Symlink to create symbolic links.
Go API
cue.Value.Decode now supports the new cue.Unmarshaler interface, allowing Go types to implement their own CUE value decoding logic via an UnmarshalCUE(cue.Value) error method.
The new cue.IsIncomplete function reports whether the given value is a CUE incomplete error.
cue/ast gains the NewPredeclared and Ident.IsPredeclared to mark and detect identifiers referencing predeclared names like error or int rather than fields which may shadow those names in the current scope.
cue.Value.Decode now uses cue.IsIncomplete to not treat incomplete errors as fatal, allowing the decoding to continue.
Fix a bug where cue.Value.Decode could behave incorrectly when decoding a CUE null or incomplete value.
cue/token.Compare now sorts absolute paths before relative ones, to ensure consistent behavior between Unix-like systems and Windows.
cue/ast.Node.Comments and cue/ast.Node.AddComment interface methods are now removed; use cue/ast.Comments and cue/ast.AddComment respectively.
cue/parser.FromVersion and cue/parser.DeprecationError APIs are now removed.
cue.Instance.Eval method is now removed.
Full list of changes since v0.15.0
- internal/ci: use OIDC with the Central Registry for the e2e tests by @mvdan in
de47a5e - re-enable staticcheck's SA4000 and SA4003 checks by @mvdan in
771e253 - internal: bump staticcheck to v0.7.0 for Go 1.26 support by @mvdan in
e1de78e - lsp/eval: correct resolution of package-level fields by @cuematthew in
e3306a9 - lsp/eval: add test showing bad behaviour by @cuematthew in
da5d43a - lsp/server: make "Remove surrounding struct braces" preferred by @cuematthew in
5f20a71 - doc/ref: clarify who maintains this document by @mvdan in
3ee970f - allow more commands in Claude by @mvdan in
6d50284 - lspaux/protocol: initial implementation for protocol by @cuematthew in
3ee106b - cue/load: check some errors that were ignored by @rogpeppe in
13fdcdb - doc/ref: fix three mistakes in the matchIf examples by @mvdan in
000506e - cue/load: do not panic when load.Instances(args, nil) fails very early by @mvdan in
cd6a481 - cmd/cue: add a test case for issue 4286 by @mvdan in
edc89df - lsp/eval: add support for comprehension else/fallback by @cuematthew in
e2d8f7b - cmd/cue: support explicit encodings in
exp writefsby @mvdan ind0eca3f - cmd/cue: rewrite
exp writefswith internal/filetypes and internal/encoding by @mvdan in766668d - cmd/cue: add first
exp writefstestscript by @mvdan in00eddbf - internal/core/adt: missed missing missing by @mpvl in
8732213 - cue/parser: simplify else/fallback clause rules by @mpvl in
0cbc9a1 - cue/parser: restrict else to single clause only by @mpvl in
28f0246 - cue: add fallback keyword for for comprehensions by @mpvl in
fe9f503 - cue/testdata: rename out/eval to out/evalalpha when appropriate by @rogpeppe in
c76dc5a - cue/build: fix stale identifier resolution across instances by @mvdan in
dd7361a - cmd/cue: add regression test for issue 4275 by @mvdan in
791e697 - encoding/yaml: improve ast.StructLit and ListLit positions by @cuematthew in
cde471e - cmd/cue: be more helpful when publishing a module without source by @mvdan in
3dfa50a - encoding/jsonschema: remove net/url.Parse workaround for Go 1.26 by @mvdan in
6cce9bc - internal/core/export: fix self-referential lets for recursive definitions by @mvdan in
c257634 - internal/core/compile: avoid double error for invalid optional references by @mpvl in
c1be2bb - update all dependencies by @mvdan in
9fb0173 - internal/core/adt: add regression test for error() in pattern constraint keys by @mvdan in
50a0a5e - internal/core/adt: fix structural cycle hang with braced selectors by @mvdan in
36702fd - cmd/cue: add and unskip tests for invalid task type errors by @mvdan in
db4afc1 - internal/core/dep: fix stack overflow on recursive definitions in dep analysis by @mvdan in
0b49a54 - internal/core/dep,internal/core/export: fix stack overflow on recursive definitions by @mvdan in
d0e2ab6 - tools/flow: skip phantom tasks from eliminated conditional branches by @mvdan in
7fb912e - encoding/gocode: fix test by @rogpeppe in
98ca6e3 - internal/core: remove import path to instance mapping by @rogpeppe in
b3d9ffc - doc/spec: use "custom errors" instead of "user errors" by @myitcv in
baf8302 - internal/ci: explicitly set contents permission by @myitcv in
7cde504 - lsp/eval: Add support for try-clauses and optional path components by @cuematthew in
62de631 - cue/testdata: update stats for comprehensions/try.txtar by @mvdan in
20c1149 - internal/core/adt: implement try expressions by @mpvl in
f2e8299 - cue/build: integrate identifier resolution into Complete by @mpvl in
1aeb33e - lsp/fscache: ignore ASTs which have no absolute positions by @cuematthew in
2585b3b - cue/ast,cue/ast/astutil: add NewPredeclared and IsPredeclared for builtin references by @mpvl in
8405422 - internal/core/adt: fix else clause duplication in comprehension field splitting by @mvdan in
40356ab - cue/load: improve error for major-only version packages outside a module by @mvdan in
7675369 - cmd/cue/cmd: add test coverage for absolute packages with cue cmd by @mvdan in
f5e266a - encoding/yaml: add support for YAML tags via
@yaml(,tag)attribute by @jonas-meyer inb1a58bd - internal/astinternal: omit ILLEGAL tokens in debug print by @mpvl in
23736eb - cue: clarify that Schema is only useful for Value.Subsume by @mvdan in
bb18d7b - lsp/cache: expand completion range of fields in json for double-quotes by @cuematthew in
b1c63da - all: start using "else" in comprehensions by @mvdan in
3f2f654 - tweak Claude's allow and deny settings further by @mvdan in
ef6bb80 - internal/ci: disable checkout persist-credentials by default by @myitcv in
069eac9 - cue/load: do not load non-CUE directories as instances by @rogpeppe in
a4d2a6f - cue/load: add test case for non-package directories by @rogpeppe in
028411e - cmd/cue: deflake cue_after test by @rogpeppe in
4504db0 - all: use reflect.TypeAssert in three more places by @mvdan in
58cbd0c - cue/internal: Make ToFile optionally preserve StructLits by @cuematthew in
ec3e289 - all: re-apply
go fix -any=false ./...after Go version bump by @mvdan in8579c46 - lsp/cache: completions must not return null items list by @cuematthew in
75ee97a - internal/core/export: fix panic in relPathLength for BinaryExpr by @mvdan in
788eeed - tools/fix: use ast.Predeclared to avoid shadowing in value alias conversion by @mvdan in
08a7ec3 - cue/ast,cue/ast/astutil: add Predeclared sentinel for builtin references by @mvdan in
42cc85f - tools/fix: add tests for value alias conversion when "self" is in scope by @mvdan in
3dacb0c - cue/ast/astutil: fix false positive in label expression check for let clauses by @mvdan in
a93bcc1 - cmd/cue/cmd: add failing test for issue #4202 by @mvdan in
0a4a11a - internal/core/export: avoid let name collisions with dependency fields by @mvdan in
f2b697a - internal/core/export: add failing test for issue #4221 by @mvdan in
b690442 - internal/core/adt: fix undefined field in comprehension with structural cycle by @mvdan in
225a1c4 - cue/testdata: add regression test for issue #4203 by @mvdan in
e3eb948 - internal/core/adt: fix panic in memory reclamation by @mvdan in
355d6fd - internal/core/adt: add else clause to comprehensions by @mpvl in
9e2dec3 - _scripts: add OpenSpec support for AI-assisted development by @mpvl in
6a78eff - lsp/eval: fix field-value aliases by @cuematthew in
29d8be4 - lsp/eval: add test to show bad behaviour of aliases by @cuematthew in
3e6bee7 - internal/core/export: fix hidden identifier renaming in for clauses by @mvdan in
2fea4bc - internal/core/export: add failing test for issue #4254 by @mvdan in
c53993e - cue/errors: avoid duplicate path in error list formatting by @mvdan in
487c072 - pkg/list/testdata: add regression test for issue #4171 by @mvdan in
e977cfa - internal/lsp: implement ConvertFromStruct code action by @cuematthew in
f68f686 - internal/ci: bump actions/checkout and cue.dev/x/githubactions by @mvdan in
f4d1d5a - lsp/server: force-load all packages for completions within embedded files by @cuematthew in
5eb5ed9 - pkg/tools/http: remove valueMu mutex from http.Serve by @mpvl in
95ba1d2 - internal/core/runtime: add lock protection to loaded map by @mpvl in
6451728 - internal/core/adt: fix race condition in Vertex.Default() by @mpvl in
854a5b7 - internal/core/adt: use thread-safe WeakMap for regexp caching by @mpvl in
c7797c1 - pkg/tools/http: experimental implementation of http.Serve by @mpvl in
0badd6d - golps/protocol: introduce DocumentURI.Path method by @cuematthew in
f04e0fb - gopls/protocol: rename DocumentURI.Path to DocumentURI.FilePath by @cuematthew in
d8eca4a - lsp/eval: process field attributes and specialise queries for embeds by @cuematthew in
eb192c6 - internal/lsp: model embedded files as packages by @cuematthew in
fa8946f - lsp/fscache: read json and yaml files as CUE by @cuematthew in
6825394 - lsp/cache: rework package dirtying and reloading by @cuematthew in
22fff24 - internal/lsp: FileEvaluatorForURI returns lsp/cache.File by @cuematthew in
dbf3293 - lsp/eval: change eval constructor to take Config struct by @cuematthew in
3cd3244 - interpreter/embed: prepare embed for extension by @cuematthew in
a95414a - encoding/json: extract PatchExpr to internal/encoding/json by @cuematthew in
e5bfcda - all: apply the straightforward Go 1.25 or later cleanups by @mvdan in
e834a18 - cmd/cue: rewrite help fmt by @mvdan in
0fa24af - all: test and release on Go 1.26, require Go 1.25 or later by @mvdan in
0dc0eac - internal/core/compile: fix operator precedence in error() builtin by @mvdan in
70b3f3e - cue/testdata/builtins: add test for error() with erroring interpolation by @mvdan in
a6070c8 - internal/core/adt: fix value alias resolution in disjunctions by @mvdan in
b053ad5 - cue/testdata/disjunctions: add regression test for value alias in disjunction by @mvdan in
0c9ed36 - internal/core/adt: handle EqualOp in SimplifyBounds by @mvdan in
0813460 - pkg/net: add CompareIP by @mvdan in
174a8b9 - pkg/encoding/openapi: support marshalSchema builtin for openAPI by @mpvl in
66ea772 - lsp/fscache: correct path components by @cuematthew in
44a543b - integration/workspace: add test showing bad behaviour by @cuematthew in
c164d8f - add
go tool cueandxargsas allowed Claude commands by @mvdan in4b495fa - all: go fix -any=false ./... by @mvdan in
3d3f74b - internal/lsp: implement ConvertToStruct code action by @cuematthew in
c45f72d - internal/core/adt: refine cycle handling in LetReference.resolve by @mvdan in
3e1e745 - cue/testdata/cycle: add regression test for issue 4244 by @mvdan in
eb2c57c - lsp/cache: provide placeholder for PrepareRename by @cuematthew in
049d6e1 - internal/ci: allow steps to influence job permissions by @myitcv in
839f03d - cmd/cue: alter flag behavior based on the command name by @mvdan in
bc5bd8f - cmd/cue: drop --verbose and --trace as global flags by @mvdan in
92afa2e - cmd/cue: map constants by go/types.Type directly by @mvdan in
dac4e90 - pkg/tool/file: add Symlink by @sprat in
6618a6f - internal/ci: fix release workflow by @myitcv in
9e34d67 - internal/ci: use new registry-login-action by @myitcv in
f595566 - cue/token: sort absolute positions before relative ones by @mvdan in
46c1f9d - cmd/cue: test that
cue fmtalso formats files with no package clause by @mvdan ind65c829 - cue: remove Instance.Eval by @mvdan in
60c0505 - pkg/path: remove osInfo.HasPrefix by @mvdan in
516099a - cmd/cue: rewrite help vet by @mvdan in
9488f0c - cue: point out cue/format exists in the godoc by @mvdan in
ba2ce99 - cue/load: error when loading packages from inside cue.mod by @mvdan in
52e0dde - cmd/cue: add a testscript running commands inside cue.mod by @mvdan in
50aaf7e - mod/modzip: check for cue.mod existence, not just directories by @mvdan in
8034cc1 - mod/modzip: check for cue.mod directories instead of go.mod files by @mvdan in
8957a36 - mod/modzip: add test for go.mod submodule detection by @mvdan in
3be6c26 - cue/format: simplify label replacement without astutil.Apply by @mvdan in
fdc3f74 - cmd/cue: clarify the restrictions around @embed file paths by @mvdan in
dc9a189 - .claude: allow more commands by @mvdan in
60b5bd9 - pkg/net: add ParseCIDR to extract CIDR information by @mvdan in
ea83954 - pkg/net: add InCIDR to check if an IP is within a CIDR range by @mvdan in
a3cffd4 - cue/format: fix comma placement for ellipsis with inline comments by @mvdan in
79305ff - cue/format: add test for issue #4238 by @mvdan in
452fbae - internal/core/adt: fix spurious error in ForClause.yield key binding by @mvdan in
beae55b - CLAUDE: discourage "go build" and add a set of "must follow" rules by @mvdan in
6301c2a - encoding/json: correct positions of field labels from json by @cuematthew in
8c70d8d - internal/cueexperiment: clarify the docs and update the ordering by @mvdan in
46dc5d7 - cmd/cue: appease gopls in gen_experiments_help.go by @mvdan in
79c8f3a - internal/ci: bump Go and goreleaser for v0.16.0-alpha.1 by @mvdan in
29a1c5a - update dependencies ahead of v0.16.0-alpha.1 by @mvdan in
14cf3bd - doc/ref: clarify the relationship between exported and hidden identifiers by @mvdan in
367bc88 - internal/core/adt: avoid allocations in matchPattern by @mvdan in
523284f - internal/core/adt: remove redundant updateConjunctInfo call by @mvdan in
e52024b - internal/core/convert: allocate vertices in ensureArcVertex better by @mvdan in
e2b85a8 - pkg/math/bits: avoid an extra allocation per call by @mvdan in
9adb47a - internal/core/convert: reuse singleton struct and list marker allocs by @mvdan in
d06db86 - internal/core/adt: remove unused parameters in Vertex.AddStruct by @mvdan in
a8d5eef - internal/core/convert: avoid repeated OpContext.Env calls by @mvdan in
54e81b3 - internal/core/convert: avoid an allocation for "small" big.Int values by @mvdan in
72c8aac - internal/core/adt: also use strings.ToValidUTF8 over x/text/encoding/unicode by @mvdan in
b78f800 - internal/core/convert: use strings.ToValidUTF8 over x/text/encoding/unicode by @mvdan in
29aca5f - cue: add IsIncomplete for checking for incomplete errors by @rogpeppe in
40a5f00 - cue: add test case for decoding incomplete value by @rogpeppe in
c98dca2 - internal/pkg: avoid repeating the args adt.Value slice in CallCtxt by @mvdan in
bcb3559 - internal/core/adt: place CallContext on the stack by @mvdan in
e0e9233 - internal/core/convert: avoid reflect.Value.Seq2 on maps too by @mvdan in
ba1ffbc - internal/core/adt: do not allocate a new YieldFunc in processComprehension by @mvdan in
bd7fac4 - internal/core/adt: preallocate CallExpr.evaluate args by @mvdan in
29520c4 - internal/core/adt: remove last comments about the evalv3 transition by @mvdan in
883158a - cmd/cue: relax login --token prefix validation by @rustyx in
98e651d - internal/core/adt: fix regression in cycle handling for literal-only calls by @mvdan in
ecb33d7 - cue/testdata/cycle: add test for issue #4230 by @mvdan in
02450bd - internal/core/adt: group allocations in ForClause.yield by @mvdan in
c9c6652 - cue/token: Pos.Add should be noop if Pos is not absolute by @cuematthew in
de49f5c - cue/ast/astutil: fix nil pointer dereference in postfix alias error by @mvdan in
8293c52 - lsp/eval: rework transitioning through imports by @cuematthew in
f2a2319 - internal/core/debug: fix stack overflow in error formatting by @mvdan in
e7616e0 - lsp/eval: Path resolution must force eval of import specs by @cuematthew in
af0cfc1 - lsp/eval: Correct usages for import specs by @cuematthew in
8e6fb3b - internal/lsp: sort results of find-definitions and find-references by @cuematthew in
69bda43 - cue: simplify unmarshaler logic further a bit by @mvdan in
dbf0666 - cue: refactor how Decode handles custom unmarshalers by @snuxoll in
c157e78 - cue/parser: add test cases for newlines in interpolations by @mvdan in
b779ef6 - cmd/cue: allow non-regular files with --outfile by @mvdan in
0408e0f - lsp/eval: correct evaluation of embedded lits by @cuematthew in
f1db806 - lsp/eval: add test showing bad behaviour by @cuematthew in
0aa51c2 - internal/lsp: overhaul the LSP evaluator by @cuematthew in
48f454c - internal/lsp: rename definitions to eval by @cuematthew in
e96b5fe - cue/ast: Add period position to selector by @cuematthew in
5e3d8da - internal/core/adt: remove redundant position code after SimplifyBounds by @mvdan in
4c6c3c4 - internal/core/adt: simplify disjunctError by @mvdan in
ff54443 - internal/core/adt: remove unused reportFieldMismatch parameter by @mvdan in
dd7357f - cue/format: fix single import with trailing comment by @myitcv in
eaaba8b - encoding/jsonschema: correctly encode references by @rogpeppe in
781e23b - cue: support custom CUE unmarshalling via Unmarshaler by @snuxoll in
0c6b1ee - cmd/cue: correctly parse type=number and type=int tags by @mvdan in
650cce2 - cmd/cue: add a test for a type=number injection tag by @mvdan in
0ac9d7f - encoding/toml: correctly check for duplicate keys with arrays by @mvdan in
3f825a4 - cue/load: only inject a tag value when it was parsed correctly by @mvdan in
3116c50 - cmd/cue: add test cases for
cue cmdtag injection with more types by @mvdan in4e6a19f - internal/core/adt: fix nil pointer dereference in BinaryExpr.evaluate by @mvdan in
cb9da59 - cmd/cue: reintroduce
type: "file"default inexp writefsby @mvdan in220e7c8 - cmd/cue: simplify
exp writefsexample a bit by @mvdan in02fbd6d - internal/ci/base: add a #writefs CUE schema by @mvdan in
dd7a23f - cmd/cue: rewrite
exp writefsto not requirego runby @mvdan in1d15871 - cmd/cue: add
exp writefsmoving the code from the cuelang.org repo by @mvdan in98a60eb - internal/ci: bump Go and goreleaser versions by @mvdan in
e4c8a12 - encoding/toml: forget nested arrays when starting a new array element by @mvdan in
09c2e40 - cmd/cue: avoid panic in
get gowhen an enum has zero named values by @mvdan ine6123b0 - cmd/cue: get go: expose field name lookup priority by @gdvalle in
7bd151d - internal/core/adt: use the pre-validation value kind to report errors by @mvdan in
49e75c7 - internal/core/adt: remove commented-out error assignment with a TODO by @mvdan in
2a310e9 - internal/core/adt: remove the docs for evalv2's cycle detection algorithm by @mvdan in
fb0e218 - all: start using slices.DeleteFunc by @mvdan in
77b401f - internal/core/adt: remove unnecessary isShared assignment by @mvdan in
3fe89ac - internal/core/adt: remove another unused branch with a TODO by @mvdan in
f48ba68 - internal/core/adt: remove unused branch with TODOs by @mvdan in
0b445a5 - internal/core/adt: remove branch with TODO which never triggers by @mvdan in
46b33b1 - internal/core/adt: remove now-unnecessary panic workaround by @mvdan in
2e7e48d - cmd/cue: test --outfile and --force with named pipes by @mvdan in
51f429e - internal/core/adt: shrink CloseInfo fields in nodeContextState by @mvdan in
06f65ae - internal/core/adt: shrink scheduler by 40 bytes by @mvdan in
2c35f57 - all: fix up uses of the deprecated cue.Value.Elem method by @mvdan in
c8653bf - all: fix up uses of the deprecated cue/ast comment methods by @mvdan in
ba4ebbb - cue/parser: simplify how we deal with the ancient alias syntax by @mvdan in
dd6d201 - cue/parser: simplify parseComprehensionClauses by @mvdan in
26982e8 - cue/parser: signal missing tokens via token.NoPos by @mvdan in
97996d2 - cue/parser: use errorExpected more consistently by @mvdan in
13a79ee - cue/parser: balance newlines on multiline composite literals by @mvdan in
9d60910 - cue/parser: reuse Parser.expect for more tokens by @mvdan in
5064680 - cue/parser: simplify the expectComma logic by @mvdan in
a9613af - cue/literal: require multiline literals to end with a newline by @mvdan in
8e4d374 - cue/literal: add test cases for multiline literals with missing newlines by @mvdan in
5c3e0f5 - cmd/cue: add support for DOCKER_AUTH_CONFIG OCI registry credentials by @bogdanbojan in
b06d4a7 - internal/core/adt: simplify aStruct field by @mvdan in
4dd731e - internal/core/adt: eagerly update kind to StructKind when aStruct is set by @mvdan in
fc86988 - cue/testdata: start a disjunctions/discriminator.txtar file by @mvdan in
b66772d - internal/core/adt: do not reuse large vertexMap maps by @mvdan in
01ef28d - internal/core/adt: reuse vertex maps in overlayContext by @mvdan in
7d8e1f9 - cue/testdata: add regression test for issue #2685 by @mvdan in
36046aa - cue/testdata: add a regression test for issue #3842 by @mvdan in
69c4adb - cue/ast: add walkNilable and applyNilable helpers by @mvdan in
8f927f8 - cmd/cue: remove all "not yet stable"
cue modnotes by @mvdan inb408552 - cmd/cue: quote Go field tags if they are invalid CUE attribute bodies by @mvdan in
602eb31 - cmd/cue: test how
cue get gogenerates invalid CUE attributes by @mvdan in034e892 - cue/cuecontext: write a short package godoc by @mvdan in
d7dda01 - cmd/cue: stabilize mod registry, rename, mirror by @mvdan in
aa9f32b - cue/ast,mod/modfile: add two more
go:fix inlinedirectives by @mvdan in22bc4bb - cue/parser: delay ast.Field allocation in parseField by @mvdan in
fa2bca6 - CONTRIBUTING: fix links and tweak the wording by @mvdan in
0a9e071 - cue: indirect the Go value before checking for null or noncrete by @mvdan in
2e994df - cue: add more test cases to TestDecode by @mvdan in
92e5046 - cmd/cue: ensure that
cue get goresults in valid CUE by @mvdan inf7a5764 - cmd/cue: Go types implementing a supported interface are themselves supported by @mvdan in
8d099aa - cue/ast: remove Node.Comments and Node.AddComment by @mvdan in
21abc7f - tools/flow: support task results when defined via definitions by @mvdan in
3d8f535 - cmd/cue: add test case for issue #2633 by @mvdan in
2ae2665 - cue/literal: accept #"""# as a quoted double quote by @mvdan in
81b11af - cmd/cue: fix regression with unsupported named types by @mvdan in
3092bd8 - cmd/cue: skip over type aliases more precisely by @mvdan in
a8553f7 - cmd/cue: minor
get gocleanups by @mvdan inc4464c0 - cmd/cue: remove types.Invalid checks by @mvdan in
6bb634d - internal/ci: remove commit @-mention check by @mvdan in
f1f7a95 - internal/core/adt: fix typo by @rogpeppe in
9e46612 - internal/core/adt: treat a call on a non-concrete func as incomplete by @rogpeppe in
8c751bd - internal/filetypes: support openOnlyWhenExplicit tag by @rogpeppe in
7603138 - internal/core/adt: join overlayContext's vertices with vertexMap by @mvdan in
ac52bda - internal/core/toposort: avoid repeating structInfos in nodeToStructMetas by @mvdan in
642b242 - internal/core/toposort: avoid repeated ast.Node.Pos calls by @mvdan in
df8ffc1 - all: replace cue.Value.Null with IsNull when we just need a bool by @mvdan in
9461bd2 - internal: remove unnecessary Pos methods by @mvdan in
e190842 - all: use cue/token.Pos.IsValid rather than comparing with NoPos by @mvdan in
550abc9 - all: make use of adt.Pos consistently by @mvdan in
132e8b9 - internal/core: various minor cleanups by @mvdan in
e018a99 - cmd/cue: fix non-null map values being detected as nullable by @fionera in
50371eb - internal/core/adt: remove Env and CloseInfo from StructInfo by @mvdan in
eecd7f7 - internal/core/adt: deduplicate Vertex.Structs by StructLit by @mvdan in
feb4772 - cue/ast: correct valid values for BasicLit.Kind by @mvdan in
9c4df5d - internal/core/adt: apply TODO to remove getArc call from addConstraint by @mvdan in
6423379 - internal/core/adt: introduce ConflictError by @mvdan in
f6ae883 - cmd/cue: detect kubernetes semantics for
get goby @fionera ine527387 - cmd/cue: add kubernetes semantics test by @fionera in
2b34ff2 - internal/core/convert: reuse unicode.UTF8.NewEncoder by @mvdan in
2b80cb1 - .claude: expand the list of allowed commands by @mvdan in
856d441 - internal/core/adt: check opID before inheriting parent reqSets by @mvdan in
2a257d3 - internal/core/adt: avoid allocations in Vertex.Default for closed lists by @mvdan in
d2bed8d - internal/core/adt: track containment positions separately by @mvdan in
5afb0e2 - internal/core/adt: reuse task objects within an OpContext by @mvdan in
8f38c62 - internal/core/adt: allocate Vertex with space for one conjunct in getArc by @mvdan in
2e95b2d - internal/core/adt: simplify nodeContext.arcMap by @mvdan in
a89014d - internal/core/adt: store token.Pos rather than Node in containment by @mvdan in
21006f9 - internal/core/adt: avoid adding replacements with replaceID.from == 0 by @mvdan in
5c715cf - internal/core/adt: implement CycleInfo.IsCyclic TODO by @mvdan in
5625367 - internal/cmd/cue-ast,internal/astinternal: support printing positions by @rogpeppe in
84fc284 - cue/ast: Correct Interpolation.End() by @cuematthew in
2b9f396 - update all dependencies by @mvdan in
7f31475 - internal/core/adt: simplify func declarations now that evalv2 is gone by @mvdan in
174e758 - internal/core/adt: add reqSets.elemPtrs by @mvdan in
c458d79 - internal/core/adt: use append-like func signatures for reqSets by @mvdan in
8cd77ff - internal/core/adt: grow reqSets ahead of time in getReqSets by @mvdan in
8c0dfb2 - internal/source: return a size when Open is given an os.File as src by @mvdan in
4d54b90 - internal/encoding: do not grow byte slices when reading source files by @mvdan in
8e672f0 - internal/source: do not guarantee io.Closer in Open by @mvdan in
95a9687 - internal/core/convert: do not create new cue/ast source nodes by @mvdan in
4ad2928 - internal/value: redesign Interface to avoid allocations by @mvdan in
b32e411 - internal/core/convert: avoid reflect.Value.Seq2 for slices by @mvdan in
89f45c0 - internal/core/convert: grow slices for Go structs and slices by @mvdan in
65503c7 - internal/core/adt: grow Vertex.Arcs in scheduleStruct by @mvdan in
0f5a5a9 - internal/core/adt: grow Vertex.Arcs in processListLit by @mvdan in
03bb83a - internal/core/convert: avoid making unnecessary vertex copies by @mvdan in
fd794c6 - internal/core/toposort: make Node.sccNodeState a non-pointer by @mvdan in
f86ad4c - internal/core/adt: reduce allocations further in SimplifyBounds by @mvdan in
b7cdff9 - internal/core/adt: SimplifyBounds can return nil by @mvdan in
4b035f7 - internal/core/toposort: return a slice of non-pointers in analyseStructs by @mvdan in
c01ccba - internal/core/toposort: remove Node.Incoming by @mvdan in
35e1c06 - internal/core/convert: refactor fromGoValue to only use reflect.Value by @mvdan in
b871500 - internal/core/compile: don't panic on an alias cycle with a dynamic field by @mvdan in
cfb185d - internal/core/adt: reuse a buffer when constructing envDisjunct.disjuncts by @mvdan in
6c5ade3 - internal/core/adt: simplify filterSets and filterTop a bit by @mvdan in
368a7cb - internal/core/adt: use an uint64 key in containsDefIDCache by @mvdan in
561dfd8 - internal/core/adt: optimize containsDefIDRec with minimum replaceID tracking by @mvdan in
3f6922f - internal/core/compile: revert
andto use Func instead of RawFunc by @mvdan in3a51f9d - cue/testdata: add test case for #3719 by @mvdan in
018a8e9 - internal/core/subsume: fix duplicate logic for pattern constraints by @mvdan in
91c5b47 - internal/core/subsume: add test cases for pattern constraints by @mvdan in
01cf686 - internal/filetypes: use a less generic bootstrap build tag by @mvdan in
29a4a17 - lsp/definitions: correct evaluation of import statements by @cuematthew in
99ed6c5 - lsp/definitions: add test showing bad behaviour for import statements by @cuematthew in
b0a088f - lsp/definitions: improve UsagesForOffset for imports by @cuematthew in
6df6f67 - internal/lsp: implement support for LSP Diagnostics by @cuematthew in
d078bc3 - internal/lsp: implement support for LSP DocumentSymbols by @cuematthew in
e2c4321 - internal/core/convert: remove goConverter by @mvdan in
1a6ae7a - internal/core/convert: stop setting positions in cue/ast nodes by @mvdan in
8b96db8 - internal/core/export: add a test to ensure toposort keeps Go field order by @mvdan in
376faa9 - cmd/cue: do not emit empty CUE files in
get goagain by @mvdan ine03d16f - cmd/cue: test that we don't emit empty CUE files without --outfile by @mvdan in
6532a5d - internal/core/adt: check removed scope per conjunct by @mvdan in
b9bf6a8 - cue/testdata: add a test case for #4180 by @mvdan in
b0748e0 - pkg/strconv: re-run CUE_UPDATE=1 go test by @mvdan in
9b36f79 - internal/core/convert: simplify the top-level FromGoType logic by @mvdan in
e623e78 - internal/core/convert: reduce from 3 func APIs to 2 by @mvdan in
9aec0fd - cue: convert.GoValueToValue returns a finalized value by @mvdan in
fe628cc - internal/core/convert: stop accepting reflect.Value as a Go value by @mvdan in
467f82a - pkg/strconv: add ParseNumber builtin by @cjorge-graphops in
aec0116 - cue/parser: remove deprecated integer version APIs by @mvdan in
5e7258e - cue: add happy paths to Value.getNum and Value.String by @mvdan in
a97a229 - internal/pkg: add a happy path to CallCtxt.BigInt by @mvdan in
31ca887 - internal/core/adt: remove support for CUE_EXPERIMENT=keepvalidators=0 by @mvdan in
bff5146 - cmd/cue: stabilize CUE_EXPERIMENT=cmdreferencepkg by @mvdan in
fa74fb6 - cmd/cue: rewrite tool/http test to not rely on an internal httptest server by @mvdan in
9587a47 - cmd/cue: clarify help wording about filenames containing colons by @mvdan in
1039c59 - internal/filetypes: support absolute paths with colons on Unix by @mvdan in
196a5d5 - internal/filetypes: add test cases for absolute paths with colons by @mvdan in
5923272 - cmd/cue: try to deflake stats test on CI by @mvdan in
8eab7c6 - cmd/cue: add smoke tests for CUE_STATS_FILE and CUE_BENCH by @mvdan in
2c0184f - cmd/cue: reuse fetchStats for CUE_BENCH by @mvdan in
84e3e9c - cmd/cue: include syscall.Rusage stats in CUE_STATS by @mvdan in
fb96f96 - cmd/cue: move fetching of Stats numbers into a separate func by @mvdan in
23ef274 - lsp/fscache: improve removal of phantom package decls by @cuematthew in
1449cca - cue/ast: remove deprecated and unhelpful Field node fields by @mvdan in
79b757d - internal/lsp: format standalone files without phantom pkg names by @cuematthew in
f22fe29 - cmd/cue: remove the deprecated --strict flag by @mvdan in
f0a1fbe - lsp/definitions: correct resolution of path roots by @cuematthew in
7ee5478 - lsp/definitions: add test to show faulty resolution by @cuematthew in
b05b992 - cue: remove the two last evalv2 remnants by @mvdan in
2b1f4ac - internal/core/adt: reduce slice allocations in nodeContext.getValidators by @mvdan in
d273ee5 - .claude: allow
git grepby @mvdan in842db84 - internal/pkg: add happy path shortcuts for CallCtxt argument getters by @mvdan in
86c5472 - internal/core/adt: reuse more Bool allocations by @mvdan in
8305967 - internal/core/convert: don't allocate when checking for types.Interface by @mvdan in
7742329 - internal/core/adt: reduce allocs on BinOp for boolean operators by @mvdan in
5d18599 - internal/filetypes: make ParseArgs more consistent with ParseFile by @mvdan in
5d64a2b - internal/filetypes: clarify empty scope error in ParseFile by @mvdan in
eb0f40d - internal/filetypes: support Windows absolute paths in ParseFile by @mvdan in
f9439f5 - internal/filetypes: test an empty scope and filename consistently by @mvdan in
003bf39 - internal/filetypes: add test cases exposing issue 4168 by @mvdan in
1a3fdb8 - internal/cueversion: bump LanguageVersion to v0.16.0 by @mvdan in
1d77a81 - lsp/cache: stop nested modules from breaking find-references by @cuematthew in
2c9c7d1 - internal/core/adt: only do a containsDefIDCache map lookup if caching by @mvdan in
3caae9e - internal/core/adt: sort replaceIDs to scan just once in containsDefIDRec by @mvdan in
326891f - internal/core/adt: refactor overlayContext.derefDisjunctsEnv away by @mvdan in
b08d1d0 - internal/core/adt: cache containsDefID results in OpContext by @mvdan in
ff3c4dc - all: go fix -stringsbuilder ./... by @mvdan in
8652b30 - cmd/cue: go fix -stditerators ./... by @mvdan in
129aff5 - all: go fix -forvar ./... by @mvdan in
03b6d6e
v0.15.4
Evaluator
Fix a panic which could occur when using the error built-in with cyclic references.
Fix a panic which could occur when loading @experiment(aliasv2) syntax with an invalid alias name.
cmd/cue
Relax the cue login --token validation to allow future Central Registry token types.
Encodings
Fix a bug in the TOML decoder where nested arrays were causing incorrect "duplicate key" errors.
Full list of changes since v0.15.3
- internal/cueversion: bump LanguageVersion for v0.15.4 by @mvdan in
50c137c - internal/ci: bump Go and goreleaser for v0.15.4 by @mvdan in
8e3eaa9 - cmd/cue: relax login --token prefix validation by @rustyx in
d0bd478 - cue/ast/astutil: fix nil pointer dereference in postfix alias error by @mvdan in
c5df0af - internal/core/debug: fix stack overflow in error formatting by @mvdan in
bf7a40d - encoding/toml: correctly check for duplicate keys with arrays by @mvdan in
4a5fd52
v0.15.3
Evaluator
Fix a panic which could occur when using Expr after LookupPath on a cue.Value.
cmd/cue
Fix a panic which could occur when using cue cmd tasks referencing definitions.
Fix a panic which could occur when cue get go encountered a Go enum type with zero named values.
Encodings
Fix a bug in the TOML decoder where nested arrays were not being correctly mapped to CUE values.
Full list of changes since v0.15.1
- internal/ci: bump Go and goreleaser versions by @mvdan in
8a91fed - cmd/cue: avoid panic in
get gowhen an enum has zero named values by @mvdan inf544b9c - encoding/toml: forget nested arrays when starting a new array element by @mvdan in
641c64a - tools/flow: support task results when defined via definitions by @mvdan in
6d86ce6 - cmd/cue: add test case for issue #2633 by @mvdan in
3544f15 - internal/core/adt: check opID before inheriting parent reqSets by @mvdan in
3cb0e2d
v0.15.2
v0.15.1
Evaluator
Fix an evalv3 regression first introduced in v0.11.0 where the and built-in function started evaluating its arguments too eagerly, causing failures in cue def.
Fix an evalv3 regression where closedness info could be lost when using a comprehension.
Fix a bug where the evaluator would panic on alias cycles with dynamic fields rather than giving a good error.
LSP
Formatting standalone CUE files - either without a package name, or outside of a CUE module - now works correctly.
Fix a bug where trying to use "find references" on a CUE module with nested modules would cause a hang.
Fix a bug where resolving path roots did not work correctly in the presence of struct embeddings.
cmd/cue
Fix a regression in v0.15.0 where cue get go no longer skipped generating CUE files without any declarations.
Go API
Fix a bug in the subsume package where a struct with a pattern constraint did not subsume a closed struct with a matching field.
Rename the bootstrap build tag used in the internal/filetypes package to cuebootstrap to avoid conflicts with build tags in other Go modules.
Full list of changes since v0.15.0
- bump pinnedReleaseGo and LanguageVersion for v0.15.1 by @mvdan in
350755e - lsp/fscache: improve removal of phantom package decls by @cuematthew in
bcc9a45 - internal/lsp: format standalone files without phantom pkg names by @cuematthew in
bf16055 - lsp/definitions: correct resolution of path roots by @cuematthew in
e64569f - lsp/definitions: add test to show faulty resolution by @cuematthew in
f2076ae - lsp/cache: stop nested modules from breaking find-references by @cuematthew in
6d75085 - internal/core/compile: don't panic on an alias cycle with a dynamic field by @mvdan in
cf6c597 - internal/core/compile: revert
andto use Func instead of RawFunc by @mvdan in37e8637 - cue/testdata: add test case for #3719 by @mvdan in
de5328e - internal/core/subsume: fix duplicate logic for pattern constraints by @mvdan in
a229275 - internal/core/subsume: add test cases for pattern constraints by @mvdan in
bca0a55 - internal/filetypes: use a less generic bootstrap build tag by @mvdan in
94f2f0e - cmd/cue: do not emit empty CUE files in
get goagain by @mvdan in819474c - cmd/cue: test that we don't emit empty CUE files without --outfile by @mvdan in
e61516d - internal/core/adt: check removed scope per conjunct by @mvdan in
2e8e111 - cue/testdata: add a test case for #4180 by @mvdan in
f81118c
v0.15.0
Changes which may break some users are marked below with:
Note that this release no longer includes a checksums.txt asset; GitHub now provide digests natively.
LSP
This release includes the initial version of cue lsp - with support for "go to definition", "find references", rename, 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 Discord or Slack.
Language
explicitopen experiment for #A...
The explicitopen per-file experiment enables the posfix ... operator to explicitly open closed structs, allowing additional fields to be added. This change simplifies CUE's semantics, reduces user confusion, and enables clearer expression of type extensibility patterns.
You can try this experiment by following our how-to guide. For more information, see the proposal on GitHub and the spec change patch.
aliasv2 experiment
The aliasv2 per-file experiment implements the new "postfix aliases" syntax, and introduces a "self" predeclared identifier referring to the innermost surrounding struct or list.
You can try this experiment by following our how-to guide. For more information, see the proposal on GitHub and the spec change patch.
Other experiments
keepvalidators global experiment is now stable, meaning that CUE_EXPERIMENT=keepvalidators is always enabled.
With its proposal accepted, the structcmp per-file experiment is now stable with language.version at v0.15.0 or later, meaning that the @experiment(structcmp) attribute is unnecessary as it's always enabled.
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 4000 lines of code, and simplify the internal types and code structure. This is a necessary step to unblock ongoing feature and performance 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 of around 4-6%.
Performance
Evaluating concrete CUE values no longer involves dependency analysis; this should result in modest speed improvements when marshaling to YAML, via either cue export -e expr -o yaml or yaml.Marshal.
Dependency analysis now avoids computing references more than once, which resolves an expontential performance issue for some configurations using chains of CUE references.
Add caching to a part of the typochecker algorithm; this has been measured to provide performance improvements of up to 30% on a few large projects.
cue/parser now reuses more memory, which results in parsing performance improvements of up to 30% and memory savings of up to 50%, especially when loading large CUE data files.
Other changes
File embedding via the @embed attribute has gained an allowEmptyGlob option, to allow glob patterns to match zero files without causing an error.
The evaluator now shows all user errors created with the error builtin when they can be related to a disjunction failure. Previously, the evaluator would try to only show user errors directly part of a disjunction error, but that caused too many omissions.
Some error positions which were lost in the transition from evalv2 to evalv3 have been reintroduced.
Fix a bug where required fields in a definition might not be enforced when unifying with an inline struct in an expression, such as (#RequiresFoo & {bar: "baz"}).bar.
Fix a regression introduced in v0.12.0 where incomplete errors were not being handled consistently if they directly involved the top-level value.
A number of panics and error regressions in the evaluator which were reported since v0.14 have been fixed; thank you to all who reported these.
cmd/cue
A new cue help experiments command is introduced to document all available per-file and global experiments.
The cue fix --exp flag is introduced to rewrite files or packages to use new and experimental semantics with @experiment attributes.
cue mod mirror now copies OCI referrers between registries, which ensures that artifacts like signatures and attestations which reference modules being mirrored are copied as well.
cue mod resolve gains a --deps flag that lists all dependencies of the current module and which registries they resolve to.
cue get go gains an --outfile flag to generate exactly one CUE file for a single Go package, which can be useful when integrating cue get go into build systems like Bazel.
Fix a regression introduced in v0.9.0 where loading a qualified pattern like ./...:pkgname no longer filtered files based on the package name given.
cue get go now stops on any Go package loading error. Trying to continue in the presence of syntax or type-checking errors could lead to generating incorrect CUE.
Encodings
Initial support for encoding CUE schemas as JSON Schema is added. This includes a new encoding/jsonschema.Generate Go API, as well as CLI support via cue def --out jsonschema. This is currently very experimental, and many features are missing. For now, it can only generate a single version of JSON Schema, draft/2020-12.
The YAML library in the archived Go module gopkg.in/yaml.v3 has been replaced by go.yaml.in/yaml/v3, an active fork now maintained by the YAML organization.
cue exp gengotypes is improved to handle more edge cases with CUE package imports which could result in broken Go code.
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 sub-table 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
The new cue.Value.IsClosed and cue.Value.IsClosedRecursively methods report whether a value has been closed at the top level or recursively, which is useful information when writing schema encodings.
The new cue.Patterns and cue.Selector.Pattern APIs allow introspecting pattern constraints in CUE struct values.
The new encoding/yaml.Decoder API allows decoding a stream of YAML documents, given that existing APIs did not support streams of multiple YAML documents.
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.
cue/ast introduces StringLabelNeedsQuoting to determine whether a string label needs to be quoted when used in CUE syntax.
cue/ast introduces NewStringLabel to create an ast.Label as either an unquoted identifier or a quoted string, depending on whether the string label needs quoting.
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/build.Instance.Match is removed, given that it was never set to any value at any point since it was added.
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.
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
- tools/fix: fix several issues with explicitopen rewrite by @mpvl in
4aad065 - tools/fix: add some test cases by @mpvl in
3b2b9b4 - internal/core/adt: add __reclose by @mpvl in
f8bf47a - doc/ref: clarify exact meaning of value for match* builtins by @mpvl in
a650c53 - internal/ci/base: cue fmt files by @mpvl in
ab19f98 - lsp/definitions: fix find-references (UsagesForOffset) by @cuematthew in
27f5797 - internal/core/dep: fix dependencies on spread operator by @mpvl in
5634c58 - internal/core/dep: add test for spread operator by @mpvl in
f1cd0d2 - internal/core/export: handle spread operator by @mpvl in
52f26f9 - doc/ref/spec.md: document matchN and machIf by @mpvl in
020764b - cue/parser: fix too restrictive parser test by @mpvl in
7d69171 - cue/ast/astutil: handle patching of some references in Apply by @mpvl in
b979ace - cue/ast/astutil: include Sanitize in TestApply by @mpvl in
57c6f9f - tools/fix: do not add spread operator to lists by @mpvl in
7e9a83e - all: remove two error results which are always nil by @mvdan in
6ed9b98 - all: remove three func results which are never used by @mvdan in
eca4996 - cmd/cue: remove unused addInjectionFlags parameter by @mvdan in
083dd03 - internal/core/adt: make CloseInfo.AncestorPositions an iterator by @mvdan in
82c321f - CONTRIBUTING: discourage SSH for Gerrit more actively by @mvdan in
2e7e5af - pkg/path: fix test failures when executed with -count N by @roman-mazur in
1bfde52 - internal/source: simplify ReadAll by @mvdan in
cc3d92d - internal/source: avoid a NopCloser if src is already a Closer by @mvdan in
6d58d63 - cue/ast/astutil: avoid walking to the root to reuse scopes by @mvdan in
4ba9572 - lsp/fscache: set version on token.File by @cuematthew in
e79d2ea - internal/lsp: simplify processing of package imports by @cuematthew in
bbf6f4f - cue/ast/astutil: assume LetClause.Expr and Alias.Expr are non-nil by @mvdan in
a77e741 - cue/ast/astutil: reuse scope allocations by @mvdan in
e5706db - cue/ast: do not allocate in SetComments when it's a no-op by @mvdan in
d88bc99 - cue/parser: reuse commentState allocations by @mvdan in
1e30ed2 - all: replace two uses of astutil.ParseImportPath by @mvdan in
2dcf1d8 - cue: use Vertex.SingleConjunct in Value.Source by @mvdan in
dea3faa - cue/load: ensure that Config.ModuleRoot is clean, like Config.Dir by @mvdan in
14472be - cue/load: correctly handle the filesystem root as Config.ModuleRoot by @mvdan in
d7a839b - encoding/jsonschema: avoid redundant patternProperties in Generate by @rogpeppe in
a8385f8 - cmd/cue: update help text to reflect renamed experiment by @jpluscplusm in
7d0090a - cmd/cue/cmd: add --deps flag to 'cue mod resolve' by @rogpeppe in
15afd50 - cue/load: add test case showing an error when Config.ModuleRoot=="/" by @mvdan in
44dba4e - internal/ci/goreleaser: actually disable checksum generation by @mvdan in
93c434c - all: remove two obsolete and commented-out APIs by @mvdan in
25322ae - lsp/definitions: call pos.Offset() directly by @cuematthew in
64182de - internal/lsp: support standalone files with imports in modules by @cuematthew in
7dcbdf6 - internal/lsp: add support for rename by @cuematthew in
24300be - internal/lsp: support references with definitions by @cuematthew in
6feb520 - cmd/cue: adjust
cue get go --outfilelogic by @mvdan in6491013 - cue/token: rewrite Pos.Before in terms of Pos.Compare by @mvdan in
6c2aa6a - cue/token: don't unpack line info in Pos.Compare by @mvdan in
9623737 - cue/token: remove unnecessary Pos.file nil checks by @mvdan in
852de61 - cue/token: don't unpack line info in Pos.Offset by @mvdan in
8972e06 - cue/token: don't unpack line info in Pos.Filename by @mvdan in
6543708 - cue/token: reuse File.Offset in File.position by @mvdan in
f4ba49b - cue/ast/astutil: use
go fix -inlineon ImportPathName by @mvdan in1850e9b - internal/core/layer: rudimentary implementation of layers by @mpvl in
654b5c0 - internal/core/adt: set t.id only once by @mpvl in
aae1e07 - internal/lsp: wire UsagesForOffset into the LSP by @cuematthew in
bdc3901 - lsp/definitions: implement UsagesForOffset by @cuematthew in
5303c60 - lsp/definitions: add ability to reset definitions analysis by @cuematthew in
aba5ee2 - lsp/rangeset: add String methods by @cuematthew in
bfe4aba - encoding/yaml: add Decoder for streaming YAML documents by @mpvl in
738e6e4 - all: start leveraging
go fix -inlineby @mvdan in70d6a9c - all: go fix -inline ./... by @mvdan in
279e355 - all: rename aliasandself experiment to aliasv2 by @mpvl in
b85644f - encoding/jsonschema: explicit close handling by @rogpeppe in
a94cfbc - encoding/jsonschema: add tests by @rogpeppe in
2606457 - internal/ci: don't let "---" lines break git commit trailers by @mvdan in
e735c99 - mod/modregistry: mirror referrers in Client.Mirror by @rogpeppe in
f0d24a9 - all: go fix -slicescontains ./... by @mvdan in
7b65843 - all: go fix -stringsseq ./... by @mvdan in
2895806 - internal/core/adt: treat equality bound as open validator by @mpvl in
15f2a53 - internal/core/adt: add tests for Issue 4142 by @mpvl in
de886bc - cue/testdata/eval/bounds.txtar: accept v3 as golden by @mpvl in
ff6f38b - cue: support ... operator in Expr by @mpvl in
3d8e9ea - internal/ci: bump Go and goreleaser by @mvdan in
64a5e68 - update all dependencies by @mvdan in
d4d62e6 - tools/fix: add fixAliasAndSelf by @mpvl in
2b281ea - internal/core: make label references work for all field types by @mpvl in
23a328a - cue/ast/astutil: add resolver support for postfix aliases by @mpvl in
4d8b1da - internal/core/adt: report error for missing required fields by @mpvl in
a25fb94 - internal/core/adt: add tests for issue 3918 by @mpvl in
166a851 - cue/parser|format: implement postfix alias syntax by @mpvl in
0eb7de7 - all: apply more gopls suggestions by @mvdan in
8d2909c - lsp/definitions: fix broken build due to self renaming by @cuematthew in
8df341b - internal/cueexperiment: rename self experiment to aliasandself by @mpvl in
a8dce0b - internal/ci: use unauthenticated GerritHub URL by @jpluscplusm in
3dabab4 - cue: add postfix alias syntax infrastructure by @mpvl in
d92ce18 - internal/core/adt: fix disjunction related mem mgmt bug by @mpvl in
335e4fb - encoding/jsonschema: optimize items in definitions too by @rogpeppe in
098b6d1 - encoding/jsonschema: add a test to check optimization in definitions by @rogpeppe in
29ad8ee - all: fix a number of bad godocs spotted by gopls by @mvdan in
5b42b38 - encoding: fix two gopls warnings by @mvdan in
33621a6 - switch this repository to cue.gerrithub.io by @mvdan in
2a81d1e - encoding/jsonschema: use unique item values in Generate by @rogpeppe in
947c85c - internal/anyunique: new package by @rogpeppe in
84c673a - encoding/jsonschema: recognize pattern constraints in Generate by @rogpeppe in
c356c10 - encoding/jsonschema: fix patternProperties in Extract by @rogpeppe in
fc58592 - encoding/jsonschema: recognize different forms of "const" by @rogpeppe in
5433cb9 - cue: support iteration over pattern constraints by @rogpeppe in
a6f97a1 - internal/core/adt: cache containsDefID results by @mvdan in
992c1cd - internal/core/adt: always print errors in leaf nodes by @mpvl in
8dce6dc - internal/ci: stop generating checksums.txt as a release archive by @mvdan in
15e67c0 - internal/core/adt: turn Vertex.VisitAllConjuncts into an iterator by @mvdan in
2536d4f - internal/core/...: fully transition away from Vertex.VisitLeafConjuncts by @mvdan in
40aa589 - encoding/jsonschema: recognize closed structs in Generate by @rogpeppe in
113d7b9 - cue: implement IsClosed and IsClosedRecursively by @mpvl in
b28a5f3 - encoding/jsonschema: improve teststats by @rogpeppe in
28054b0 - encoding/jsonschema: treat close as no-op for now by @rogpeppe in
b670102 - encoding/jsonschema: recognize list.MatchN in Generate by @rogpeppe in
09a0f42 - encoding/jsonschema: recognize explicit errors in CUE by @rogpeppe in
d293a17 - encoding/jsonschema: use error builtin rather than
_|_by @rogpeppe in49126bb - cue: add test case for the fixed bug 4037 by @mvdan in
5c6dd1c - cue: fix panic in LookupPath on unfinalized arcs by @rogpeppe in
4160e88 - encoding/jsonschema: recognize matchIf in Generate by @rogpeppe in
fedcd87 - internal/core/adt: avoid hang on self-references through "let" by @mvdan in
85e008d - encoding/yaml: consistently use cue.Concrete when calling Value.Syntax by @mvdan in
39d559b - encoding/jsonschema: use more generic
siblingsfunction by @rogpeppe in366de4b - encoding/jsonschema: minor improvements to Generate by @rogpeppe in
06d8b91 - encoding/jsonschema: add a few tests by @rogpeppe in
2efaae1 - encoding/jsonschema: recognize matchN in Generate by @rogpeppe in
40a9710 - encoding/jsonschema: round trip external tests by @rogpeppe in
899a983 - encoding/jsonschema: list support by @rogpeppe in
b4b3d1b - encoding/jsonschema: improve mergeAllOf behavior by @rogpeppe in
b8e3859 - internal/core/adt: test TopKind in TestKindString by @mvdan in
42731c2 - all: continue transition away from adt.Vertex.VisitLeafConjuncts by @mvdan in
658608c - encoding/jsonschema: adjust for net/url fix in go@master by @mvdan in
f79aafe - internal/core/adt: add the Vertex.LeafConjuncts iterator by @mvdan in
2af8a20 - internal/core/adt: turn VisitConjuncts into ConjunctsSeq by @mvdan in
b33320b - internal/mod/semver: clean up with cmp.Compare by @mvdan in
a85df20 - cmd/cue: clarify what version affects experiments by @mvdan in
ef2044e - cmd/cue: add --outfile flag to
get goby @fionera ina6eaaf6 - encoding/jsonschema: use ast.Expr rather than map by @rogpeppe in
77c93c6 - encoding/jsonschema: add test case for regular fields by @rogpeppe in
e58947e - internal/encoding: add jsonschema as an output format by @rogpeppe in
577c245 - internal/encoding: do not require input to be concrete for concrete output formats by @rogpeppe in
9305978 - internal/encoding: refactor Encoder.Encode, Encoder.EncodeFile by @rogpeppe in
93c27cc - cmd/cue: explain package instances in cue-help-inputs by @jpluscplusm in
103b1ce - cmd/cue: rewrite export help text by @jpluscplusm in
ff5711d - internal/cuetxtar: do not skip tests on Instance failure by @rogpeppe in
d62b617 - Revert "mod/modregistry: mirror referrers in Client.Mirror" by @mvdan in
6f47bbf - mod/modregistry: mirror referrers in Client.Mirror by @rogpeppe in
9b06b4c - encoding/jsonschema: implement Generate by @rogpeppe in
c60b98a - cue/ast: simplify IsValidIdent logic via strings.CutPrefix by @mvdan in
53ace20 - cue: reuse internal.IsDef to tell if a name is a definition by @mvdan in
c486bc3 - encoding/jsonschema: remove unused state.value method by @mvdan in
14a7236 - cue/literal: properly include hashes in escape sequences in bytes by @mvdan in
d21fac3 - cue/literal: add test case for lossy bytes quoting by @mvdan in
d8c663c - cmd/cue/cmd: alias
cue help experimentby @rogpeppe in5432a20 - internal/encoding/gotypes: handle CUE import aliases and duplicates by @phoban01 in
ba534b5 - all: run cuetxtar garbage collection by @rogpeppe in
3e1e769 - internal/cuetxtar: implement garbage collection by @rogpeppe in
a3eb068 - cue/ast: rename NewLabel to NewStringLabel by @mvdan in
869b034 - cue/build: remove the Instance.Match field, which was never set by @mvdan in
dc3731d - cue/literal: use Form.tripleQuote when quoting a string by @mvdan in
af175ed - cue/ast: remove commented out bits of code by @mvdan in
ed355b0 - internal/core/compile: properly quote labels in error message paths by @mvdan in
01181e9 - cue/testdata: add a test case for quoting paths in evaluator errors by @mvdan in
08d34f9 - cue/format: remove unnecessary IsDefOrHidden check by @mvdan in
0010744 - encoding: use ast.StringLabelNeedsQuoting by @mvdan in
a73e4cd - cue/ast: add StringLabelNeedsQuoting by @mvdan in
1f88e1a - internal/cuetdtest: consider the first item in a Matrix to be default by @rogpeppe in
1bc296c - cue/stats: use
ResolveDepin arithmetic by @rogpeppe in37ebf7e - cue/testdata/basicrewrite: use consistent spelling for "diff/explanation" by @rogpeppe in
8332fd5 - internal/core/adt: "write" stats file even when it isn't changing by @rogpeppe in
1873f84 - lsp/cache: be robust for nil file content by @cuematthew in
ec216cf - cue/parser: use more robust logic for detecting the end of an interpolation by @rogpeppe in
afdde34 - cue/parser: add test case for string interpolation edge case by @rogpeppe in
276bcce - cue/scanner: document how interpolations work by @rogpeppe in
7e9543b - update all dependencies by @mvdan in
5944fee - lsp/definitions: add support for the self experiment by @cuematthew in
d4f9bfb - lsp/definitions: completions from dot should be zero width by @cuematthew in
5c15642 - lsp/cache: prevent files from being both standalone and module/package by @cuematthew in
9357acf - cue/ast: tweak ParseImportPath to treat
:pkgnameas.:pkgnameby @mvdan in0a41be8 - cmd/cue: add a test case for the recent
:pkgnameCLI argument regression by @mvdan ina880c06 - lsp/cache: add support for standalone files by @cuematthew in
632f9b7 - internal/lsp: refactoring by @cuematthew in
ab67c05 - cue/load: respect package qualifiers when matching wildcard packages by @rogpeppe in
a862f84 - cue/loader: add test for issue 4110 by @rogpeppe in
36bcb3e - internal/core/adt: add Kind.AllKinds and Kind.Count methods by @rogpeppe in
313e0c1 - internal/export: cater for NodeLink by @rogpeppe in
b2a7b29 - cue: add test for issue 4093 by @rogpeppe in
47dab36 - cmd/cue: simplify when printing imported CUE schemas by @mvdan in
16118b3 - encoding/xml/koala: use ast.NewLabel by @mvdan in
880df5b - internal/encoding/yaml: use cue/ast.NewLabel by @mvdan in
43c8a39 - cue/ast: introduce NewLabel helper for regular fields by @mvdan in
8561bce - cmd/cue: remove debug print in
get goby @mvdan in91d2572 - internal/core/convert: use reflect.Value iterator methods by @mvdan in
be9298b - internal/core/adt: improve structure sharing for _ by @mpvl in
458b038 - internal/ci: update various action dependencies by @mvdan in
79e9f72 - swap gopkg.in/yaml.v3 for go.yaml.in/yaml/v3 by @mvdan in
2502321 - cue/load: add test case for the fixed issue 741 by @mvdan in
b74aa03 - all: consistently split test table structs by @mvdan in
43fd8bc - internal/core/adt: make Vertex.Elems return an iterator by @mvdan in
e95b0f9 - cue: deduplicate work from adt.Vertex.Elems by @mvdan in
258881a - all: swap len([]rune(s)) for utf8.RuneCountInString(s) by @mvdan in
2de87fb - cmd/cue: remove the last use of
shin testscripts by @mvdan in25d062b - doc/ref/spec.md: some formatting and typo fixes by @mpvl in
139b17a - doc/ref/spec.md: support unary == bound by @mpvl in
3500cef - doc/ref/spec.md: support comparing values of different types by @mpvl in
c356290 - internal/cueexperiment: make keepvalidators stable by @mpvl in
c9da2b2 - cmd/cue: include global experiments in experiment help by @mpvl in
062fc5b - internal/cueexperiment: standardize experiment lifecycle system by @mpvl in
9867177 - cmd/cue: added cue help experiments command by @mpvl in
f1feade - internal/core/adt: accept structcmp experiment by @mpvl in
8572198 - cue: implement "self" by @mpvl in
28641c0 - cmd/cue: test the handling of interrupt signals by @mvdan in
8e34149 - cmd/cue: treat top-level incomplete errors consistently by @mpvl in
26efa72 - cmd/cue: add test for issue 4079 and 4029 by @mpvl in
07635e5 - cue/testdata: add fixed test case for issue 3743 by @mvdan in
bae3189 - cmd/cue: add test for issue 4005 by @mpvl in
1fc8f9d - internal/core/adt: show all user errors by @mpvl in
519b41f - internal/core/adt: add test for Issues 3983 and 3984 by @mpvl in
ada7c5a - internal/core/debug: prevent stack overflow by @mpvl in
59ed403 - internal/core/debug: remove use of compact printer type by @mpvl in
9ad4116 - 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 goon any syntax or type errors by @mvdan inb311ec4 - cmd/cue: tweak
get goerror tests to actually do what they say by @mvdan in3995d69 - CONTRIBUTING: fix links spotted by
xurls -fixby @mvdan ina8ef9bc - cmd/cue: re-enable skipped
cue get gotest with broken go:embed by @mvdan in5e7885d - 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 versionoutside of testscript by @mvdan in043b7de - 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 -toolnow that we require Go 1.24 or later by @mvdan ind40cfd3 - 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
v0.14.2
Evaluator
Fix an unintended evalv2 regression in v0.14.1; the change only intended to affect evalv3.
Fix a panic in the parser which could occur when @experiment() file attributes are invalid.
Fix an edge case where binary streams with ''' sequences would not roundtrip correctly.
Full list of changes since v0.14.1
- internal/cueversion: bump for v0.14.2 by @mvdan in
d3fd2fb - internal/ci: build releases with Go 1.24.8 by @mvdan in
9d0a821 - update golang.org/x/... dependencies where we can by @mvdan in
3700db6 - cue/literal: properly include hashes in escape sequences in bytes by @mvdan in
e307749 - cue/literal: add test case for lossy bytes quoting by @mvdan in
cfb31dc - cue/parser: backport a fix to avoid panics on experiment errors by @mvdan in
15e00c7 - internal/core/adt: revert unintended behavior change in evalv2 by @mvdan in
3bacdcc
Configuration
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
- If you want to rebase/retry this MR, check this box
This MR has been generated by Mend Renovate.