Changes which may break some users are marked below with: ⚠️
Language
The new openlists experiment
This release introduces the openlists experiment, which makes lists open by default, just like structs. A list literal without a trailing ellipsis is no longer fixed to its length outside of definitions, so unifying [3] with [_, 4] yields [3, 4] rather than an incompatible list lengths error. Lists close where structs close: within a definition, or when passed to close, which now accepts lists as well as structs.
The experiment also introduces closed literals: #[1, 2] means what [1, 2] means without the experiment, and #{a: 1} closes a struct at its own level as close does. As #[ now starts a closed list, an index on a definition named # is written (#)[i].
You can try this experiment on a module at language version v0.18.0 via the @experiment(openlists) file attribute. cue fix --exp=openlists rewrites existing files so they keep their meaning, writing list literals as closed literals and wrapping slices and builtin results in close. See the proposal for the full design.
⚠️ Exact arithmetic
Integer addition, subtraction, and multiplication are now exact at any size, as the spec requires, rather than rounding to 34 digits. This also fixes strconv.FormatInt and uuid.FromInt failing on large integers (#3787, #4263), as well as SI multipliers on long literals, math.Floor, math.Ceil, and math.MultipleOf, which all rounded numbers beyond 34 digits.
Dividing two integers now yields an int when the quotient is exact, as the spec has always prescribed: 4 / 2 is the integer 2, so x: float & 10 / 5 is now a conflict. A quotient also keeps the decimal places its operands imply, so 6.00 / 3 is 2.00, and an exported float always carries a digit after its decimal point.
The list.Sum, list.Product, list.Avg, list.Range, list.Min, list.Max, math.Abs, math.Copysign, and math.Dim functions now follow the arithmetic operators, keeping the kinds of their arguments: list.Sum([1.5, 2.5]) is now the float 4.0 rather than the integer 4, so a field declared int no longer accepts it. The arithmetic functions in list are also now incomplete on open lists, as more elements may still be added (#2569).
Other changes
Multi-line strings now accept a backslash-escaped newline, as the spec has always allowed (#2317), and single-line strings discard carriage returns in all cases.
A for clause binding the same name twice, as in for k, k in x, is now rejected as a redeclaration (#4012).
Two values of the functions experiment introduced in v0.18.0-alpha.2 now compose when unified, calling both bodies and unifying their results, rather than conflicting. Unifying function types now matches parameters by label and combines optional, required, and regular parameters as for struct fields. Recursion via closures, such as with a fixed-point combinator, is now detected as a structural cycle rather than evaluating without bound (#4495).
Evaluator
⚠️ Selecting through a regular field which holds a definition now keeps the definition's closedness, just like selecting from the definition itself. Such selections inside a for comprehension's body are now closed as well, as they already were inside an if.
#D: s: {a: 1}
d: #D
x: #D.s & {extra: 1} // error: field not allowed
y: d.s & {extra: 1} // now also an error
Error reporting is more complete in several ways. A missing required field now points at the data which omits the field, so that cue vet with many data files says which one is at fault (#2520). A failed lookup now also reports where the searched value is declared. A bound or validator which fails on a list or struct with erroneous elements now reports all of them rather than only the first (#4115), and fields not allowed by a closed struct are now reported even when a sibling field has an error.
Errors which were previously hidden or misreported have also been fixed: an error inside an interpolation, as in "\(x.foo & {})", no longer evaluates to an empty string (#2201), a builtin given a non-concrete argument now reports the error behind it (#3986), and matchN no longer reports a spurious error next to a conflict between kinds (#4462).
Fix a panic when a builtin propagates a user error from within a disjunction (#4490), a panic or misresolved reference in the fallback body of a try clause, and a spurious cyclic reference error with deeply nested comprehensions (#4487).
cmd/cue
⚠️ The -n/--name flag is now only accepted by cue import, the only command where it had any effect (#3048), and the -s/--simplify flag is now only accepted by cue eval, cue fix, cue fmt, and cue trim.
cue vet, cue export, and cue eval -c now report incomplete values alongside any other errors, rather than leaving them out whenever another field had a conflict (#1319, #4140).
cue trim now supports reading from standard input, writing the result to standard output (#346).
cue fmt now keeps the line breaks between function parameters and call arguments (#4497), and cue fmt -s rewrites a pattern constraint which only matches a single string, like ["^t"]: v, into an optional field, making clear that it is not a regular expression (#1045).
A --path value with a trailing component which is not a label, such as foo:bar:baz, is now rejected rather than silently ignored (#3368).
A task failing in cue cmd now names its path in the error (#2631). tool/http.Serve now sends every value of a repeated response header, fills in both the body and the form of a urlencoded request, and only starts accepting requests once every ready Serve task has run.
The new cue exp ast command prints the syntax tree of CUE files, which is useful when debugging tools built on the cue/ast Go API.
The cue binary is 7% smaller thanks to dropping most of the protobuf runtime from its dependencies.
⚠️ The cuelang/cue Docker images are no longer published under per-architecture tags such as 0.18.0-alpha.2-amd64; use the multi-platform tag, such as 0.18.0-alpha.3, which serves both linux/amd64 and linux/arm64. The images now also carry an SBOM attestation.
Modules
@embed attributes in a file without @extern(embed) now report the missing declaration rather than being silently ignored (#4010), and cue def now omits @embed attributes from its output, as their values are already included.
cue mod get can now move a dependency off a version which no longer exists in the registry (#3965), and cue mod publish now reports when the module directory is ignored by the VCS rather than claiming that cue.mod/module.cue is missing (#3400).
Module zips now order files before directories, as documented, which changes the digests of newly published modules. Publishing a version again with the same files now reuses the archive already in the registry, so republishing, such as when retrying a release job, keeps working against registries with immutable tags even when a newer cue produces a different archive. cue mod publish also no longer uploads blobs which the registry already holds (#3340).
Several bugs in package loading have been fixed: a hang when loading a directory whose name has the module root as a string prefix, a missed module root for one-letter directories, cue.mod/pkg imports failing when loading via cue/load.Config.FS (#4494), and the "*" package pattern dropping packages after the first one that failed. Login token refreshes now follow each request's cancellation, and a canceled module fetch is no longer remembered as a failure.
LSP server
Fix two crashes in the language server: when opening an embedded file in an encoding which does not decode into a package, such as TOML, and when a package file fails to parse fully.
As always, the language server is under active development: please report any bugs or missing features you encounter via the Issue tracker or via the #lsp channels on Discord or Slack. See our Getting Started wiki page for instructions on how to set it up with your editor.
Encodings
Experimental INI support
INI files can now be both imported and exported, such as via cue import config.ini or cue export --out ini (#2689). As INI has no specification, the default generic flavor only accepts the syntax which all flavors share, so that no data is lost; the flavor file tag selects the syntax of a particular tool, as in ini+flavor=git: for a git config file, with git, python, systemd, and windows supported. The encoding is experimental, so both the flavors and the CUE they decode to may still change.
cue get go
cue get go now follows encoding/json for embedded structs, promoting their fields without requiring an inline tag option (#1026), and supports the encoding/json additions of Go 1.27, such as the embed option, as well as the string option. The new jsonv2 codec follows encoding/json/v2 instead, and each field now takes its optionality from the tag of the codec which names it (#4471).
The new --omit flag takes selectors such as pkg.Name, replacing the deprecated --exclude flag. Its pkg.Name.Method form translates a type as if it lacked an encoding method like MarshalJSON, so that a schema can be generated for types which only implement such methods to validate their input (#2466).
cue exp gengotypes now generates omitzero rather than omitempty, which behaves the same under encoding/json and encoding/json/v2, keeps ? and ! in quoted field names, and reports @go attributes misplaced in a file's preamble (#3904) as well as inputs without a package name (#3764).
Other changes
The JSON Schema decoder now supports unevaluatedProperties where the evaluated properties are known statically, such as via allOf and $ref, and unifies allOf subschemas so their fields and documentation appear in the result. It also compares const and enum numbers by value, so const: 1 accepts 1.0 (#4121), narrows the allowed types by the target of a $ref, decodes OpenAPI's float and double formats as float32 and float64 (#4437), and only allows null when OpenAPI's nullable is true.
The JSON Schema encoder now generates exact numeric bounds, such as the limits of int64 and uint64 (#4438), keeps the bounds of a type with a default such as *20 | int & >=1 (#4305), and no longer emits a redundant number type next to integer. The deprecated OpenAPI encoder no longer splits a default list of definitions into a oneOf (#4156).
The TOML decoder now rejects a table array at a key already declared as a table, which could panic, and importing JSON or YAML strings starting with two quotes no longer produces invalid CUE.
Go API
cue.IsIncomplete now reports an error combining several others as incomplete only when all of them are, so that a permanent error is never mistaken for an incomplete one. It also recognizes the incomplete errors from cue.Value.MarshalJSON, and looks through errors.Join and cue/errors.Wrapf.
Lists of errors from cue/errors now implement Unwrap, returning all of their errors, so that code walking a tree of errors such as those built by errors.Join can see into them.
cue.Value.Allows and cue.Value.Subsume no longer treat a closed value such as #Def & {...} as open (#4496), and cue.Value.Expr now reports a disjunction where only one disjunct survives as that disjunct (#4305).
cue.Value.Decode once again prefers a tagged field over an untagged one at the same depth, fixing a regression introduced in v0.9.0, and converting a Go struct to CUE now names its fields as encoding/json does (#2261). cue.Value.Int64 now accepts math.MinInt64, and cue.Value.Float64 returns a negative zero on negative underflow, as documented.
A number of APIs no longer modify the values or syntax trees given to them, which also fixes data races when exporting concurrently: among others, exporting values, cue/ast.AddComment, and cue/ast/astutil.Sanitize, as well as cue.Path values appended to the same base. cue/ast/astutil.Apply now stops when its after hook returns false, and Cursor.Replace keeps the replacement's comments, both as documented.
tools/flow no longer leaks task goroutines when Run stops early (#2663), and cuego.Constrain now reports compile errors and no longer loses constraints registered concurrently.
The new CRDConfig.TargetLanguageVersion field lets encoding/jsonschema.ExtractCRDs generate schemas for modules declaring an older language version.
Full list of changes since v0.18.0-alpha.2
- cmd/cue: forward ResolveBlob to the registry in mod publish by @mvdan in 321591db08df248f10a7ad70e1dbd646e1ee3df8
- mod/modregistry: reuse a tagged zip archive holding the same files by @mvdan in a7a47c4fd2a62a7363dd25f9e5993415239f08ed
- mod/modregistry: test publishing the same files in a different zip by @mvdan in f3d65ebbb12556bd8d91a3c4313c54b6e2f3cd0b
- encoding/jsonschema: unify allOf subschemas unless the object is closed by @mvdan in 800a8234367d0fe36e3252b2dc7748f385d6429d
- encoding/jsonschema: add tests for allOf subschemas with fields by @mvdan in e646ae57ce69760f6490c4dc131e95e6210560f5
- specs/adzdp/implement: record the implementation by @mvdan in e88103f97a9585ccb47713919348ba4962f54934
- cmd/cue: remove the unused Dockerfile by @mvdan in 4c0172af372333abb22fbb9e10fb364e7d09f09d
- internal/ci: migrate the release images to dockers_v2 by @mvdan in be954305019359b3e38601175f5790d51318905c
- internal/ci: stop publishing to the Homebrew tap by @mvdan in e486594d6018b15e5750dac1835dcf4e77351f23
- specs/adzdp/tasks: generate tasks for retiring the Homebrew tap by @mvdan in 6962862a859e8c531f50f260b94a7fa7ec785c0b
- specs/adzdp/plan: plan retiring the Homebrew tap by @mvdan in 87c00041ca87cf906d7ef087ce01c122c395d8c8
- specs/adzdp: specify retiring the Homebrew tap by @mvdan in 2e165a4fb087d747eaa96e3f6b7085407c6be290
- specs/adqvn/implement: record delivery by @mvdan in ebf18fcdf515f954ea03ac11be505f8bad746afd
- cmd/cue: export INI by @mvdan in fd9003640e5c45a856218811958b912cae20de67
- encoding/ini: add an INI encoder by @mvdan in 5d8e8c61b6c0d693dc18e3266b9b136251fddbd0
- encoding/ini: share option logic for an encoder by @mvdan in 3cc58b2ebc6a3fc90a14b76f8439460df0cd98f0
- specs/adqvn: clarify, plan, and break down the INI encoder by @mvdan in 21abb0f6c005a00678144f113de7e3c7131ae46b
- internal/lsp/cache: pop only the symbols which were pushed by @mvdan in bda5cc1f94723554f6bd0a38716b468599ffd64a
- internal/lsp/cache: test document symbols with an unmappable field by @mvdan in 7504f2007b7f73e0120f2666ac5c399968539b8e
- internal/core/compile: report unreferenced let clauses in source order by @mvdan in 087a19d6fd1cdd81c0053a72b52671cdddfb6736
- internal/cueexperiment: report unknown experiments in a stable order by @mvdan in 2fedd689c97f66be15e8bba620c0546c463fcea1
- cue: return negative zero from Value.Float64 on negative underflow by @mvdan in 214c7edd4bd36807dc138590e5141e0fb81fd065
- cue: test the sign of zero results in Value.Float64 by @mvdan in e8c715a0a04af3990a11c8fcfe5dcbd2b8d98731
- cue/literal: discard carriage returns in all single-line strings by @mvdan in 7de6b46c55df7b0da2d8f43637f8dcd20ee410f9
- cue/literal: test carriage returns in single-line strings by @mvdan in c202897cfddadf82bf71dd13ef5c0535647019ab
- pkg/tool/http: keep the raw body of a Serve form request by @mvdan in c6f14d7aca9dbfe3e79787ceedff09792e7bea43
- cmd/cue: test http.Serve with a urlencoded form body by @mvdan in d8bbd7c69998ab11ed26ee2e164b20c953c530f2
- pkg/tool/http: send every value of a Serve response header by @mvdan in 0d550368dee5952983920124050683dea1f0a8ac
- pkg/tool/http: test a Serve response header with multiple values by @mvdan in 1c58390ef7c2f6445244265311e44bb7e629dfec
- internal/encoding/gotypes: keep ? and ! in quoted field names by @mvdan in 942b704e7313555522455a8bb03ccce409da0daf
- cmd/cue: test gengotypes with field names ending in ? or ! by @mvdan in 9e0fde88768a67d47c1a3fb51ffe1ed0a06bfa97
- cuego: do not overwrite constraints in the type cache by @mvdan in 5666343899f0a2425b3f9fc7ac67d5c58bd5b4e4
- cuego: report compile errors in Constrain by @mvdan in 3574635facfad44cd9f4f8b7c99f347b63c8605f
- cuego: test Constrain with invalid constraints by @mvdan in d7a5163a8bd115a536cfc245cf14105aa26236ee
- mod/modcache: remove the temporary file when writing a cache entry fails by @mvdan in 32d99f2b33e60fbfa1bd955e1de998e9185f4fef
- mod/modcache: test a failed write of a cache entry by @mvdan in 85744a0b9647239d44141d97a841d489f8a75d64
- mod/modregistry: report a failed manifest push when mirroring by @mvdan in 649ab4130c112e41c621e1eeef7cd7f38695fd5b
- mod/modregistry: test mirroring to a registry that rejects the manifest by @mvdan in 335fbf6a47f6d4e54c367c8e2ff87baaeaf67db2
- encoding/toml: do not keep a pointer across a table array deletion by @mvdan in 46809cb006455072b12dad44b36de9b4b90a560a
- encoding/toml: reject table arrays at implicitly declared tables by @mvdan in 79d23450453e5336e0ce620e8e66e1d827c40409
- encoding/toml: test table arrays at implicitly declared tables by @mvdan in cedd6724197eac2b0b6bef5d612a0a3b492eb248
- internal/core/adt: keep closedness beside an ellipsis in an embedding by @mvdan in 0340481e38f21f2839b254a73c39d715c6c830d6
- internal/core/adt: test an ellipsis beside a closed embedded field by @mvdan in 44b37c2f58cc64fcac3fa690f38521fd7cc1c0e8
- internal/core/adt: compare patterns in structural equality by @mvdan in b2dc3efb8e2746192ca8634a819508734aba4270
- internal/core/adt: apply the kinds of disjunctions skipped on a cycle by @mvdan in 15f80f288769dbcd507956917846314882ac0b64
- internal/core/adt: test a scalar unified with its enclosing disjunction by @mvdan in ae81df74e78fc2bbbca52fe2308c6fba29d886a3
- internal/core/adt: test validators which only differ in patterns by @mvdan in 70624fd185a197c80c9fd1ee5ad8489a1292624a
- cmd/cue: note the known bugs in cue add by @mvdan in c3d30377df1ae43248df93d1bcfa817b4a5bd23f
- internal/mod/modimports: include the module root for one-letter directories by @mvdan in 823582ac49d4fc989069d7015665c6269d9e0701
- internal/mod/modimports: test package files of a one-letter directory by @mvdan in 31c956846d8b2d73d3a29f5af8ff919430e69bf4
- internal/cueconfig: allow null registries in logins.json by @mvdan in 97b16ef82a3fabb06600b03818c1397aa977c46c
- internal/cueconfig: test a logins.json file with null registries by @mvdan in c8f682f37511239e5ae7a2b32085ce5bc84cf999
- cue/load: load every package in a directory with "*" by @mvdan in 7adce293bb3662dac6ce8682477b1de29c6496aa
- cue/load: test loading a directory where one package fails with "*" by @mvdan in 779c423775bbfee03f4c025eb9de488d233db380
- internal/pkg: report a builtin's Bottomer error which holds no Bottom by @mvdan in 1ba6cf5089b3d84d003265600f899cafaf7c3531
- pkg/encoding/openapi: test MarshalSchema with an unsupported value by @mvdan in 5d7a22dd1e12fca450b38de4d4b3cd4fe575c713
- cue/load: compare directories by path elements, not string prefixes by @mvdan in 7ace5c0ff4ef97de933eb0d55980f0eed787ba6a
- cue/load: test a sibling directory sharing the module root's prefix by @mvdan in 1ac374d25ef4d8a52d32b9f4daef226089d5c7ad
- cue/literal: do not hash-quote strings starting with two quotes by @mvdan in 307479dffa4f1c0396547ea9970dac50d228378d
- internal/encoding/yaml: test importing strings starting with two quotes by @mvdan in 77c25e81bfa0f423de6bda12bf577e8249bb5764
- CLAUDE.md: drop derivable and stale content by @mvdan in ce4eb369e6250b8f9df45b4af48589e315dce813
- internal/mod/modload: do not fetch missing versions UpdateVersions replaces by @mvdan in f829094dfcf1887a8574a595f2c31aa038a485b8
- internal/mod/modload: test updating a dependency whose version is gone by @mvdan in a2192f2443b277026eef78f6e024ab0fc833f711
- cue/ast/astutil: insert a copy of an import spec not in the file by @mvdan in 70664f0d8cc1f9f88be018fe48b27aa942103e52
- internal/core/export: clone the source of a function call reference by @mvdan in a86ecaea72e4933d99273d807ca827d88329c9a4
- internal/core/export: test exporting the result of a function call by @mvdan in bfdb5c4c0ab43cd10bd96e9bbcc49b36b43a1a9a
- internal: do not modify source comments in FileComments by @mvdan in af05a0ff7d8d9eb34fed26736016d51dce950e5d
- internal/core/export: test exporting docs of a file without a package by @mvdan in 33c30b9e5590a82de69cde33988632b63ed2abb7
- internal/core/export: do not modify source package comments in toFile by @mvdan in 3a30cc9aafee764203d054d5b12c6913e7c17f81
- internal/core/export: test the source package comments after export by @mvdan in 94e08b0f2c618dc5ac0de90b1a81e2e4213f76d5
- internal/core/export: do not modify source comments in withLeadingRelPos by @mvdan in 3ad70290218f2428551b338b99d723e5a39ee9a5
- internal/core/export: test exporting a doc comment after a dropped one by @mvdan in c4807c092c9185cab4f32b4219356a45d056e655
- internal/core/export: do not sort a conjunction's values in place by @mvdan in 0db94366c7dcb4bdabeb22c727997972e55b4652
- internal/core/export: test that exporting leaves its input unchanged by @mvdan in 9af0a5396babbef7fe69149533869c257d1c0ab2
- cue: let tagged fields dominate untagged ones in Value.Decode by @mvdan in c0860a0470e4670ffcb7321af76c5a26912e494f
- cue: test decoding into a tagged and an untagged embedded field by @mvdan in 82917a20807e75713c7bf6c9b13c35f09411b717
- cue/errors: clip the list returned by Errors by @mvdan in a0a66dc1aad24cf98fe5ed054053d9a8330b3c01
- cue/errors: do not append into the parent's positions when wrapping by @mvdan in 223117f7864693bb2e17f7b073443c8148e19d3d
- cue/errors: test input positions of errors wrapping one parent by @mvdan in cd64ac7ff29f453c2fd061584b5bcd8502300d65
- cue: document that MakePath and Path.Selectors share storage by @mvdan in 1e20a925cbb7778c4efa1ab709870ac80d19974f
- cue/ast: clip the slice returned by File.Preamble by @mvdan in 391ad43ca6d05226a728b27e2ae21c509c414575
- cue/ast/astutil: test appending to File.Preamble by @mvdan in be2b3ba13a838485c56cc434a26df8d311bbc9af
- cue/ast: clip the comment groups returned by Comments by @mvdan in 8fe6494c46498484b89292a0b812f236ef91b47b
- cue/ast/astutil: test appending to the result of ast.Comments twice by @mvdan in 6d1d6fd9bd004bfd2825858a7ca1d8b5ea3be63c
- cue/ast: do not write into shared comment slices in AddComment by @mvdan in c3454e4acbbf749a7a7fabf703e97c2ab853c0ec
- cue/ast/astutil: test AddComment after CopyComments by @mvdan in b53461f5f757e3074e54f59e2ffacbd9a0de4f6f
- tools/flow: clip the task slices returned by accessors by @mvdan in 94171d8012ddc46fbb723c7578d6e5baa877d273
- tools/flow: test appending to the slices returned by accessors by @mvdan in 855a83e592ab6a4c402a09d0e6e8e1a7392bf53d
- internal/core/adt: do not modify source conjuncts in toDataAllRec by @mvdan in b5ef2aca14f7e5b47a9aaa3de0674ab5c572db5c
- cue: test that a validator leaves the value it validates intact by @mvdan in a14ab821bd7aa001ecbfc9faba668e3d3ca31918
- cue/format,encoding/openapi: note that old versions are unmaintained by @mvdan in ce56bdda76036bdb130af54b93eef994a8f0dde6
- cue/load: remove the module cache dir in Example_externalModules by @mvdan in 8cc7b6f881d9191af95e39c1296719dff59ee689
- ae0av: docs: report the recursion fix and its performance analysis by @mpvl in 874c98b73c690ed078ed67e7380be6bd58269aba
- ae0av: docs: declare and triage fix-recursion-bug by @mpvl in 684de2839d51f2e4be94440988c939b44d92cb39
- cue/testdata/functions: test closures created at a single call site by @mpvl in 4c6cd008404121262f23cb467c9de9db57983999
- internal/core/adt: detect recursion through fresh closures by @mpvl in 1675d4e9bf7561bfc8b01b60faa6b3c4f89ce7fb
- internal/core/adt: add a benchmark for native function calls by @mpvl in d2dca7af811a59f65192788e7636987daff99ef6
- encoding/protobuf: record an error's path when raising it by @mvdan in b2aed2240b91d97d588d6cd2b67265fd21290548
- encoding/protobuf: test the path of an error within a message by @mvdan in f056971985095a44c1d75db225beb9ac2a7e115e
- mod/modzip: sort files with fewer path separators first in Create by @mvdan in c9a179be456bb75325929323df1fae4c4840097c
- mod/modzip: test the order in which Create writes files by @mvdan in 42f781970f1985a3536204be7560811c05edfaab
- internal/core/export: do not modify source doc comments in mergeDocs by @mvdan in db78a4c03a6157b16db5048f7f0eac41eb3d6b82
- internal/core/export: test exporting merged package docs twice by @mvdan in ce8c6ea33ef1676afb36f76128315a3249dcfb29
- cue: do not share storage between paths appended to one base by @mvdan in caccc06a30f3ddfe67d6e0a63a6f173f5370c199
- cue: test appending to the same base path twice by @mvdan in 1c1395644e905499319d77284482a6332fd58a69
- internal/core/adt: do not drop arcs in place in completeAllArcs by @mvdan in 63f747823251adc4a0e84ca2844c4c928fda14e4
- internal/core/adt: check typos in structs whose fields have errors by @mvdan in 22afb6197b50df1601844a1628a60bbe6b932228
- internal/core/adt: add tests for typos next to erroneous fields by @mvdan in d163badcbd9d9ab74b37296509347f16adc7c5b0
- cue: test Fields and LookupPath on disjunctions of structs by @mvdan in 8f35733f5c0684358b81f318456e3e0389e84781
- cue: stop skipping test cases which got their expected error by @mvdan in 03a14646cba62dc8a2652f97d528924a3dc3c137
- pkg/path,encoding/jsonschema: stop skipping tests which already ran by @mvdan in b06d8607e430f8207e9484035a662c086e27ad61
- update golang.org/x/tools by @mvdan in 32647940ec03bef1dd8f0d1ea4ebfc1faa3eef4f
- cmd/cue/cmd: run cmd_serve on a kernel-chosen port by @mvdan in 26e049111c4b3e636066b24ca8d5a59c5d74d3b8
- pkg/tool/http: log the address that Serve listens on by @mvdan in c0d5b6c93e23d5768f722d1e449800d4b2806384
- cmd/cue/cmd: run mod_registry on a kernel-chosen port by @mvdan in dc107c67a03afcfa14b9b976601bd2471ca85c4d
- update go-internal for its waitmatch testscript command by @mvdan in 890c324e1754ed1567d58771d1f79ece910f5dda
- encoding/jsonschema: restrict types by the schema a $ref points to by @mvdan in 9e97a0f3f7dec63a435cc8430b829f2dbac25a52
- encoding/jsonschema: add a test for keywords next to a $ref by @mvdan in 4e4d78311ce1b510ea7924b5e57f6efce56dc198
- internal/core/adt: skip validators on a value with conflicting kinds by @mvdan in 79fa2ab46cc8a3eb393aa873f57f1cca95ef27fb
- internal/core/adt: test validators on a value with conflicting kinds by @mvdan in 804ff857a5e89a0b53c3a7cf070c621121f094cd
- encoding/jsonschema: count only the allOf members which matchN checks by @mvdan in 44bcbfdeeb6cf9a4f30d73df907338ef34208180
- encoding/jsonschema: add a test for allOf members without constraints by @mvdan in 34a123b9ea351d3cb1a86610dcb3ea84197eaab7
- encoding/jsonschema: keep integral floats in an integer enum by @mvdan in 28c7ed72a0930460428af9861e3a7889eaae5688
- encoding/jsonschema: add a test for integral floats in an integer enum by @mvdan in 49592c5f25717b50c8a43fd34a0641378b0eb655
- encoding/jsonschema: allow null only when OpenAPI's nullable is true by @mvdan in b8f5f1150aa752fec79096ecac638bbebbcaa4e5
- encoding/jsonschema: add a test for OpenAPI's nullable set to false by @mvdan in 90833c379c23fa3357f2a8b799eb90761cdf03eb
- cmd/cue: report incomplete errors when checking data files with a schema by @mvdan in bd42a125a41db52dc09b20a66714a3d91512de9d
- cmd/cue: test incomplete errors when checking data files with a schema by @mvdan in 93149bdd9f0c760ce41ebc0e61f5a7b5e614f4ec
- internal/core/adt: keep incomplete errors when validating all errors by @mvdan in 6f6e6d8f27ad8c8430c20c834e430b9f3939f356
- cmd/cue: test incomplete errors alongside other errors by @mvdan in c5645644798be6280ad861bef5251a359314fbf5
- cue/errors: implement Unwrap on error lists by @mvdan in 748a8e9b468f56c55e3bc3b7a6c0853f212bb422
- cue: recognize any error carrying an adt.Bottom in IsIncomplete by @mvdan in fcbb28da2d01d93a633794dd452b9ef439c10b40
- cue: test IsIncomplete with marshal errors by @mvdan in fe97bfb800cb21d07a33670a6499843cfa995ea4
- lsp/cache: skip standalone files when linking embedded files by @cuematthew in c03b1fa7bba029c543c0169c71b7f0c0fa78963a
- cmd/cue: point get go users to better sources of schemas by @mvdan in 1fee9f40ce58eb836c4d6b9b2bf9112554527790
- cmd/cue: note in the help that the ini encoding is experimental by @mvdan in 8a38ee4f30b66ab7fdffe56d1829452335f3d8f8
- specs/adqvd/implement: record delivery by @mvdan in b96b959b82a526713e30315b0f4ee5d9b1bf99b6
- encoding/ini: document the options and the flavor model by @mvdan in 724d8c84f7558bc79b60b25260b6c78954da62b2
- cmd/cue: select INI flavors with a file tag by @mvdan in c7ced244706841bc2071d7fc1bf3a8cfe49ca6fe
- encoding/ini: add git, python, systemd, and Windows flavors by @mvdan in 54c66da54f92acdc02ccee458b851e0c31cb020f
- encoding/ini: let a comment start anywhere in a line by @mvdan in 9490bdf39d9b109d5ac5ebfbcd1f05c8cbe9ea09
- encoding/ini: add the TrailingHeaderText option by @mvdan in afd249a760264caada131d22b11c163972a6413c
- encoding/ini: compare names regardless of case by @mvdan in c689499cc4a6eb89d651406209fec9f1ee514f4b
- encoding/ini: add the DuplicateSections option by @mvdan in 05897bda53c58165a2953a8844bf2e20b8f82e98
- encoding/ini: add the Delimiters option by @mvdan in 141c3c580212679b6b65f44f989313730a17642e
- encoding/ini: add the Booleans option and narrow the typed grammar by @mvdan in e3c9f3b6058b164ed6489f518a7432ef9a2a352b
- encoding/ini: add the BareKeys option by @mvdan in 4922f3e3ceb87a2b3ae218118929a0f9c43ac6eb
- encoding/ini: add the Continuations option by @mvdan in 3dd39af5bc99344da774caf5b52457f2bc76bb6d
- encoding/ini: add the DuplicateKeys option by @mvdan in ff40f8f3b32f7c0b412ec86d9229a6165f0ca2a5
- encoding/ini: add the QuotedSubsections option by @mvdan in 5db2f22a35e6d3fdaa5d4881a61020ecf5bc687d
- encoding/ini: add the Quotes option by @mvdan in c22d9dadb6ba01b20e476eb1214d93a83f0b8b31
- encoding/ini: make the default flavor lossless by @mvdan in eaaa6bde31239aeec32debf127ce947bad14a78e
- encoding/ini: test lossless defaults by @mvdan in 34605606c5bdf36a3f6eee0ccc2ee49fab1f1bfc
- encoding/ini: restructure Config around flavor options by @mvdan in 6fb939fdc2e15b047226124e3ed7befad1f3b1b7
- specs/adqvn: specify the INI encoder follow-up by @mvdan in 519b4e31fea940c4e19228722c4bfb1867de2231
- specs/adqvd: specify and plan the INI encoding redesign by @mvdan in 106cf577f8da7a32331fe5646809ab4e0b47ae66
- internal/core/runtime: error on @embed without @extern(embed) by @mvdan in 82e8aa881cb1b69b5f26b4234e0d273eae3f3ff0
- cmd/cue: add test for @embed without @extern(embed) by @mvdan in f37e9e73a831a2bd36df3f68f85a317ea9b14930
- internal/core/export: omit injection attributes such as @embed by @mvdan in d066336f6c5e9dfa7ae1b6a1e3e1350383453465
- internal/encoding/gotypes: fail on @go attributes in file preambles by @mvdan in 8534ad22fae6f36c19fce0e9a324cd931018ee08
- cmd/cue: add test for gengotypes ignoring preamble @go attributes by @mvdan in 38c1ff2af49ec8e5e813a5acc0e128654913bd31
- internal/pretty: indent rows after a shared opener on a new line by @mvdan in 3330efcbbfb3a466566a916786a092ce86efa2d9
- internal/pretty: test rows after a shared opener on a new line by @mvdan in fe5fa2073363be176a93390a6b8f201d45707d31
- internal/pretty: add a trailing comma whenever the closer breaks by @mvdan in 7572cc45aa8046b1dd2a8eebcece66b5321d3f80
- cue/format: test the comma before a closer moved onto its own line by @mvdan in 46d65cf23b632ea464755e1a50ba42265ccba41f
- internal/pretty: keep line breaks in function parameters and arguments by @mvdan in 335a35148e299a9b45b995c8c5ecb69f2d465482
- cue/format: add tests for multi-line function parameters and arguments by @mvdan in 321dba2cf1ab2c74ccd6d2c47e8e1f42063f4d9b
- cue/format: simplify single-string patterns to optional fields by @mvdan in 784ea9ab106c50ba0aab1f1264c639de6d5595f7
- cue/format: separate label bindings from candidates when simplifying by @mvdan in 236624dd993a286c032218d19d765b2ce0c0f3fb
- cue/format: test label bindings when simplifying by @mvdan in 291ad96686bcb800bb59bf14e87204b3358a4ec3
- cue/format: keep the position of labels unquoted by Simplify by @mvdan in 8dfd58e5a0a2d67a5dcef180b1055a53027b8b2d
- cue/format: test the position of labels unquoted by Simplify by @mvdan in bbadb8bcd4e78f547deb8d3afa3262f7050e7a72
- cue/format: keep quotes on labels referenced by label expressions by @mvdan in b965423f0c9b2e21f3cb962156ef0be8e57e13d1
- cue/format: test label expression references when simplifying by @mvdan in 537f1f31dc137a48b4041a93bf11f85b0468d855
- cmd/cue: print relative filenames in cue exp ast print by @mvdan in 561f55c828e87a737d7abbeb09c99f0221d3a51c
- cmd/cue: simplify cue exp ast by @mvdan in 2b377f8ae22d9b147b7efbf9926a37e381dd2d9e
- cmd/cue: move internal/cmd/cue-ast to cue exp ast by @mvdan in 862bd6a1f650f11512050c90451d93098648daeb
- internal/encoding/gotypes: emit omitzero rather than omitempty by @mvdan in c61cbf66701d636a03aede04a8a6d67dc6d5f131
- cmd/cue: allow get go to omit encoding methods of types by @mvdan in ddddaa6cb4d81f4dbd76e9f6556fc391a713fd60
- cmd/cue: factor out the encoding method checks in get go by @mvdan in 49fa4dbdd11d0d817872bb3aea832c01c0bbe22c
- cmd/cue: add --omit to get go, deprecating --exclude by @mvdan in ae1a7e743cfd34e89d796fb0470228c8cd8f178b
- cmd/cue: report invalid --exclude regexps in get go as errors by @mvdan in f347bca33d1c023d33f1027aa3dab8155e90e749
- cmd/cue: test get go with an invalid --exclude regexp by @mvdan in f1fa6e9e5bae142c969ae154e7c353a55ef31dd3
- cmd/cue: translate references to types excluded by get go to top by @mvdan in 0840ebf5f0dc30e38566705161b4c8bb37ffa288
- cmd/cue: test references to types excluded by get go by @mvdan in 5e691d348fccae2ee73117f747877424cfc2da16
- cmd/cue: promote fields of self-encoding embedded structs in get go by @mvdan in da07eed718fb1c86188838a9592d9477a8b95cf3
- cmd/cue: test get go with embedded structs whose methods conflict by @mvdan in e704f35e500f11f7c09608960007c136de4d3fa6
- internal/core/adt: index the arcTypeKnown counter by its bit position by @mvdan in 675869250a81c078f4b1257c1f950223aedb0aa1
- internal/core/adt: run a pending arc's parent tasks before forcing it by @mvdan in f9fbfebb4029a58be851a5d65ebf8cb76498624c
- internal/core/adt: settle a pending arc once its comprehension is done by @mvdan in d0448fd334ddedc63b3081f3d3ba14fea2372eeb
- cue/testdata: test a list guarded by len next to empty comprehensions by @mvdan in 03b25e9d48726ed52c1e35a6c07b40e4901c61a0
- internal/core/export: do not wrap files in structs when merging them by @mvdan in f2b0e57606fd1a633a6cf32fdf0566c66670bdea
- cmd/cue: test more name clashes across files in def by @mvdan in 05759e984c2fa8c3c1077e23748d29ab6f125098
- cmd/cue: resolve the get go codec once per struct by @mvdan in 7adda2a7db2dcb565a502f896db42e58ffd80bd8
- cmd/cue: add tests for get go mixing codecs within a struct by @mvdan in e7d82b96bf389a1e6a77666af1ebfdc6a7dc0d9b
- cmd/cue: simplify the get go embedding and codec logic by @mvdan in 0d174c76d895833c721d86d9813b3e22867b8164
- cmd/cue: add a jsonv2 codec to get go by @mvdan in a0e1912603b12e6c0f859cbf9ea190cf0871653a
- cmd/cue: follow the json "string" option in get go by @mvdan in c3caf2e2e9d6f6535eea8568955a6a06a133c196
- cmd/cue: add a test for get go with the json "string" option by @mvdan in 03db6e83961f1aca955833ad137bbf8591bb2458
- cmd/cue: support the encoding/json additions of Go 1.27 in get go by @mvdan in 03601f62ba32c5d982347bd3cfd74c851a5851d6
- cmd/cue: describe get go codecs with a table by @mvdan in e8a79e9fe45c91bc193f7794274bdc742abfd592
- cmd/cue: follow encoding/json for embedded structs in get go by @mvdan in 92032d59c2410ef332c18c61536b8537f457391c
- cmd/cue: add tests for get go with embedded structs by @mvdan in 5c1e203f591d36a6c9a40070bb092fa157f9bcce
- internal/core/adt: scope HasEllipsis to the struct it opens by @mvdan in d39813ce0c59565c0d6e5577b929090c66bc0ae3
- cue: add tests for Allows on closed structs with an ellipsis by @mvdan in 9eafabfdffd51a68bc9409cbb181263dd34bd52d
- encoding/jsonschema: implement unevaluatedProperties for static schemas by @mvdan in dbd15d5ac141807e321925c8735f249aa34c8359
- encoding/jsonschema: test unevaluatedProperties with allOf and $ref by @mvdan in 44a97da49b6f9a6215086a9d8e3914f746ae08d8
- encoding/jsonschema: apply additionalProperties to the empty name by @mvdan in 82af1f36a292922c04ee82bbeef6ab7c5450eb36
- encoding/jsonschema: test additionalProperties with an empty name by @mvdan in 5f9b6b762125101e01c824f5a1b7584f90c65457
- encoding/jsonschema: leave objects with a skipped pattern open by @mvdan in 5a22285e6106953a6f87284bea3a83563f04c2e4
- encoding/jsonschema: test closed objects with a skipped pattern by @mvdan in dba6a9889e44637f1147e1f4c202b5ec31fb84fd
- cue/load: resolve cue.mod/pkg imports within Config.FS by @mvdan in e1f0b12141acf05cb89834d67564ecff4d6bc70e
- cue/load: add a test for Config.FS imports from cue.mod/pkg by @mvdan in 1a6cda373591f2033a8f46b7eb80439fb03ade9e
- cue/testdata: test selecting from a struct with erroneous fields by @mvdan in ae7092231b34966113383a3672fab9dff89c68ab
- cue/testdata: test the errors of a failed disjunction of structs by @mvdan in 5e8b58d95c6f73da4c05ce422a721ed8d99eedf3
- internal/core/adt: keep child errors when a bound fails by @mvdan in f1e54affdac97e3c383d283c352c72267e714734
- cue/testdata: test bounds hiding child errors by @mvdan in 02b0c58ec4279e0cfabee9dc72559e3d8767eb4c
- cue/testdata: move the test for validators hiding child errors by @mvdan in da84543a472fd062ad44005ccb4109e89cec58b2
- internal/core/adt: report the right-hand operand's kind in its error by @mvdan in 262566fe7e91cc1143a60b8c5735f832c85dbe19
- cue/testdata: test the kind of an erroneous right-hand operand by @mvdan in f0d4b18b5a585ab79ab3b72a249e10e3ea6777d7
- CLAUDE.md: place evaluator tests in cue/testdata by @mvdan in 6dd410cdd1f79feded84c6b4dc9cd25bc4f4b4c2
- internal/core/adt: round to an integral value in the exact context by @mvdan in 3fc13a28873a5cdc996f66941665c0dd2faf6e26
- pkg/math: decide MultipleOf without rounding the division by @mvdan in 935122d0554708c1f422959259b37a3fce1f1b23
- pkg/math: add a test for MultipleOf on wide numbers by @mvdan in bf51d63f140d49f57c26b66a86e1d6722e413965
- pkg/math: follow the arithmetic operators in Abs, Copysign and Dim by @mvdan in 7b6ecae0250a32b782c2313bfc2aacab187f23a8
- pkg/math: add a test for Abs and Dim of wide integers by @mvdan in e41c354d1e99b0e20f09a1ddcb20335be74411fb
- pkg/list: follow the arithmetic operators in Sum, Product, Avg and Range by @mvdan in 3a3678cbf0cedc16c49028e1e7302dddc1f5ee61
- pkg/list: add a test for arithmetic on wide integers by @mvdan in 6d8dc70817eeebb52cc436013a0dd6fd5563a4c5
- internal/pkg: pass numbers to builtins with their kind by @mvdan in 572f8242cab0c6b7ab2483cea042c9f5431c873b
- internal/core/adt: export the arithmetic on numbers by @mvdan in a21f0286b535a6eafedac321166fa5f1d3d6b840
- cue/literal: apply SI multipliers without rounding by @mvdan in 04ecbaacdb8499c1476469c476b7bb5773e497e7
- cue/literal: add a test for SI multipliers on wide integers by @mvdan in b22a9aa7bb9b256210f844cb48d2366273e31f6b
- internal/core/adt: type an exact integer quotient as an integer by @mvdan in cbd3f2f947de7f4af78f7f8cad3b598258cc4987
- mod/modconfig: refresh login tokens with the current request's context by @mvdan in ae8475004ae765be8c776db3f6fcea6029f85523
- mod/modconfig: add tests for token refreshes and canceled requests by @mvdan in af74b07722ba88c100a5e0c6cd850fe6625516c5
- mod/modcache: do not memoize failures from canceled contexts by @mvdan in a889e24f079ce1cab1b1015adc93ae37a45d58ad
- mod/modcache: add a test for memoized context cancellations by @mvdan in 663bc88708eb91d925fd7352f7243d3b94a947a3
- internal/core/adt: keep child errors when a validator fails by @mvdan in 131fda8b92cfc1c37643a57bd98ad7f0aad3baec
- cmd/cue/cmd: add a test for validators hiding child errors by @mvdan in 8d60cea2b3811bffcd04511773c82212ba797ede
- go.work.sum: add the go.mod hash for goldmark v1.4.13 by @mvdan in 6f6c864061b184c3456769471a3ccb7c50955423
- internal/core/adt: build HiddenKey without fmt.Sprintf by @mvdan in b45f62ebeeef894cf2635eab2c40922e3ecf42d4
- cue: keep every error of an invalid path by @mvdan in 94e5b8495d3b0254943a3c77b35150e5a3c4b5f6
- cue: add ParsePath test for a path with two errors by @mvdan in 3c02b024deaccad6aa4a94bc50966f91be0b6b33
- cue: keep invalid selectors as is in Optional and Required by @mvdan in 8b91a5b7a1edda9465558e448b66a0a173314d80
- cue: add Path.Optional test for an invalid path by @mvdan in be4a4879d3baff1ef143401bbafc94a5421dea0b
- cue: keep the error of a non-integer index selector by @mvdan in 95f93d57983346f6520c34d0735ba665b8933d6b
- cue: add ReferencePath test for a non-integer index by @mvdan in c6f7952b885c580f0ab47e3954faf54cefcd3e8f
- cue: report the package of constrained hidden selectors by @mvdan in 62458e9874444bbb99fc5bdc1eeba4ee05a5d777
- cue: add Selector.PkgPath test for an optional hidden label by @mvdan in 021e825f2f80ef4aefd6f092575dfa8649e37c3d
- cmd/cue/cmd: re-enable the mod_registry testscript by @mvdan in ef676264d47488d391f996b81ee3f07834d9610e
- cmd/cue/cmd: wait for the port in cmd_serve rather than sleeping by @mvdan in 3f426f27b9d6d541a3ad04bb00841d34676ce7af
- pkg/tool/http: only serve requests once ready Serve tasks have run by @mvdan in 44f1c4f658522f5d88eae1e75f42df32d20f4131
- internal/robustio: set the mtime in TestFileInfo instead of sleeping by @mvdan in f36943723377e24a839724dd5458c062e308a31f
- cue/ast/astutil: stop Apply when the after hook returns false by @mvdan in 736dec1bb0742f4d589c45f48bdf8e12000acb43
- cue/ast/astutil: add Apply test for stopping in the after hook by @mvdan in 422070e54419d62ab16cc378592c97df54e1838c
- cue/ast/astutil: keep the replacement's comments in Cursor.Replace by @mvdan in 03f60c99cc60761a8d0f14aa0b438beef91fd420
- cue/ast/astutil: add Apply test for Replace with comments by @mvdan in e3728812b4b3e3b9b9e947f208e4120f97b2bbb2
- cue/ast/astutil: visit each comment group once in Apply by @mvdan in 524ea38a6f906f8bb99126769d84fbc3bc1e7367
- cue/ast/astutil: add Apply tests for visiting comments by @mvdan in e02b09679ed9768b2cf7d79a816d540c286b76ee
- internal/cuetxtar: evaluate @test(permute) orderings in parallel by @mvdan in 58a07bd9cc44dd607b63171df64e7c0ca3d28578
- internal/core/compile: run TestCompile archives in parallel by @mvdan in 79d1f7e43430ef7b6a816f1cd79388329efe4b29
- cue/ast: avoid loading dependencies in TestClone by @mvdan in 6d3df90195420d0458e45a2ac377348830eb5198
- cmd/cue/cmd/integration/workspace: run the tests in parallel by @mvdan in 7c917e8f7c1942da2954d3447dd38929dd35e67f
- internal/filetypes: run TestDriverMatchesCUE in parallel by @mvdan in 3c8c42156fe588b2a7b3948c9da6851d305785f6
- cue/scanner: allow escaped newlines in multiline strings by @mvdan in bd5648806dbff07f7a22a2abd038cea0164daad4
- cue/scanner: test escaped newlines in multiline strings by @mvdan in c40c7400b11fb84dd30ea64aa8e27c332afd4034
- cmd/cue: keep the brace position of JSON data in errors by @mvdan in f1fc4d598ae93e1113061c538d477c36a5b554f5
- cmd/cue: add a test for a required field missing from embedded JSON by @mvdan in 2d663ead4c052e65f6c3442d92b96fa2c4e22ece
- tools/fix: add a rewrite for the openlists experiment by @mpvl in 2db3e5b9af0e0e0ca1b8562f083427223c7f76d4
- internal/core/adt: point at data lacking a required field by @mvdan in b7c5fbc98e7ac748cb28dfbb56f39dcc60dfa35a
- internal/core/adt: add tests for required fields missing from data by @mvdan in 936304ea26cf987d5777f9006402ba982cbcb523
- speckit: retire topic-era guidance after tag adoption by @mpvl in 23af926335e627b8fd856be430bd89ca53d6f178
- internal/core/adt: do not drop errors in interpolated unifications by @mvdan in 2d1752189a5989bf15e491557c954e8e4ec47601
- internal/core/adt: add regression test for dropped interpolation errors by @mvdan in 1c3df47bd3dfdf7d1548ee5e1f9f8cd89e9b4d77
- cue/ast/astutil: reject a for clause binding one name twice by @mvdan in 278ccf82f14a1fc5ef975e1e4ab70fc937b9d88d
- cue/ast/astutil: add a test for a for clause binding one name twice by @mvdan in 6173bbd14865f0e32a636aa0ee08ae869f3bbe78
- cmd/cue: only add --simplify to the commands which emit CUE by @mvdan in 83145f0d1bd2e5236d707f1378aaab8a725d8504
- cue/load: stop special-casing legacy cue.mod files by @mvdan in 84ee93e86224d2008ead255710bb29b7a7ea7cdb
- mod/modfile: use the error builtin for schema errors by @mvdan in 2ab4adcfee2b8faf77d5e56d34d85ece7bf56b7a
- all: resolve three TODOs pointing at closed issues by @mvdan in 3c6c0eacb126d7dd890dad684c1bb9c39ae82c67
- internal/ci: drop a TODO to remove the URLPath helper by @mvdan in aac6a79c65bc6a2c59d430fc9a2458d7b947b4cb
- all: drop TODOs for issues which have been settled by @mvdan in b4e812b6699321c6cdf1cb7ec58f088e7c111748
- all: format test inputs which cue fmt used to mangle by @mvdan in 2f0928c5103f24e43ff6632132fe0b383a94d6fb
- cmd/cue: point two test TODOs at the issues still tracking them by @mvdan in de607b8f07712be0add039a5703bf4db81abf334
- pkg/strings: describe MinRunes and MaxRunes as validators by @mvdan in 6e4ed1710ef224cc217ee6a44df3792db7253a49
- internal: drop DerefValue calls which Vertex.Bottom already makes by @mvdan in 26d4ec945d19308534ad5cc7c4cb922d4c8ee265
- internal/pkg: report the error behind a non-concrete builtin argument by @mvdan in f16e193782aba9ea45658944a24ae7e3a0d5a8e6
- cmd/cue: add regression test for hidden builtin argument errors by @mvdan in 6498cb8ba1fc58f650e7c3994a5473fb629fb30c
- cmd/cue: add regression test for misleading vet error report by @mvdan in 257baec1065294c2227556a86fc6849423efe8fd
- cmd/cue: reject a --path value with a trailing non-label component by @mvdan in f688a0676f0e667b8915a987378f322145e545c6
- cmd/cue: add regression test for export --path trailing component by @mvdan in 4a0aa062471f65546425bce4a6cf8983e99c2bcf
- internal/ci/checks: reject trailers which follow prose by @mvdan in 264f0c3a54532ae53f0db8785bc5b0de48aa0cf4
- private/internal/projection: find trailers the way git does by @mvdan in 93c874f24185188db24de49182c982f6fae81144
- private/internal/projection: test trailers which follow prose by @mvdan in a1de5970e3ee57a54dec30f6a35e597d601264f6
- cmd/cue: test imports under the main module path vs nested dependencies by @mvdan in 0cb1b77f741ddb8826e10548b9d10a955c462963
- cmd/cue: support trim on stdin by @mvdan in 86f06ffc7aecaf7740e872939f565a4fe0b7ff45
- cmd/cue: test trim on stdin by @mvdan in 550d03a0031afc7e6f8cd23edea1a72c0c2b7c7b
- cue: document that Value.Attribute only finds field attributes by @mvdan in 874bd083d1103ca06dd700844cb5b61fec5956e3
- encoding/jsonschema: compare const and enum numbers by value by @mvdan in 2b87f275f6ee12295c2ad3779fa1885e8790165e
- encoding/jsonschema: test numeric const and enum equality by @mvdan in 07364a782b62602b3de38e04c7e4fb909d509d2a
- update goldmark to v2 by @mvdan in 37640ac591e99df1d3f0708e0b78b36b83e88fd8
- internal/ci: check out the commit that triggered the workflow by @mvdan in 7a7d9800072c0688c9fbbc7be7aba232e72f916f
- internal/ci: document the base package and the trybot migration by @mvdan in 5fc1b78dcab8791ad36e16f93788e6ac413a0469
- .cuelabs: declare the CUE Labs sync server by @mpvl in b411bbf1753eeaa6a1cebf33ae2ed0937bea7364
- internal/core/adt: evaluate closed literals by @mpvl in 9719ba5eb2b8c70e57cab494925260cc3e19178b
- cue/parser: parse and print closed literals by @mpvl in 8d23598722b47f3122d6c221beaa9243dc6e946f
- specs/admzb: add the open lists and closed literals proposal by @mpvl in 08715e7d1506e2951046811698b1b22321a4713a
- specs/admzb/tasks: generate tasks for lists open by default by @mpvl in 3affb7a6c93d0c38e22e8c453078788f3a9dc13a
- specs/admzb/plan: plan lists open by default by @mpvl in af670a38abb2a3e01dc1e0fd530cb3097e523e52
- specs/admzb: specify lists open by default by @mpvl in 400024d24390330a712fc70581607492b3450681
- private/encoding/cue/wire: encode open lists as open structs are by @mpvl in 3c48219f73b634addd7eb5ac115d30e292cf051a
- internal/core/adt: add an experiment making lists open by default by @mpvl in 6b91f18c7597ab9dee428ed03ba437cfa7619a73
- internal/core/adt: close list literals that end in ...| by @mpvl in b3661716c66a83aa530a0edb628b9a3d3f26a028
- cue/testdata: test list literals that end in ...| by @mpvl in fa6707162ab21184aafca09b6406b2b5e76d9544
- internal/core/adt: let close apply to the result of a slice by @mpvl in 3559aa68884bfbedac8214e62daa89320f85425c
- internal/core/compile: let close accept lists by @mpvl in 75393a87f2dbdd932b58d4db99b277b0c6e35ee3
- internal/cuetxtar: add a mode that suppresses write-backs by @mpvl in 22084662040a4410ec91b81544f5a92a672b0ef5
- admzb: docs: declare lists-open-by-default by @mpvl in 42829e0840052245911589fde5d211f5cd153101
- cmd/cue: get go does not make pointers nullable under toml by @mvdan in 295b8f788c087a450c8df9584b10ab55e9ec6ca2
- cmd/cue: get go takes optionality from the tag naming each field by @mvdan in 0dfeefff60b295bb9bd7d3c50f8ba8ff8cb89b81
- cmd/cue: test get go optionality and nullability per codec by @mvdan in 56bef729819b50d3c443635defa323578d4707ef
- encoding/jsonschema: generate exact numeric bounds by @mvdan in 925e92f3991a510422e828adbb6b980063dac220
- encoding/jsonschema: test numeric bounds beyond float64 precision by @mvdan in 7d946df3af33615eac7974e46369d2207e417920
- pkg/list: make arithmetic functions incomplete on open lists by @mvdan in 06c9bba8cad7de131740ebf95135d133d8dee00f
- pkg/list: test arithmetic functions on open lists by @mvdan in 16279a28452cbcdd4eaddffe81587274ce9916de
- internal/core/export: mark lets without ast.Walk by @mvdan in c4a1b32da2c8d6a9860a1121d245343e507a44c4
- internal/core/export: only mark lets of merged struct literals by @mvdan in 6b4856227b104e788824453043b3aa8932a200c1
- internal/core/export: test lets in unmerged struct literals by @mvdan in 12e7ef0849a6b16f0e6e686304c955e57708d15f
- tools/flow: stop task goroutines leaking when Run stops early by @mvdan in 779a9bd310ee7960a23e4d07f76aa19f72bfcd00
- tools/flow: add a test for task goroutines leaking when Run stops early by @mvdan in c7a8d3baa2013a0775884d01b042857e264f0194
- internal/core/compile: pop a try clause's binding scope for its fallback by @mvdan in ccc66d25218e1e9cf15111864dc2b70a7754eab1
- cue/testdata/comprehensions: cover the scope of a fallback body by @mvdan in 8df930163d0dabdce61ad85863553c90c217e0bc
- cmd/cue: move the --name flag to cue import by @mvdan in fca49d26a951d87f2271aefbb1628632fd14c46c
- tools/flow: include the task path in task failure errors by @mvdan in 884807a6e99030c7876aaaf4f2668c94c2ffb316
- cmd/cue: add a test for task failures lacking a path by @mvdan in a4f6fef98f6467c3d89b49d582240745abb7efbc
- internal/core/convert: name struct fields like encoding/json by @mvdan in c2921b277aac17aee8ef551d1ad97f98c22cb0aa
- internal/core/convert: test struct field names from protobuf tags by @mvdan in b113c072497621e536ebdeb34bb02b2f80a43538
- doc/ref: note that a field declarations example relies on a compile error by @mvdan in bae037c06484df41d601b1db0b6ccd2c1d7e53c7
- cue: document that LookupPath ignores errors in parent values by @mvdan in 66315bf22cfa5908203e40b82ad63a09130811b3
- encoding/openapi: test defaults of or() disjunctions with references by @mvdan in 9f3bf7c5cebd7962b628df45e42a8d29fc3cb8b9
- internal/core/adt: do not assume a single disjunct error is a ValueError by @mvdan in c6e30a64f1df1bd4062e422af5c1bb79acf29938
- encoding/jsonschema: let ExtractCRDs target a language version by @mvdan in 9a828b4e523f80f51b3ecdfa0aeeef0f0e919e14
- cue: document what Value.Exists reports by @mvdan in 7e143c79812301c847e44bbb8cd415528c05386d
- cue: test Value.Exists for required-field lookups by @mvdan in 8be3aeb150572432bc10a80a3a614b98b6675eb1
- encoding/jsonschema: decode the OpenAPI "float" and "double" formats by @mvdan in b934b42337b97e25ae44c50ad1311efdaa3376e8
- encoding/jsonschema: test the OpenAPI "float" and "double" formats by @mvdan in cebd3daa25c1ee5e8daef646f43adf9449c066c5
- cmd/cue: report when "mod publish" is ignored by the VCS by @mvdan in b196db675e4d82e8096b53cae1e74d1d26218672
- cmd/cue: test "mod publish" from a git-ignored directory by @mvdan in 3308da0efc1eae938b77984c8a0d300af8906e29
- internal/encoding/gotypes: reject inputs with no package name by @mvdan in 29bb36d5611833dba19c0e931f755d4bce106522
- cmd/cue: test gengotypes given a CUE file with no package name by @mvdan in c0e6ec1fe3f30d723e3cea58ba36407b0d2abd7f
- internal/core/adt,encoding/json: follow up on the Go 1.26 bump by @mvdan in db10f78401847dc7a5d95d7fe0b87471d3b287eb
- private/vanitydemo: consume the fork through its vanity import paths by @mvdan in 95bf1258579c84e3c05d2ccfca2beb7ea36518ca
- internal/core/adt: keep closedness in a comprehension body by @mpvl in 0ca1a38f60c687bcbd14fde0c34183f55556b398
- internal/core/adt: keep closedness when selecting through a regular field by @mpvl in bae1143e60c1f3cb53dccd1f11e14e7961c7ce4f
- cue/testdata: test closedness of selected fields by @mpvl in b0bca17a3ddb56c206b9deea6a320ba051dffa81
- cue/testdata: test close over a disjunction of definitions by @mvdan in 7629474061caafcfb2e86ecd1438643f6bc9b9ef
- cue/testdata: test closedness through an embedded list of a definition by @mvdan in d39e0df2edb817e572dd0d52b13842388ca54224
- private/encoding/cue/wire: keep tests off the Central Registry by @mvdan in 79923126fe7c70c8f19cad83d27452e4c04db749
- all: keep tests off the Central Registry by @mvdan in 55d7a60a1b886cc6c643420714ca736e40f2a86a
- internal/core/adt: report where a searched value is declared by @docelic in a960b3ae81c3091c594c1528ec447d03d6b80f46
- cue/testdata: add test for the positions of a failed lookup by @mvdan in 527056e738af287fd76799a2c28175201772e9ec
- internal: give a quotient the exponent its operands imply by @mvdan in 1b0190eb79e6486ba2f0592ec5bc72332c07320f
- cue/testdata: add a test for division precision by @mvdan in 5541b817d95ebd8204361286a9d8ea58c77e713b
- pkg/math: fix Floor and Ceil of numbers beyond the context precision by @mvdan in 008e4f99123f4f832aa7f88c5e350df4c85288fc
- pkg/math: add a test for rounding large numbers by @mvdan in 85570bb2c1211881fea515101f37fa0a91816b57
- internal/core/adt: keep integer arithmetic exact by @mvdan in 0aa6cffffba28bc6eef5625e5cf55d4c86a7a96f
- cue/testdata: add a test for integer arithmetic precision by @mvdan in 8c847940e7a07fbe19d899a6c962a10d144d4018
- doc/ref/spec.md: admit == as a unary operator in the grammar by @mvdan in 320b9abe8365b5e645574fee4544a0d49ec04ed3
- internal/core/export: give an exported float a trailing zero by @mvdan in 2d4d64760952d83736eb997e0f383ffae0b38d91
- internal/core/debug: print floats with a decimal point by @mvdan in 4f78b3ef81c38054eec7ac01a0258e61bd3947d5
- internal/core/adt: accept math.MinInt64 in Num.Int64 by @mvdan in 8f2c83683f913ec83e308446e2b7fa9259b4b321
- cue: add a test for Int64 on math.MinInt64 by @mvdan in f5cbda7bc1588853b5c0ac9325e581c864251aa7
- encoding/jsonschema: intersect the type keywords of a conjunction by @mvdan in 9be8af9baf1532f74ac6286c6bc8e289368a7189
- lsp/cache: keep package files with no AST out of the evaluator by @cuematthew in 6c25c343c48e8873faae8b2e589197c41daa3fd3
- cmd/cue: test -e with an error in an unrelated hidden field by @mvdan in 3dbab2101658a4ff53a01f8fc0d36b814fb2e163
- cmd/cue: test bounds violated through an arithmetic expression by @mvdan in 34bbf88d7116be374df8a0d0383e055511348c6f
- cmd/cue: test several @embed glob attributes on one field by @mvdan in b8596236fd18a08fa3b4dd7e2bc8bba4353cfd5b
- cmd/cue: test task dependencies generated by a comprehension by @mvdan in ea8eca605e3504d11432294f9b735fd6d97275a3
- cue/testdata: test a default over a builtin read through an embedded scalar by @mvdan in 27ea55c59cf7c74df662f2352f9cbe46f15468d6
- cmd/cue: test error positions for a constraint inside a disjunction by @mvdan in 2ed1dd1d18558fc727fd4153c6c5233a52977789
- internal/core/export: test attributes on the arms of a disjunction by @mvdan in 9256cdf8c573715412ed079d922d43358cd1e941
- cmd/cue: test if comprehensions reading a defaulted embedded disjunction by @mvdan in d12f424deea5a001177dd0a48a50b7d5638332fe
- cue: test FillPath and Eval on an optional list field by @mvdan in b9f3744bb8cb229e81247d6ad89a34a0b2d0a44c
- cue/testdata: test repeated application of a higher-order function by @mvdan in b8b9546c662e8d81b117bc88a3b7a01f2da084e1
- cue/testdata: test a disjunct whose interpolation cannot succeed by @mvdan in 41a9643a705ea74b8b62136b6baa701a9df26351
- cue/testdata: test nested default marks in disjunction arms by @mvdan in bb2bff9434b191e5f123bb21a4cffe555ec86c76
- cue/testdata: test close() around an embedded disjunction by @mvdan in e8d61a3e00417965af1c81abe93995d0746d9010
- cue: test Subsume against a schema with a bulk optional field by @mvdan in eb4e997432541c6a46ed993b6841a50cc285e001
- encoding/openapi: test ExpandReferences with defaulted conjunctions by @mvdan in 95850d1967be7e8003c5eece09922617b0de361a
- cue: treat a disjunction with one surviving disjunct as that disjunct by @mvdan in 85b41107f76af25f6f7958de6db1b0c38ca2f24d
- cue,encoding,cmd/cue: test defaults with bounded arms by @mvdan in d71c0a295ec918e07cf2444a0eaa7eb048781208
- encoding/openapi,internal/encoding/gotypes: resolve references via ReferencePath by @mvdan in 63265567a4b4a0628b0b5650e7d034e9928bc9d0
- update txtpbfmt to shrink the cmd/cue binary by @mvdan in 0dc732511f01b4dd5baf9b5b18cc70f684172256
- internal/filetypes: emit the built-in registry as static data by @mvdan in 83f4f8c672bc59a40a876e8af2d51fbe6eafcfbe
- internal/core/adt: tidy the try clause helpers by @mvdan in 75bb1a5980116c3e93f36d750be46b35b9de2ec2
- internal/pkg: make a builtin's declared signature part of the builtin by @mpvl in 8c7dc904d072ebdc02b058898579592210a210a4
- internal/core/adt: compose unified function values by @mpvl in 3a4cb49c5c6c52895e0c48b16b08ccc372f4ffa2
- internal/core/adt: match parameters by label and combine requiredness by @mpvl in 668a89ce587b7e63535823d99b2cd7745dd7ac5c
- specs/acc2q: retire pre-v2 formatter presentation by @mpvl in b3deff0e06c9921e685eed0b17748482716cb276
- cue/format: remove pre-v2 presentation option by @mpvl in 4addd224ffa5026f3c4fa1fb9cb8338e241b8b05
- internal/core/adt: only act on tasks still blocked on this scheduler by @mvdan in ea99870a79c944d16edeb7b78bd3ff7d62d8e18d
- internal/core/adt: test a scheduler acting on a recycled task by @mvdan in 5ad9b998d1b9db68ef2a55fbe0a871b415342a3f
- internal/core/adt: give each finalize its own batch of blocked tasks by @mvdan in 19a5b3f91329d66ef1d3f21d2da852a57a1d8648
- internal/core/adt: test reentrant finalizes of the blocking queue by @mvdan in dc0ded9ccefb1425604a2e4dfd2746400780fbeb
- private/encoding/cue/wire: use uniform keys and separate operands by @mpvl in 2cc9d705a151dd3a6c843a7f50562a8b18c598b9
- private/encoding/cue/wire: tolerate literals without source positions by @mpvl in 2ea7889edbd391f1dc04ab5ec244c82b9bf00d28
- adnpc: docs: record the compact wire format results by @mpvl in 642115480afadfe00f78ce5e3e69cb5e7e64b654
- private/encoding/cue/wire: index only the conjunct plane when sharing by @mpvl in c418c6b08a33fb785602bc8c59ef0ff62e3bda93
- private/encoding/cue/wire: skip derivation sources for values without arcs by @mpvl in 8a79294eb6aae4beb44168fdecd990b6cf958d9b
- private/encoding/cue/wire: fold field values into field entries by @mpvl in 724f4f8a70c76e74686202dedb3e1e75f0b5a03e
- private/encoding/cue/wire: split typed value decoding by @mpvl in 852054aaf81d1bfb57d761151b7fb76ba2277363
- adnpc: docs: record the operator's compatibility decision by @mpvl in e48cabab82b9f39f2b945bbcc1417737a49b0c42
- private/encoding/cue/wire: share repeated conjunct expressions by @mpvl in f019c949af3b99e1c07690d4b0340e74ca729698
- private/encoding/cue/wire: derive field conjuncts from the parent by @mpvl in 5b1f92068257f6f5e6c4f2f7666cd3842a65db2d
- private/encoding/cue/wire: record field declaration positions by @mpvl in c4ee75526a2bf438be05c146000eba65c29c1ac7
- private/encoding/cue/wire: decode conjuncts before arcs by @mpvl in 14973e0d1a1dc7fc450cd15d2208ae38e0f2b6e3
- private/encoding/cue/wire: guard size growth of nested structs by @mpvl in 1b331c1f15d7ec04e4e5d1637fc82ee2124666aa
- adnpc: docs: break down the compact wire format tasks by @mpvl in e149944452dca5ea280a0463bf36e5e206ad97d4
- adnpc: docs: plan the compact wire format by @mpvl in 036559218437bd93b9f81d99e2447e7e85b52d0e
- adnpc: docs: specify the compact wire format by @mpvl in 4a6fef5e88af778704b7d6d6f2d631082cdd76f8
- adnpc: docs: declare compact-wire-format by @mpvl in 92d8abfcfe109e6bb926b1c16d2504d5088e7da8
- private/encoding/cue/wire: retain import reference positions by @mpvl in 3f1ec94965c7e1d61e0b55f16da60c69a91ec948
- cue/format: add pre-v2 compatibility option by @mpvl in 2f1700e82bb340b5f5b349a8b24f084ee5037261
- specs: record wire reference validation by @mpvl in 6eba4872e36524a21b90ccfa5635feb099d15b86
- private/encoding/cue/wire: preserve retained lexical references by @mpvl in 822568cc61250245e1c776ffa1e5c1b5cafe0fe2
- private/encoding/cue/wire: retain labels in selected values by @mpvl in 604d1f2f8c9d8a6f646e30e8c0d896bc53e00707
- private/encoding/cue/wire: preserve repeated partial computation by @mpvl in 2fa944d268bb056e66ab338829e14abaf2fc0e2e
- private/encoding/cue/wire: restore large source positions by @mpvl in d57050220e4a55bf4f07c14b3d8582e188f30774
- .claude: fix the pre-release scope, and record the social announcement by @mvdan in 2cfc83f0085b3d8f141e36bb23a3b03b7de60467
- internal/ci/checks: read git's stdout apart from its stderr by @mvdan in a882b64519b735bdb212a0b4b89ed83a57a34d70
- internal/ci/checks: add a regression test for git warnings by @mvdan in 19e93252c4b8c1ba3316501d75f3025d52c7a1f8
- internal/ci: always run the required checks in their own job by @mvdan in 7dc4dffae436049cd9a3ae3aa0041177c84a8d73
- speckit: adopt optional tag governance by @mpvl in 9aaa3928f61a156d9a299928aacaa88e691f449a
- speckit: refresh CUE Labs unit for tag adoption by @mpvl in 80529cb52f75bdd60940ac87d6fa8d39c7f20dc1
- internal/ci: clarify what our concurrency limits per platform are by @mvdan in 6f7bacf89440ccde7fac3e6a952bf82d0abc3171
- internal/core/adt: do not treat non-struct definitions as closed structs by @mvdan in 7478fb4b5dc080661b18f51495b69421aa382be0
- internal/core/subsume: add tests for closedness of non-struct definitions by @mvdan in 492fb3c3fd1d207c351cc38902b95a12662b2069
- private/projection: declare v0.18.0-alpha.2 by @mvdan in da39273c2225b2475f1d1cb2b448a76ced509d6a