Cue Lang Cue Versions Save

The home of the CUE language! Validate and define text-based and dynamic configuration

v0.9.0-alpha.4

2 weeks ago

This release includes changes to the evaluator and modules experiments, as well as a number of other improvements and fixes.

Evaluator

Following the introduction of the new evaluator experiment in v0.8.0-alpha.2 via CUE_EXPERIMENT=evalv3, this release includes a number of fixes to known bugs in the new evaluator, as well as significant work towards supporting the new evaluator experiment via the Go API and not just cmd/cue.

Subscribe to the Performance umbrella issue for updates, and see the Evaluator Roadmap project for the planned work ahead.

Modules

CL 1194090 adds the --dry-run, --json, and --out flags to cue mod publish to inspect what would be published as part of a module version.

CL 1194106 adds the cue mod resolve command to show how a module path resolves to a registry in the form of an OCI reference.

As a reminder, the ongoing and planned work can be seen in the Modules Roadmap, and we continue to hold regular Modules feedback sessions.

Go API

CL 1193759 teaches cue/format to collapse empty lists and structs to a single line for consistent formatting.

Builtins

CL 1193690 fixes math.MultipleOf as it had an incorrect implementation which could easily return bad results.

cmd/cue

CL 1193778 adds a cue fmt --diff flag which displays diffs instead of updating files.

CL 1193934 improves cue fmt so that it does not write to files on disk which are already well formatted.

Full list of changes since v0.9.0-alpha.3
  • cue: add regression test for issue 3042 by @mvdan in 612f1aed155f8198f58a068d6286dcf31d339b21
  • cue: remove TODO for TestExpr by @mpvl in 21b0039f32267a4397f2dc594ec788bc8065c7f6
  • internal/core/adt: delay dereferencing in lookup by @mpvl in 7dd29f1d3c63fe588a8c27de9cb067c67fc1a87e
  • internal/core/export: handle ConjunctGroups by @mpvl in 8935df9160eab0882aaff100ea96d4e25241b401
  • cue: exempt test for DisallowCycle by @mpvl in 1259cf95b106334ebe9f28d4e58f5bc1cab9b9c0
  • cue: fix some matrix tests by @mpvl in d3ed2296cb32cd0c4f1e43235c0385703620dc2f
  • internal/core/adt: disable dereference for new evaluator by @mpvl in aa42655ca9e539ff581f0bdbab553246c5b1795c
  • internal/core/adt: move and rename Indirect by @mpvl in 759f26e7afe9e39440ef6feb521c6b22a64606ed
  • cmd/cue: fail cue fmt if arg import path doesn't exist by @NoamTD in d9c5ae0e597f57628a566c6a1162fdde06bb61be
  • cmd/cue: document -ldflags for local release builds by @mvdan in f9c2de949c1d85f0d96fac36cb26447469224ab1
  • all: remove some unused code and other minor cleanups by @mvdan in 6132343ea7bcc0e37e332b2fe90e4c204507ed66
  • cmd/cue: new "mod resolve" command by @rogpeppe in 59a0d3c88b9d1c8d038b400b464e0bada1e2638a
  • internal/core/adt: fix missing dereference for equal by @mpvl in bc3e24c60b7e50510b96fcba4b6a3ab898898cb4
  • cue: fix Allows for new evaluator by @mpvl in 6e48c0dd9cd89fe764a283ccf81368edd09564e1
  • cmd/cue: add dry run flag to cue mod publish by @rogpeppe in 82bcda53952d65353e07893a2238244c36a13ac7
  • internal/core/adt: fix missing field error message by @mpvl in b6a2637b7e6d4cdde033c493b29685243abac585
  • cue: ignore some tests for TestPos by @mpvl in 71220e68c4b0d985b0c0f11545e3770d3247e6f3
  • cue: set DynamicLabel by @mpvl in fa3bf5f925fa184b395c879a83787eaaa7d18569
  • cue/ast: move WalkVisitor and Visitor to astutil and unexport them by @mvdan in 05640c2102382f0dfbccc8af49d71fb593334a6a
  • cue/ast: don't walk comments twice by @mvdan in fd645501c4b5b7db8a5e0b8425e28a44df3c2deb
  • cue/ast: implement Visitor walking in terms of func walking by @mvdan in 30f7d28d17ceed59889aa04b11f31f4c1ae73641
  • internal/cueversion: construct pseudoversion when possible by @rogpeppe in caa1e981f73134de0fece0431828511af8aa9084
  • internal/cueversion: split language and module versions by @rogpeppe in 2f90f5413abdea97a381c9f2583acf0eb4bf1714
  • ast/astutil: use more generics to reduce duplication by @mvdan in d696e441504a7ce1949b6ba79a55ce1e73e4ff71
  • cue/ast: add WalkVisitor to share with cue/ast/astutil by @mvdan in bf733fb381438e1c7c7014f32e652263e08dc6e7
  • internal/core/adt: fix matchPattern by @mpvl in 72ba5289e517063225172d3ee2b0866df286edb8
  • cue: fix IsClosed for new evaluator by @mpvl in 9cf30f1104ff6e5b432fbc8f22b1f9f87b45673c
  • cue: fix default handling for new evaluator by @mpvl in 4a8a873d0108f90809083710181708ac471e2726
  • cue/ast/astutil: remove quoted identifiers remnant by @mvdan in b3f170a8271b5e0dcbdc5657ad0298a21f0aa358
  • internal/core/adt: do not dereference for newChildValue by @mpvl in adea5755eeab53d18cfbda73c8d511abf6b10478
  • internal/core/adt: dereference default by @mpvl in 14e1ef22b473100c348a75950e7ffe1fdbe87fa9
  • internal/core/debug: omit ConjunctGroups in compact mode by @mpvl in c6701b4c2356943f4f9afd1d9093130d865706de
  • internal/core/adt: enable matrix testing by @mpvl in 8b6705cb3cb9a07f5439681187c1d27988bda4af
  • cue: allow a tests to run with a variety of options by @mpvl in 548dd7c6ad2887efd3b94f34f8bcef77bf33ebca
  • mod/modfile: better error message when disallowed field is used by @rogpeppe in fdf75f54ed5606d055d52531d91cdc6c1ce1eaa2
  • cue/cmd: always write stdin to stdout in cue fmt by @NoamTD in 70cc4021d459791bd4d0e493db3fdb8952f27dbe
  • cue: change getInstance to getValue by @mpvl in ebcf2f5b054eafd05259e79bc7dd026c2d9b76bf
  • internal/core/adt: avoid loops in debug printing by @mpvl in bae8bbfcedc7f95945e6b5a7d00c2b8e8598ee65
  • internal/core/adt: clean up indirects and mark disjuncts by @mpvl in 831374c6a7d27476f1634d20f68e7075a4d41b41
  • internal/core/adt: avoid hang with let processing by @mpvl in 382e4be91c44f838c874a4ecd470bb0d70093edb
  • internal/core/adt: introduce new cycle detection mechanism by @mpvl in fb377101d871aab7ee34b10784aa083d3f87e022
  • cue/token: relative positions apply before, not after, a token by @mvdan in 1dda5834fbc9bdba4348c233280d0c5d819572f5
  • cue/cmd: avoid overwriting formatted files in cue fmt by @NoamTD in fb9961a5277cf9f20ce4d394a077f052a4185e01
  • cmd/cue: add cue fmt --diff flag by @NoamTD in fcae10b10c91f1115381fe60664cc624ec1b01d5
  • cmd/cue: use fmt --check in the fmt_multi testscript by @mvdan in 68cd040bdbb13e397d63eb05d0b56f88ade4ee29
  • cmd/cue: improve stdin input handling in cue fmt --check by @NoamTD in f254cc31629191cac956f820b0af4d69bce2bc13
  • cmd/cue: make cue fmt --check print files immediately by @NoamTD in 9e121cbfc0efa8708600ba0e778e714fe4621728
  • cue/load: clean up some var names and code organization by @NoamTD in 41063b7ef2403331065ea14e8be18cd8e34b7715
  • encoding/protobuf: include annotations heading by @jpluscplusm in 35af5a17e168fce65b09085ac946b476c2a1640e
  • cue/testdata: update todos on various tests by @mpvl in de5d0cfc99a7d9b9974fdecf5f87f52b8a073090
  • internal/core/adt: do not share "inlined" structs by @mpvl in 1711c14462eb26e56c4120670e508042c7619ae5
  • internal/core/adt: prevent cyclic printing by @mpvl in 1860e3940fff677ec732c6a127ac1cd15df07679
  • internal/core/adt: disable panic with TODO by @mpvl in 52c4c32f00ad701e3dd02f4a9682b9b77bd8a354
  • mod/modregistry: allow RegistryResolver to return ErrRegistryNotFound by @rogpeppe in 89ae7d7651351797d0a62bade16c7396b946726e
  • pkg/math: fix MultipleOf algorithm by @NoamTD in c8cc46213c88248953d627dba6d89f6959b97cf6
  • cue/math: add tests for MultipleOf by @NoamTD in 1f4927cdd0be9c482a8253e1b7b673f3e3f74fc1
  • all: don't use XXX strings unnecessarily by @mvdan in 506a0e835d6514c02a0a13396deebad44ca9604d
  • cue/format: collapse empty structs/lists to single line by @NoamTD in 53d5ab31cc1010447d7fc00b5041b0cefe5bade0
  • all: prevent duplicate filenames in testscripts by @jpluscplusm in a835fb51eb472e7d5f374a91b6f54f8ba0789793

v0.8.2

2 weeks ago

This release includes a single fix for cue get go: CL 1193892 fixes a regression introduced in cue get go in v0.8.1 which caused transitive package dependencies to no longer be generated.

v0.9.0-alpha.3

3 weeks ago

This release includes changes to the evaluator and modules experiments, as well as a number of other improvements and fixes. A special thanks to Noam Dolovich for numerous contributions to this release!

As a reminder: users can register their projects with Unity, our regression and performance testing setup. Unity is used to ensure that a project's CUE evaluations do not unexpectedly stop working or regress in performance. Adding your project to Unity not only guarantees that we will not break your tests unexpectedly, but it also helps to improve the quality of each CUE release. Follow this link to learn more about Unity, install it, or get in touch with any questions.

Evaluator

Following the introduction of the new evaluator experiment in the last alpha release via CUE_EXPERIMENT=evalv3, this release includes a few fixes to known bugs and panics in the new evaluator.

Subscribe to the Performance umbrella issue for updates, and see the Evaluator Roadmap project for the planned work ahead.

Modules

cue mod publish now requires source to publish a module, as described in Proposal 3017. The cue mod init --source flag is added to create a new module with this field.

The cue mod edit command is added, which allows some automatic editing of cue.mod/module.cue from the command line.

The CUE schema for cue.mod/module.cue is now dictated by the declared language.version value, which is now mandatory. This allows us to change or tighten the schema with future CUE versions without breaking existing users.

CLs 1193705 and 1193706 teach cue mod publish to include VCS metadata in published module versions, as described in Proposal 3057.

CL 1193289 teaches $CUE_REGISTRY about a special none registry, causing any matching modules to refuse to fetch or resolve.

As a reminder, the ongoing and planned work can be seen in the Modules Roadmap, and we continue to hold regular Modules feedback sessions.

Encodings

CLs 1193257, 1193394, 1193576, and 1193577 greatly speed up internal/filetypes, used when loading files from disk in cue/load or when encoding/decoding files in cmd/cue.

CL 1193678 teaches cue/load to cache loading files from directories, which avoids repeated work when loading parent directories to form instances.

The changes above, plus cue.Value.IsNull below, should result in a significant speed-up for any cmd/cue command involving many CUE packages or directories. For example, on the main CUE repository, cue fmt ./... went from ~14s to ~0.1s, and cue vet ./... went from ~5s to ~2s.

CL 1193639 teaches internal/filetypes to only load its embedded CUE on first use, allowing any Go programs to skip the ~6ms load time until the first call to a cue/load API, if any.

As a reminder, the ongoing and planned work can be seen in the Encodings Roadmap, and we also use the #encodings channel on Slack.

Go API

CL 1193405 adds a cue.Value.IsNull method to mirror cue.Value.Null without constructing error values, making cue.Value.Decode faster in many scenarios, including its use in cue/load via internal/filetypes.

CL 1193585 fixes a bug where cue/format would print trailing commas for list elements after any inline comments, causing broken syntax.

CL 1193515 fixes an edge case where cue/format would vertically align fields at different struct levels.

Builtins

CL 1193242 teaches encoding/yaml.Unmarshal to reject trailing input, just like encoding/json.Unmarshal already did.

CL 1184631 fixes using math.MultipleOf as a validator function.

cmd/cue

CL 1193699 fixes a regression introduced in cue get go in v0.8.0-alpha.1 which caused transitive package dependencies to no longer be generated.

CL 1193702 ensures that cue get go always generates CUE code from Go time.Duration types and values in a way that is fully compatible with Go's encoding/json library.

CL 1193386 fixes cue fmt --simplify to no longer break complex labels by unquoting string literals within them.

Full list of changes since v0.9.0-alpha.2
  • internal/cueversion: bump fallbackVersion for v0.9.0-alpha.3 by @mvdan in 797d6f4b8fe2e371d538583f13cfbb9c8c2c4b44
  • Revert "cmd/cue: rip out cue.Instance and cue.Merge from 'cue cmd'" by @mvdan in 3519740dc4cc0f787cceb4b7ae39f0f6c09599d1
  • Revert "cue: remove Merge" by @mvdan in 7195817614d88e9613966114140619b56b113b9f
  • cue/load: avoid repeatedly loading parent directories by caching by @NoamTD in d9c6c752c858dfe163c83dfffd134e30c97ae2e1
  • cmd/cue: include metadata when publishing modules by @rogpeppe in b7c580057f9d39aac71137c55cab8d634437ad8d
  • mod/modregistry: metadata support by @rogpeppe in cf2551fc88e49891e8d833454a1276c57ad32a9b
  • internal/mod/modload: retain source field when tidying by @rogpeppe in f2980b78c2ab85219feccd4e58efc5e0ef81d5de
  • cue: remove Merge by @mvdan in 18642143fa3dca885fb41664eb65ce5b2802140f
  • cmd/cue: rip out cue.Instance and cue.Merge from 'cue cmd' by @mvdan in 7422d00f73be9cfab57f7f175d64339d9d924d38
  • cmd/cue: add regression test for 'cue cmd' with many packages by @mvdan in 994a15d7cb8eb30b32d97eeeaffb171bf739353f
  • cue/testdata: reorder files in txtar by @mpvl in a16a054990dcccaf1ea44f1184612b856b2d84eb
  • internal/core/adt: unshare once Pending arc is known by @mpvl in 61c1814448b74fac28cdde34d4d1985b7f90f414
  • internal/core/adt: enable comprehension.txtar by @mpvl in b3cb6e040f0da5c15974180b044e2f8cfe4bc545
  • cmd/cue: ensure 'get go' with time.Duration is compatible with encoding/json by @mvdan in 1c3f536579cc82adf9441297661385c161c85b60
  • cmd/cue: correctly extract transitive dependencies in 'get go' by @mvdan in b90a5eb4ba1c0f9c70328978f3c4f1e2cb4d916e
  • cmd/cue: add failing tests for 'cue get go' transitive deps regression by @mvdan in 81f5a20ed6a94ee5b685e3293b5c13b4e0c077d4
  • internal/core/adt: add tests for structure sharing by @mpvl in 3a90b84d2e8e4ee63b2da63e0493b92dab2ea8b9
  • internal/core/adt: catch nil parent by @mpvl in 8087ff7b3e6f7ef9054726ccefd8f28a25a2b9f1
  • cmd/cue: implement cue mod init --source by @rogpeppe in 2ff5afa7cda41bf030654ab03caeba3fadf241ae
  • internal/core/adt: match decrement for nested comprehension arcs by @mpvl in edda26dac2dc83e0f67d85e6a1f69c89561c8c12
  • internal/core/adt: add Sharing option in CUE_DEBUG by @mpvl in d9008672e643425efb22d191d6630fede59c4cc3
  • cmd/cue: factor cue mod init source to its own file by @rogpeppe in 891a8a017de041a8676cbdd0ced860d979b1afbc
  • internal/cuedebug: usurp some evaluator debug flags by @mpvl in 4280d654c6eb4d51d093aa2fe2d59fef27112345
  • internal/cuedebug: define type for debug flags by @mpvl in 9c5c3c0a972087c2ce6d556f6696fcd3599331ab
  • internal/core/adt: prepare to move DebugFlags to cuedebug by @mpvl in f2e17b17c8014b8211ac73f62386e5d5c7415737
  • internal/core/adt: move debug flags into struct by @mpvl in cb967182e92291c551ba123d98e193ca83ac2173
  • internal/core/adt: weave OpContext to more operations by @mpvl in 7ada2dd634ee5bcb2f68b160aa4034be63b26e7a
  • internal/filetypes: lazily load types.cue by @mvdan in 2cc7b655ee932d72fd0eb60d30450c8ba44939c2
  • internal/filetypes: discard unknown file extensions quickly by @mvdan in f891103f9355fd5e33da3b640efe19f339f2307e
  • internal/filetypes: fill build.File.Filename in toFile in Go by @mvdan in 4da59d62685e2a435cfd6a715ff6ddcfec8bcb94
  • internal/filetypes: simplify some of the CUE logic by @mvdan in a21e2df5d9b369aab8d8c7f60ac8cb30bbecb5a9
  • internal: remove MakeInstance by @mvdan in 25e8713a0115941749e0dd034ea14d29bde8c131
  • internal/filetypes: add test coverage for FromFile unifying forms by @mvdan in c16bac7170ae367f08dbe32e9ce237dc9b229601
  • internal/filetypes: File.Default is indeed not unused by @mvdan in 7b2f27ea814a03a86c0e651fdd9eb769bb62d825
  • cue: add IsNull for Decode by @mvdan in 6169eeda1e418e3ea31016acd5cb1e5d3d023047
  • cue/format: fix comments formatting in lists by @NoamTD in fdbd563a855381eba1dd24e914e7cb0d808bfd02
  • internal/filetypes: use cue.Value.LookupPath by @mvdan in f912da6fe11999e5201d1c536397ddaed04a83a8
  • all: cue fmt by @mvdan in 058ab7ce3215b1ce0f6ef4c324af4b7655a5e5b3
  • internal/encoding: resolve all deprecation warnings by @mvdan in 6f8cbb0f8ae6133d4bad7f0637e094fe35d93f13
  • cue/format: don't indent fields on same line as lbrace by @NoamTD in 017723412d2df782201da3ffdfd16f95ab30a60f
  • cue/format: add test for incorrect formatting by @NoamTD in 983911270449a494a949a32083042815be979ac6
  • cue/format: fix string literal replacement in labels by @NoamTD in 2d724773bb1344ef601b558b405f6fd6f8e716a7
  • internal/_e2e: actually add source field in e2e tests by @rogpeppe in 5ea4e50e878c01f3d226f77d8af8ecefb5603d5c
  • internal/pkg: make CallCtxt.Decimal support *adt.Vertex by @NoamTD in 243df639a154824c6b872593ae801176a39182a9
  • cmd/cue: more resilient mod init version by @rogpeppe in a1dec7d11fee390732a5738b86caec083dd91475
  • internal/_e2e: fix end to end tests to set source by @rogpeppe in 7f3e9cf16bd7e94b00571baed6081869b5739ff7
  • cmd/cue: fix mod edit --source self by @rogpeppe in 4997dff95d0af7f49e4acbfc1a4b35af949cbf69
  • internal/vcs: use limited environment when executing git in tests by @rogpeppe in dc78c660fbe1d1caa1d25eec25b605e9e0f217e8
  • internal/ci: support running e2e tests on pushes to ci/test by @rogpeppe in f0f56f88eee5e2a5145f38416f2ff313e518eccf
  • cue: fix small typo in function documentation by @NoamTD in 731b2af4db2dcd8713e94e44de1b7c972ea9f7f6
  • modresolve: support special registry "none" by @rogpeppe in d1068c48dd5eead4ce21cb315b3d7c7e748b4e8d
  • mod/modfile: parse module.cue according to language.version by @rogpeppe in 73b3df24ebc845d6181273e3faec577686295553
  • cmd/cue: add mod edit command by @rogpeppe in b7c1a0d1e722904fe065fa16290dfb8ac6d284bf
  • cmd/cue/cmd: require source when running cue mod publish by @rogpeppe in 061614957c3ede460d69f0d7127bbea0ca4682b5
  • internal/vcs: new package by @rogpeppe in 87352e86fa51009f6997ea792da3d4fd3abfd7d8
  • internal/encoding/yaml: reject trailing input in Unmarshal by @mvdan in 25af2e8c5e7dfe55337b132aa0e061e86baf4ce2
  • pkg/encoding: add tests that Unmarshal rejects trailing input by @mvdan in e063155f3c099533867de4c2d2073644ecf12946
  • internal/encoding/yaml: use cue/literal to quote string scalars by @mvdan in 16edd40b2f01354e5918a0a712463433f4ae83b4
  • internal/filetypes: avoid unifying with the top-level value by @mvdan in ff533f4c043e7a6144cdcb7534ca747d2d14bcb9
  • internal/cueconfig: validate logins.json on load by @rustyx in aadc5adcf834aab4a5482cc147472dcde2295ba2

v0.9.0-alpha.2

4 weeks ago

This release includes the first experimental version of the new evaluator, as well as many other changes including the ongoing modules experiment. More details below.

As a reminder: users can register their projects with Unity, our regression and performance testing setup. Unity is used to ensure that a project's CUE evaluations do not unexpectedly stop working or regress in performance. Adding your project to Unity not only guarantees that we will not break your tests unexpectedly, but it also helps to improve the quality of each CUE release. Follow this link to learn more about Unity, install it, or get in touch with any questions.

Evaluator

The new evaluator can now be enabled via CUE_EXPERIMENT=evalv3. It is not yet complete, and some known bugs remain, but over 95% of the existing tests are passing and the performance already looks promising. Disjunctions and initial structure sharing are now implemented as well.

Work on this new evaluator will continue during the v0.9 release cycle. We will only turn on the new evaluator by default once we are reasonably confident that there are no significant regressions, which may happen in a future release cycle like v0.10. In the meantime, testing via CUE_EXPERIMENT=evalv3 and bug reports are welcome.

We have also published a more detailed update on the performance umbrella issue, which you can subscribe to for updates. You can also take a look at the Evaluator Roadmap project to see the planned work remaining.

CL 1186144 fixes a number of Environment.up panics involving calls to Value.Expr, which affected users of the Go API as well as the openapi encoding.

CL 1185458 ensures we detect permanent errors for undefined fields earlier, necessary for the permanent errors fix in tools/flow below.

Modules

cmd/cue now supports OAuth2 refresh tokens when interacting with $CUE_REGISTRY, so that the user doesn't have to re-run cue login once their access token expires.

CL 1191618 changes the modules client to treat "forbidden" errors as "not found" when finding which OCI repository contains a CUE module. This should resolve some unexpected "forbidden" failures when dealing with certain OCI registry services.

CL 1192905 adds initial support for the source field in cue.mod/module.cue files, which will soon be used as part of the proposal to determine what files go into a CUE module.

As a reminder, the ongoing and planned work can be seen in the Modules Roadmap, and we continue to hold regular Modules feedback sessions.

Encodings

The Encodings project was kicked off at the last CUE Community Update call. As part of this, we now have an #encodings channel on Slack, as well as an Encodings Roadmap project on GitHub where the ongoing and planned work can be seen.

In this release, the new YAML decoder is available in experimental form and enabled by default, given that all of our tests are already passing. You can disable it via CUE_EXPERIMENT=yamlv3decoder=0. The old YAML decoder will be removed in a future release once we're reasonably confident that no significant regressions are present.

Go API

CL 1187452 teaches tools/flow to fail when a task encounters a permanent error, which were being ignored before.

CL 1191227 adds a cue/token.File.Lines getter method, much like go/token.File.Lines was added in Go 1.21.

CL 1191226 teaches cue/literal.ParseNum to support both positive and negative signs for consistency.

CL 1193030 ensures that cue/load.Instances always returns instances in a deterministic order, in particular when multiple instances share the same directory.

CL 1185361 deprecates cue/load.Config.StdRoot, which has not worked as advertised for some time.

cmd/cue

CL 1189314 adds a cue fmt --check flag to list badly formatted files rather than modifying them directly.

CL 1192180 speeds up cue fmt by ensuring that it only processes each CUE file once, rather than formatting files from parent directories as well.

Full list of changes since v0.9.0-alpha.1
  • internal/cueversion: bump for v0.9.0-alpha.2 by @mvdan in f8d0998c0ddac4a9071815a690ad75a237e44580
  • internal/core/adt: fail earlier on incompatible types by @mpvl in 6728bb2599dc778fea5c53dbf3248ef5da77db4b
  • cue/testdata: add variants of issue1684 by @mpvl in 517f611650602e1f749c21bf77a148535b2776f3
  • mod/modfile: add support for "source" field by @rogpeppe in 8d043e786c78ce95cad493e2e09ec6dda5e1cb5b
  • internal/core/adt: introduce structure sharing by @mpvl in 4c7fe24ab8c3569c1bc12429b93c0f3b1b4a0739
  • internal/core/adt: hacky alternative for cyclicReferences by @mpvl in 80d681b54cf80b628cf0ab708494788e66e4402d
  • internal/core/adt: pre-evaluate pattern constraints by @mpvl in 25db081968464e023bf457002e54be7c44ab3eee
  • internal/core/adt: finalize let value by @mpvl in 4abbb53bdd87e8cdd73e2a7990a81d8f94d02af2
  • internal/core/adt: record stats for new evaluator by @mpvl in d323ba50647bbcdd6365c73a83db91f3d2ef7605
  • cue/testdata: add benchmark for billion laughs by @mpvl in 416eecfe81dc326404b6ace96809bdd0535b86f5
  • cmd/cue/cmd: expose evalv3 experiment by @mpvl in d65019df28bfe3ad55a84cf4aef1e50f608ccd44
  • internal/core/adt: implement pattern matching for new evaluator by @mpvl in ca87216a55c52e5eaf752853f4fb460061e92367
  • internal/cueexperiment: enable CUE_EXPERIMENT=yamlv3decoder by default by @mvdan in f03aaa1e7338c81cf55ab8934024e24657aaff32
  • internal/envflag: add support for key-values and defaults by @mvdan in b92ad5591de33cc381af09cb8510d5db3fed58c5
  • internal/encoding/yaml: add the new Decoder by @mvdan in 9fba4fa553dd681a9e766678488f832d2ea32cf1
  • internal/encoding/yaml: add even more test cases by @mvdan in b508b29901fe162dcbbf9c82e594b1a6944d0477
  • internal/core/adt: fix default handling by @mpvl in 5e896e07727a989f60081b106e1ac6e631cd47f4
  • internal/core/adt: fix task completion across disjunction boundaries by @mpvl in 8c6738afd1aed8c22801991e7911ca50c4a2b476
  • internal/core/adt: fix closedness issue with pattern constraints by @mpvl in b9444293b2039eaf6bbcedb7a0d8cc51999b32a2
  • internal/core/adt: fix path in error messages by @mpvl in 4cb3889a4e3c54abb3b40e657b2984167ce0f749
  • internal/core/adt: patch old status mechanism by @mpvl in 709cdc5b526864664cb61bb5789a980b1206862e
  • tools/trim: update for new evaluator by @mpvl in 416c16382ec61fcb61d2f65cfd1b4f4a3bbfae02
  • internal/core/adt: add methods for accessing Conjuncts by @mpvl in 4fcfdbff2802809b3f35d2c5548d9d76a719fd34
  • internal/core/adt: remove unnecessary code by @mpvl in bc2672f02d0a3daa2b1c6f97d2fd82704ec7b6d2
  • internal/core/adt: task is not always defined by @mpvl in 4a5ba90b6330b767d0f3dc03662d3b3da6786b0d
  • internal/core/adt: initialize nodeContext in two phases by @mpvl in 149b24897307634725656d11066fab95309f4a03
  • internal/encoding/yaml: add more decoder tests by @mvdan in 21abb7f554e864539ebb3e2b94aacef9eccf0a54
  • internal/encoding/yaml: copy decode_test.go from internal/third_party/yaml by @mvdan in c8d4c3a69568aa23306d2168ebf4ff4e027f8f16
  • internal/core/adt: remove unnecessary code by @mpvl in 97daa8fda65c78e41b46e9f9127a02c50113ab49
  • cue/load: make a note about importPkg redoing lots of work by @mvdan in a220cfbeb5f43756850db6a3d4e8584907b4095a
  • cmd/cue: add global cpuprofile and memprofile flags by @mvdan in 7e061f58e7968831d6d6a7f261f4d22d6c9606f0
  • cue/load: ensure load.Instances sorts instances deterministically by @NoamTD in f7368271cf1ac313bda133ff5720755b010e7df6
  • internal/core/adt: add task deprecation by @mpvl in bb20494c6ac602f870ef7fdae71fc7b4e1e76b4a
  • internal/core/adt: set list type as soon as known by @mpvl in 1e01bd6a0fd17a9715f678cf6cebe1cf75d8c2b8
  • internal/core/adt: also check closedness for list in Equal by @mpvl in 30c5f27547c854639312b2bcae5aaf4bcb7d4d76
  • internal/core/adt: match patterns only if type matches by @mpvl in 8e5809134e72bad104a25f69e83cbc689dc4d5c9
  • pkg/list: make Sort work for new evaluator by @mpvl in 50989f0664cec356148447c2d8fd2329de2209d1
  • internal/core/adt: guard visual debugger from opening too many tabs by @mpvl in 73611fdbd3916808fd82aafeaa1a2e32164c3596
  • internal/core/adt: keep arcTypes per closeContext by @mpvl in 03de5ae4b322cef0f24b8a4cc69b2e6bf8c1a2d2
  • internal/core/adt: forward cloned disjunct by @mpvl in e4aae7288a61bc294385880b71ac83d689a63c05
  • cmd/cue: avoid calling os.Exit directly by @mvdan in f047aa0518b7fc651e71561b85ed339accce0c35
  • internal/core/adt: compute kind differently for new evaluator by @mpvl in 87ad2e4f74d38f060a8025e1855a8722093e3754
  • internal/core/adt: validate alignment of closeContext by @mpvl in fe850223c224313ff24444e7802334181039e140
  • internal/ci: we no longer need to set CUE_LONG=true by @mvdan in 6e690fd05afc7204f7e8804d11e82c2e406bd9b4
  • cmd/cue: make fmt process each file exactly once by @NoamTD in 943dd168a5b71b0e27c3db0a6f5708d8b5360247
  • internal/core/adt: fixed closedness issue for embeddings in files by @mpvl in bdba8edd2f290c2b76cba191782a12fe89520955
  • internal/core/adt: do not use NOTIFY arcs for closedness checking by @mpvl in c89d040c2b97fb98276f0079f0fbc3e8a1224e28
  • internal/core/adt: allow definitions in structs by @mpvl in ad9a3059acf06ed86b2dfdc13b277f37a754b0d9
  • internal/core/adt: add edge cases for disjunctions by @mpvl in d42ee672ce79d5cece57307f0788998f06e8d2ed
  • internal/core/adt: compare nodes based on underlying by @mpvl in e1406c638062881e768bc5291b2863209c89580c
  • internal/cuetxtar: automatically clean up once diff is gone by @mpvl in f4aa80171b8ce4d63a06b60c702e57c7498ed34f
  • internal/core/adt: enable disjunction tests for alpha evaluator by @mpvl in 87de98e0e121203f3e037dc34353d749590a6a81
  • internal/core/adt: first implementation of disjunctions by @mpvl in cfd4e375b05ea1aa1c9f634cca3074a70dc5344f
  • internal/core/adt: use Vertex.Indirect in more places by @mpvl in cc2075b2e2add9fdfe1c82d7d347d2553037b738
  • README: fix broken links to tour and k8s tutorial by @NoamTD in 924178c19f489c077fa89393e46ab8b43de88487
  • internal: teach ToFile to not drop StructLit comments by @mvdan in f9032a07a1fc0fae94ad28b40202f90b5774bfb6
  • cue/token: add a File.Lines getter method by @mvdan in 637939eb6bb70f8c9de6ac61b999637965333494
  • cue/literal: allow a leading positive sign in ParseNum by @mvdan in 060645a4a4534f1ee690efb55132feacf61d0052
  • internal/registrytest: ensure that 401 errors have a Www-Authenticate header by @rogpeppe in 41e8686bc918b84827c790cfbed13e5811895d2c
  • cue/testdata: polish test before implementing disjunctions by @mpvl in 20b1c3a7dca3936d5a82b0c740da573d23d94fff
  • internal/core/adt: add benchmark for exponential behavior by @mpvl in 9cdee628ad04dc1bece93dcc8cde283b3527f85f
  • internal/ci: bump to macos-14 and Go 1.22.2 by @mvdan in d8e69536e5ed3e00014880fa09f03767542b6e62
  • doc: remove the kubernetes tutorial by @myitcv in 8985d1984efda0cac4a1a8d67e01c04443d0cafd
  • doc: remove the tour by @myitcv in 7d10fbdd64f977a9601c7f1a19fa1ebf949f4d1f
  • mod/modregistry: treat "forbidden" as "not found" by @rogpeppe in d8067eb7eaf53baaea90334abb39283e9eaba1b8
  • cmd/cue: print paths relative to the current directory in fmt --check by @NoamTD in 79ded701cc00b8621824da481ac295992ae75d5f
  • cmd/cue: print relative paths in fmt --check by @NoamTD in fc836b19bc97c890b5985ab2548c34a47357e419
  • cmd/cue: replace MainTest entrypoint with testing.Testing by @mvdan in b40ccea22d651f63b1c04e25578e34edd3d1aba8
  • update github.com/google/uuid by @mvdan in da9e38652f94a9dd716f815d35951be24c770899
  • cmd/cue: test cue and cue cmd via testscript by @mvdan in 39d27074f9271a1d3509e238f790234ff4fcbe41
  • all: replace sort.Sort and sort.Slice with slices.SortFunc by @mvdan in b545df28a3cdd970da8e507b4a3b8b30fe313925
  • cmd/cue: disable the wasm interpreter by default for now by @mvdan in abeea94ff2e4f7c9ee8b8d5638b762c3deeac319
  • internal/filetypes: replace encoding/gocode with go:embed by @mvdan in 3a9199f47212f7a4d96c3fc5159f647f1c090308
  • cmd/cue: get go: support time.Duration by @gdvalle in 1b9b07992cb93779f8fd970513426c0add773cd5
  • cmd/cue: add a fmt --check flag to list badly formatted files by @NoamTD in 4db44817425f7b7809c63ee7e116eae2cd6da5c7
  • cue/load: remove support for cue.mod files by @mvdan in 2887786d074f267c6bcc06da25e1898cdd4b4a70
  • all: remove a few uses of fmt.Sprint by @mvdan in 65b948a50956327536a8778cdfea0e57096e2b63
  • internal/mod/mvs: avoid using reflect.DeepEqual by @mvdan in 338ab6ec60330d660da0252e21df4c639dbffdf2
  • internal/source: add Open, moving from internal/encoding by @mvdan in 6c3c3772342ffe01a95d09763e87de178cbb8fdc
  • internal/third_party/yaml: remove last bits of reflect by @mvdan in 61db61cfeb9fd1ff4dd3d2aecbd314166fbe4d5b
  • internal/third_party/yaml: deduplicate source.Read by @mvdan in b6516c521e683b64e908f847b904337c235e54d1
  • mod/modconfig: swap os.ReadFile and os.Rename with robustio by @mvdan in b0257fa1beba69689d7a2446240d2c00470b758d
  • cmd/cue: lock the logins.json during an update by @rustyx in 71a12cfb2108e1d1215b367b84ef6938f297b5a6
  • all: remove manual work via //go:generate stringer by @mvdan in 64c9b62a490bf0038e5e28382170b98442cb8ca1
  • tools/flow: return permanent errors from tasks by @nickfiggins in 2137bea7d050e6e66c3e2e3d32b9e0335056ce21
  • internal/core/adt: detect permanent errors for undefined fields earlier by @nickfiggins in 3c886e03d367f0e071affd9a3f2d9a552da7e7c7
  • cue: adjust Environment for comprehensions by @mpvl in 3e6a8bee58c37fe6e0c3da3b22e9136f0f5056c3
  • cue/load: fix doc comment typo by @rogpeppe in 9b83404adc7b55dc968a6b895edb418f3cf5c707
  • cue/load: treat stdlib-like import on command line as error by @rogpeppe in 2aec394806c10ac6aac5f6d4ac208bae34121e79
  • cue/load: consistent error message quoting by @rogpeppe in 4202a47b5e54c351c1d363b4b0d365cbc6bab897
  • cue/load: deprecate Config.StdRoot by @rogpeppe in e675eb74b4ef4879ca408ee0e931ba45af4ed1ff
  • cue/load: change stdlib import test case by @rogpeppe in 09394f35127985460666b7ae710c0a15b82b2710
  • cmd/cue: add refresh tokens support by @rustyx in 25ed954af848617cff5375cdb27220c96569213a
  • cmd/cue: use fewer go/types.Type.String calls by @mvdan in e4e6d68f06115e78a248d60292e31c4b395667af
  • internal/core/adt: add a little more detail to Environment.up panics by @mvdan in abc8bb1a0b7c35ced197737d86b799ded454dc66

v0.8.1

1 month ago

This release includes a number of fixes detailed below:

CL 1186144 fixes a number of evaluator panics which could be triggered by calling the cue.Value.Expr method, which also happened when using the OpenAPI encoder.

CL 1173100 fixes cue get go panics which might occur when any Go packages are vendored or use imported alias declarations.

CL 1185281 fixes a regression introduced in v0.8.0 which led to some incorrect failures in tools/flow and cue cmd.

Full list of changes since v0.8.0
  • internal/cueversion: bump for v0.8.1 by @mvdan in 95bed3d42cda04c2e5a43c408195781adddce51e
  • cue: adjust Environment for comprehensions by @mpvl in 4cdb3175b889b0ce9d198b26e0699d313d4156ab
  • Revert "tools/flow: check and return errors from task values" by @rogpeppe in 0630a37c42b56133b247d31c100cb145a5244699
  • cmd/cue: find packages by canonical path in get go by @uhthomas in 773ab2d76c513381d6c732397c866d16e4219776

v0.9.0-alpha.1

1 month ago

This release adds initial support for the CUE Central Registry (details below) and includes a number of fixes and improvements.

As a reminder: users can register their projects with Unity, our regression and performance testing setup. Unity is used to ensure that a project's CUE evaluations do not unexpectedly stop working, or regress in terms of performance. It continues to catch multiple issues with each release. Adding your project to Unity not only guarantees that we will not break your tests (if we do, we will work with you to fix your CUE code), but it also helps to improve the quality of each CUE release. Follow this link to learn more about Unity, install it, or get in touch with any questions.

Modules

This release includes experimental support for the CUE Central Registry at registry.cue.works. We have added a cue login command to log into the Central Registry via a GitHub account, and other commands know how to use these credentials when talking to the registry.

We will share more details about the Central Registry and support for other login mechanisms in the future. For now, we are looking to get early feedback.

To get started with the Central Registry, we have published a tutorial on working with modules and the central registry as well.

CL 1185280 adds cue help modules as a high-level overview of CUE modules as well.

Go API

CL 1185281 reverts a change in v0.8.0 to fix valid uses of tools/flow involving task inputs derived from the evaluation of other tasks.

CL 1185684 removes the last remaining bits of API which supported quoted identifiers, which had already been deprecated and largely unsupported for years.

cmd/cue

CL 1173100 fixes cue get go to avoid panics when dealing with vendored packages or any type aliases which refer to indirectly imported packages.

CL 1185356 tweaks cue/load so that cue fmt is able to format CUE files given directly as arguments even when they belong to different packages.

CL 1185473 deprecates the short-form cue somecmd in favor of cue cmd somecmd, as the former caused a number of bugs and slowness when working out which subcommand to execute.

Full list of changes since v0.8.0
  • internal/cueversion: bump fallbackVersion for v0.9.0-alpha.1 by @mvdan in 74fb5cfabedea14d77746dafb7a537a8e862953d
  • cue/ast: remove ParseIdent and support for quoted identifiers by @mvdan in f8ec1f4e65c1d2c60e664e9806f012e8e62a0440
  • cue/ast/astutil: stop using the deprecated ast.ParseIdent by @mvdan in 35acbf4583da2e09c1f75c5f37bb424cb1f250af
  • cmd/cue: deprecate cue somecmd in favor of cue cmd somecmd by @mvdan in e8ecf236513a337f13b22dd32aaaa5a3db187f0d
  • internal/_e2e: rename CUE_LOGINS to CUE_TEST_LOGINS by @myitcv in ec655a5f33f9f506bac7cb87e87fd2e0d8b5c832
  • cue/load: obey "all packages" mode when loading files by @mvdan in 623b6a8972bf398f6e47a1bc860d740764d6fac8
  • cmd/cue: ignore errors on empty package directories in fmt by @mvdan in 7fcae93fdb40923d54ab9319378a56cbb70fd8f4
  • Revert "tools/flow: check and return errors from task values" by @rogpeppe in ea385fdef1f98393528e57fdad67eebdec4aa64b
  • cmd/cue: more modules help by @rogpeppe in cb121f5a2e4a4608a11e51d0febfe6014f566e51
  • cmd/cue: un-hide login command and update docs by @mvdan in 50ed9120853f300cdc859f1a68359e4fce5dfbb4
  • internal/ci: do not trigger build of tip.cuelang.org by @myitcv in 4aaa2db1c778e30314e6af05448d86ae55a1958d
  • cmd/cue: find packages by canonical path in get go by @uhthomas in b648cf45d5adc6592633206cc126670906881729
  • remove unneeded dockerignore file by @mvdan in 5489392154d855f72371b2355c040013751dd3cd
  • cmd/cue: various minor cleanups by @mvdan in c248f4e401a76eaaf3b535776705f892d59d4593
  • cue: remove op type and op-token maps by @mvdan in 93b1a797118e82075d2efae6fea2b47365b04580
  • internal/cueversion: bump to v0.9.0-0.dev by @mvdan in a2d20850d0061eb78bfceda90fbdbef09ccf689d

v0.8.0

2 months ago

This release includes experimental support for CUE Modules (more details below), as well as a number of improvements and fixes.

More CLs and refactors have also landed for the core evaluator's performance work. These aren't enabled yet as the work isn't complete; subscribe to the performance umbrella issue to read regular updates.

As a reminder: users can register their projects with Unity, our regression and performance testing setup. Unity is used to ensure that a project's CUE evaluations do not unexpectedly stop working, or regress in terms of performance. It continues to catch multiple issues with each release. Adding your project to Unity not only guarantees that we will not break your tests (if we do, we will work with you to fix your CUE code), but it also helps to improve the quality of each CUE release. Follow this link to learn more about Unity, install it, or get in touch with any questions.

Modules

This release includes experimental support for CUE modules in cmd/cue, as outlined in the updated Modules and package management proposal v3.

Alongside this release, we have published a tutorial on the new website which shows how to publish and fetch modules with a custom module registry.

We have also published the first version of the Modules reference documentation, the canonical documentation page describing how CUE modules work in detail.

Note that support for CUE modules is still experimental and subject to change, and needs to be explicitly enabled via CUE_EXPERIMENT=modules. See cue help environment for more information on the environment variables used below.

CUE maps modules to registries via $CUE_REGISTRY, which supports a simple string configuration format as well as a more detailed CUE configuration format which can be read from disk. See cue help registryconfig for more details.

The new cue mod tidy command rewrites cue.mod/module.cue in its canonical format, adds any missing module dependency requirements, and removes unused ones.

The new cue mod publish command publishes the current module to a module registry.

The new cue mod get command can add a new module dependency, update an existing one, or downgrade an existing one as long as it does not cause any conflict.

When running commands like cue export with CUE_EXPERIMENT=modules, dependencies are automatically fetched from module registries following $CUE_REGISTRY and cached on disk inside $CUE_CACHE_DIR.

CUE Language Server Protocol Implementation

This release includes the first early version of an experimental Language Server Protocol (LSP) implementation for CUE. Whilst it remains experimental, the cmd/cuepls binary is separate from cmd/cue. However at a later date it will most likely to become a subcommand of cmd/cue like cue lsp serve.

We are working on updating the VSCode plugin to use cmd/cuepls, as well as supporting an initial version of a plugin for Neovim. For JetBrains users, we are working with the author of the CUE plugin to understand how best to integrate cmd/cuepls with JetBrains.

We will share announcements once the editor integrations are ready for use, and once more LSP features beyond formatting files are available. Subscribe to the LSP announce discussion, or join us in #cuepls on CUE Slack.

Go API

Note that this version of CUE requires Go 1.21 or later, following our policy to support the latest two stable Go releases just like upstream.

The cue/load package supports the CUE Modules experiment out of the box with the environment variable CUE_EXPERIMENT=modules. Alternatively, a custom registry and authorizer can be configured with the Config.Registry field via the modconfig.NewRegistry API.

cue/load also has a new Config.Env struct field to provide the environment variables used to load CUE modules from registries. It defaults to using os.Environ.

We have also added new Go examples to the cue/load package, including an example demonstrating the use of a CUE modules registry.

CL 1173271 drops support for legacy pkg directories, which have been deprecated since the transition to a cue.mod directory in 2019.

CL 1174069 replaces a few more uses of the deprecated cue.Instance type with cue.InstanceOrValue.

CL 1175779 deprecates the FileOffset and File.Base APIs in cue/token, which were inherited from go/token but never had any effect.

Language

There are no changes to the language in this version.

Spec

CL 1173197 makes the use of the term "builtin function" consistent across the document.

Core Evaluator

CL 1173262 fixes a regression introduced by v0.7.0's upgrade to github.com/cockroachdb/apd/v3 where some arithmetic operations would result in an extra 0 digit.

Encoders

CL 1173689 fixes the YAML encoder so that strings looking like hexadecimal numbers are properly quoted.

Builtins

CL 1173735 replaces the uses of Go's net package with net/netip when dealing with IP addresses, which makes them immutable, comparable, and take less memory.

CL 1173926 adds an IPv6 API to net to check that a value is a valid IPv6 address, mirroring IPv4 and taking advantage of the switch to the Go net/netip package.

CL 1174339 fixes tool/exec so that it correctly applies env defaults in CUE values.

CL 1174623 fixes tool/exec so that it accepts env list values as documented.

cmd/cue

CL 1176194 adds a language.version field to cue.mod/module.cue to track what CUE language version a module was written for. This will become necessary to make future language changes as smooth as possible for CUE users. For example, running cue mod init or cue mod tidy with the v0.8.0 release should add language: version: "v0.8.0" when the field isn't present.

CL 1173892 adds a cue help environment section to document the environment variables used by the CLI, such as CUE_EXPERIMENT and CUE_REGISTRY.

CL 1176665 fixes cue cmd so that legacy commands always get the corresponding CUE schema unified.

CL 1177330 fixes a bug where some evaluation errors in tools/flow and cue cmd were omitted, causing unintended results.

CL 1177546 tweaks cmd/cue so that it obeys the --package flag when the output format is CUE.

Full list of changes since v0.7.1
  • internal/cueversion: bump fallbackVersion for v0.8.0 by @mvdan in 7d757419377e66b0aa7bc7a6d68b6b6801214bd3
  • cue/load: make packages specified as args work correctly by @rogpeppe in c399d8870386f214d197d1a336e1b3f1afefeb4a
  • internal/mod/modresolve: do not use regular field in registry config schema by @rogpeppe in d272140c53ceadd15552b60f7bd87b7d6518b961
  • update cuelabs.dev/oci/ociregistry to pull in fix for #2934 by @mvdan in 0e33883dd5d29129c857d9684d93b860a1ea0803
  • cmd/cue: mod init should only add @v0 with the experiment by @mvdan in 24f93c9b616a3870c753ecb916037928d97fdd31
  • cmd/cue: repurpose modinit test for language.version by @mvdan in 77741ffd34907b166eab8a9d4ee78a5d04c0fe78
  • cmd/cue: mention CUE_DEBUG in cue help environment by @rogpeppe in d5ecd6c77beff73ff6cd59dee2afa2c10c652f1a
  • internal/mod/modresolve: fix stripPrefix for exact match by @rogpeppe in fa65317cb72164b37d2e94433705432a3e4f3ad9
  • internal/_e2e: remove cleanup.go and tools.go by @mvdan in ec6cc098f192f6869f0f53b6de8744f4d0c81516
  • internal/e2e: join into the root Go module by @mvdan in 31e47e2882339b541ad2ab375f6f1eb05e1686dd
  • internal/e2e: test that we can't replace published versions by @mvdan in d1104bd5b55d58e84e30b8995d1c4eab75b09f96
  • internal/e2e: stop creating GitHub repositories by @mvdan in ba698deda3ff8259bf80679183d3bed23e0f2b5e
  • all: prevent tests from using the host's docker/config.json by @mvdan in d48dcbecbc82edacd50c26ce5f88ab02b3df8e27
  • internal/cueversion: bump fallbackVersion for v0.8.0-rc.1 by @mvdan in ccb64b11acd64bc40d9568d0b6f0a6417821600e
  • doc/tutorial: skip module.cue as a golden file to avoid churn by @mvdan in d97e914bc6f2e45df2ae8b8adb715b0e9ffb8ad3
  • cmd/cue: use CUE_VERSION_OVERRIDE in script tests to avoid churn by @mvdan in e529ce6479f027418a54b35eaa1dce1b9bbcd7e5
  • cmd/cue: fix "login" on a clean environment, and add tests by @mvdan in f6238e57d448aa220f8d446d85c9a0126932ebe4
  • internal/cueversion: convert spaces to underscore in Go version by @rogpeppe in 0b7c434edb81a66a0449315e519e9da1ae95dde6
  • cmd/cue,mod/modconfig: send User-Agent header by @rogpeppe in 6db0b7f8141f25f662da40da06b69ed9259cc7cf
  • internal/cueversion: new package by @rogpeppe in 5dbbbcbaf46f9927ff6117d417f6a98ec305bef6
  • cmd/cue: enable HTTP logging for cue login by @rogpeppe in 9f556fe85ce258d6204809e3a04982fd1cc36570
  • cmd/cue: implement cue mod tidy --check by @rogpeppe in 9789ee62bf6618f39489d2888db2e3b851a30102
  • internal/modload: implement tidiness checker by @rogpeppe in 405511d5d4df12abe3994684dd3258955eeb82c2
  • mod/modfile: check canonical language version by @rogpeppe in 2e503e0b7af4bc6aea47670996ec0141cdd479b9
  • internal/mod/modload: split Tidy from UpdateVersions by @rogpeppe in 0a23647110db3df07651d95351b67989edb4b9b8
  • bump ociregistry dependency to pull in a panic fix by @mvdan in 382ea513311208ad656c0ae1a86001d201e8b0ae
  • cmd/cue: implement support for HTTP logging by @rogpeppe in 9c8b09a7d8fb2b8f6cc62d2ccb59d706abff1e1b
  • internal/httplog: new package by @rogpeppe in 893798b85aad167f4a099bd0e933672be2e959fd
  • Revert "internal/e2e: partially revert using cue mod init modpath@version" by @mvdan in b1e40aefdbf240a3fc1d2cbe293dc78c37ded1f0
  • cmd/cue: use fallbackVersion when built via a directory replace by @mvdan in e54fb85dd7ae59d14ef09def000a7de6184ac843
  • cmd/cue: hard-code a fallback CUE semver version by @mvdan in fc7038a26617c256ed99aa4317de03e2e1dd2ef5
  • update golang.org/x/... dependencies for v0.8.0 by @mvdan in 6afa3ef593a30ae7a7cf17dd003d6eb62056b674
  • internal/ci: update the pinned Go version for v0.8 by @mvdan in a1e842986d5a2c6abde4fcf3c010bce36130590c
  • internal/cuedebug: new package by @rogpeppe in 6ad495d46b07b415a28862bd1cd52dbf166f144f
  • cue/load: fix race in testing by @rogpeppe in ee26ee2fb1f27805af7b1fa34b7f679f5c8e592d
  • mod/modconfig: make http transport configurable by @rogpeppe in 0ef11fc4fae1ca6f198c8880c8d7b62872aa758c
  • internal/core/adt: set nonRooted by @mpvl in 28ae97d3e86338e2280e6f02f75ea14bb6286247
  • internal/core/debug: more state in formation by @mpvl in 2273c7d675f2ad56dd684be6cbdf61b057a77179
  • internal/core/adt: make runner a struct instead of func by @mpvl in 065145343ec9c954e217a3eb8b1e7503ea80d2c7
  • internal/core/adt: fix conjunct index by @mpvl in 2554094088320049aac8c929440cf17f4c20800c
  • internal/core/adt: implement new evaluator by @mpvl in 5f55954410f495e6b6c421bd4ac107fc55c54cb7
  • internal/core/adt: only error if inspected node missed counters by @mpvl in c547590757f0831e040285102aa3b2457d9e37c9
  • internal/core/adt: closedness improvements by @mpvl in b7f76bedb8b16f968c6fd0543b23fdfe1ceddb65
  • internal/core/adt: add lifetime check for closedness by @mpvl in cdcb6fa19bf332283500711ce5381df1cc1935e7
  • internal/core/adt: mark functions only used in old evaluator by @mpvl in f55405b243f0f00640659d2f25e974d6b0387f53
  • internal/core/adt: exclude tests with disjunctions by @mpvl in 145b436a7a5107fa3a7a895cae522433cb48c1b9
  • internal/core/adt: propagate closedness up by @mpvl in 9d951f6e1c6abba77643d4e2ec15fef18e19b262
  • internal/core/adt: introduce visual CUE debugger by @mpvl in 37c0260969b2562e6936414ffdea86bc41beec9e
  • mod/...: API tweaks by @rogpeppe in 7d4d90de3798a00807f50373466322771bd0a10a
  • cmd/cue: implement cue mod get by @rogpeppe in 93643a322842d51b3b440c0b7c28e7893d4fed72
  • cue/load: implement UpdateRequirements by @rogpeppe in 2dc8879458856a3216525faac03ef72e60f80f0b
  • cue/load,mod/modconfig: support custom environment variables by @rogpeppe in bab5d3a8d1ae6ec55b51e3cee7c96f27d6cbb478
  • bump ociregistry dependency by @rogpeppe in 50c247284d27d902f2e8fb7392f1f16a21626284
  • mod/...: remove three somewhat unnecessary APIs by @mvdan in 6cba4c0b2dee8009f3c2578980312506f805af73
  • mod/module: assume Go 1.21 or later by @mvdan in aa60650be9e40a18f335684f468086d1d2994c9e
  • cue/load: delete unexported funcs only used in tests by @mvdan in 812bd8525b01c7ee0b8f99d40334c667a0fd4b13
  • internal/str: remove as it only had one trivial use by @mvdan in 77d5973584dfe47c0ec64885326d1a7d5c76dcae
  • cue/load: remove unused code from the modules refactors by @mvdan in c5e67f2f6ffe723473600cf67bd7028d979b8335
  • cmd/cue: fix bad variable reference by @rogpeppe in 77936ec16926012597aeb9ba99e7844c7910a883
  • cmd/cue: add registryconfig help by @rogpeppe in 91c72d9efc103376ab465ac2bc6d9a1c8ac2dcc6
  • internal/e2e: partially revert using cue mod init modpath@version by @mvdan in 94a444fe9ce568e4e7e90f6aca142de605874b16
  • cmd/cue: support --package flag when output is CUE by @myitcv in 93acaa356a707751467b9422c8288c9759a25560
  • cue/load: add runnable example for external modules by @rogpeppe in cc98a77ca5b0fb974618fef4845b794cc217282d
  • mod/modconfig: factor out from cmd/cue by @rogpeppe in 59e6fd0202ecbdb7ff85232c76414bd7c61eeca9
  • mod/...: mark as experimental by @rogpeppe in 3210353d52e1ca536794114c4d6cf948d85203c0
  • mod/modcache: move from internal/mod/modcache by @rogpeppe in 4232562fe17621baad4df734d9ec828b106f6d7c
  • internal/par: move from internal/mod/internal/par by @rogpeppe in d1fba4f552c64e20e89a9bd3afcc60818a433ad4
  • mod/modregistry: move from internal/mod/modregistry by @rogpeppe in aabff1016ba8f58fad0d597973a259d55026452e
  • mod/modfile: move from internal/mod/modfile by @rogpeppe in 8533c7d6e82ea78c4517eb03ed41f4d581614a36
  • mod/module: move from internal/mod/module by @rogpeppe in 272776663738b3175c3a7eb8b901bf15d0f10ba5
  • cue: fix typos in the Hid function documentation by @kharf in 723438a577540bceaf726efe8f0131ab172f5561
  • cue/load: add a runnable package example by @mvdan in 5b4a5819b55593357486cba3c7fc0d0a1853f031
  • internal/ci: fix reference to tool/file.RemoveAll by @mvdan in d42ab3da7fe4cdddc3d9499f29cf55f4682be25c
  • tools/flow: check and return errors from task values by @nickfiggins in 9ef35ebfda957348260b4461b27cd8e935951e39
  • cmd/cue: stop trying to set $HOME in script_test.go by @mvdan in ff8d4977198e327f2fdb7eca49df70fc78af8f32
  • cmd/cue: skip the logins.json authorizer if no file is found by @mvdan in 32a72aed296141b0789cb866144d75a39e8cc524
  • bump ociregistry module version by @rogpeppe in 30cae5b304e31bce18ef9ca603d865da5bb1ee51
  • internal/ci: fix goreleaser when using gomod.proxy by @mvdan in d779310a04c941d486cbdce2fbe35e2d61278ab5
  • internal/ci: print goreleaser config yaml before using it by @mvdan in 3b9da48890f8fad88779cb040ce61147009465fe
  • bump ociregistry dependency by @rogpeppe in 44fbc2ac431c185ad81b7a5e0310c834cbfee1b8
  • cmd/cue: improve error message when modules experiment not enabled by @rogpeppe in d1f179363fb81f96943985a96d3b19a7ae099bba
  • hide testdata cue files to allow cue mod tidy to pass by @mvdan in bd966600bfc1a9fed729ee9bd2520a6bffe09047
  • cmd/cue: clarify prefix matching semantics by @rogpeppe in 7a9e47cf455049a678dc6634486ad85687d083d1
  • cue.mod: add language.version to the root module by @mvdan in ac53f42961213a301aa7ea84e89d94782c1f40c4
  • cmd/cue: add language version in "mod init" by @rogpeppe in eb5dc6a201a71faa1498fad787473e56f6d6d9d4
  • all: replace uses of deprecated ioutil APIs by @mvdan in d6ecc3d0e1161ea7125e5de1140ee421645adf10
  • bump golang.org/x dependencies for v0.8 by @mvdan in 88431eef55bf4ced3e0d629dae2e009b4fe470c1
  • cmd/cue: use CUE_CACHE_DIR instead of CUE_MODCACHE by @mvdan in 8bc8b1e6883a9094cf8b5bc1674f902a190de7df
  • cmd/cue: support registry file configuration by @rogpeppe in c1e1a524f3ee902030e68b5bf8c9edc0b5b94e7b
  • internal/mod/modresolve: use same registry representation as CUE_REGISTRY by @rogpeppe in cbf84aab89ed63c57d0785407df290fa5c069dcc
  • cmd/cue: update mod docs by @rogpeppe in fa30d88efc583208a5ea8a8cdb69ffd9b6ddd1a6
  • all: replace mpvl/unique with slices.Compact by @mvdan in 057c3249cfe387cec6cfb4bea0985d1eccb23185
  • cmd/cue: use single implementation of CUE_REGISTRY logic by @rogpeppe in 59b92a4038f82d93aed023cfff3602d57ae0589c
  • cmd/cue: fix other commands to work with modules by @rogpeppe in 3d9e272b51470df37172dea29738c8876e290c28
  • internal/mod/modresolve: add config file functionality by @rogpeppe in be5d706df3b1ddd072398ba9f579413a86046b62
  • doc/tutorial: fix broken install.md link by @TheCoreMan in 66911379540bdec5a33f0f41a7de7e378816d41f
  • all: start taking advantage of Go 1.21+ by @mvdan in 40d5162b106fdf2540bb18453f7c166d20c643d0
  • cmd/cue: use immutable tags in cue mod registry by @rogpeppe in e0c253b56e924e7206500144c57aff41fb67ece3
  • internal/ci: add cuepls to goreleaser config by @myitcv in c36b95905c2eb8dec280fb2bfd8925b317a697b5
  • cuepls: support formatting of CUE files by @myitcv in d185263b261eeb54e7dc035142ecb88ed003cb35
  • cuepls: support .cue filetype by @myitcv in 55f965d42c7d34c8849d9c689929a4fa72b9d375
  • cuepls: remove more server implementation by @myitcv in 1ae88a6458ebc1465e2e933bdafe6f75a9832d7a
  • cuepls: first integration test by @myitcv in 181a537aa0f04f1c62f85a27c4775b2d07d6c92e
  • cuepls: renaming gopls -> cuepls by @myitcv in 0b6bc2f441fa8dcbcc8931a285f92bde2bd07339
  • cuepls: initial version of cmd/cuepls by @myitcv in 6a435cfdc9a9820bb0897d431ca9f7f4ba9ea642
  • cuepls: slim down to single format command by @myitcv in 3e7e90332e753ad86f9cd48d6c56363abed909c0
  • cuepls: remove any mention of vulnerability analysis by @myitcv in 821973bb28771a9dc7bae8932b8c3521823427b4
  • cuepls: minimal changes to telemetry by @myitcv in ae69f66ce483b42183f8514f3019e69022556661
  • cuepls: remove gopls hooks by @myitcv in 09f11f970d7bc70e84973df6627bfb596ebcbdbf
  • cuepls: run internal/golangorgx/revendorToolsInternal.sh by @myitcv in 6229d62c04d8f0fc442da6685a73fde001c41047
  • cuepls: initial version of "vendor" script by @myitcv in c207a2d2f71fe7a61a8df829b00d01d8d35283fd
  • README: briefly document that we support two Go versions by @mvdan in e69d89310e52a25ed6b1d33758e2649bf0937f93
  • cue/interpreter/wasm: rework the way we test Wasm by @4ad in 41b9e665e602719edc10ee6ddf7d75b105635ae9
  • cue/interpreter/wasm: remove Wazero global state by @4ad in 6d68b3a9bc90f72b0593a5c16b6e9a1019af5249
  • cue/interpreter/wasm: add support for Wasm functions that take and return structs by @4ad in 2ce103610b31f0994ee264e5c8321fb428f4ff70
  • cue/interpreter/wasm: add support for arbitrary types in extern attributes by @4ad in c8960780c43d787ba0331a27f00d7fe9368ad3cd
  • internal/core/runtime: expand runtime.Compile signature to accomodate non-builtins by @4ad in 063b8c170c3f3000f347ebaa0e19a6b748e4ec74
  • cmd/cue,pkg/tool/exec: rely on cue schema for exec.Run defaults by @nickfiggins in b460e71a6f24bf659e45bce2a9791cc4bf7c3597
  • cmd/cue: unhide mod tidy and mod publish by @myitcv in d37ea66b1e0297142e7447c3eafd87e008ac038e
  • internal/ci: run the end-to-end tests with -race by @mvdan in a948eb5397f4b42eb99b5f4cddeec0e6e462a095
  • cmd/cue: add testscript for registry auth via logins.json by @mvdan in 64c56566c5b706111181d50ff8eb938007965077
  • cmd/cue: fix registry client race by @rogpeppe in 3d1c0cb3f5e0abef4e6638d6775c2672968d2863
  • cmd/cue: add mod registry server command by @rogpeppe in 649c7f6b554b9197e4622789de6a4aa94c9baf6f
  • clarify that we require Go 1.21 or later now by @mvdan in bef7c4e3c81f73cca11f8537e570b7f0de848059
  • internal/ci: upgrade Go matrix include go1.22.0 by @myitcv in 63dbc2d8ec3a49f5648fee20fb5077e7b492d787
  • internal/ci: use node.js 20-compatible action versions by @myitcv in 15a4b3e6248c15562d8b9cff362ae022cba62c61
  • README: simplify "install from source" instructions by @mvdan in 5037afcea7ca1ae083a2468c6582ffca5aec04e2
  • README: add Docker badge and instructions by @mvdan in b6a6f67151dda4eb398ddb1037fd9621dfe64cd2
  • bump cuelabs.dev/go/oci/ociregistry dependency by @mvdan in 0eb0106420d787df23f4727c44556e62d50e4ccb
  • cmd/cue: simplify exec trimming in TestX by @nnnkkk7 in eafeb11b1bf827f1d3005bb91f177838d7788ae5
  • pkg/path: fix package comment by @jpluscplusm in 4818cf71b897680a320909d383af0b78885afe1c
  • cue/load: allow conversion of module-local paths to OS paths by @rogpeppe in 20451a6f7a268ea1616b2ebcf2ec2f1836ab6509
  • cmd/cue: add test for self import in modules mode by @rogpeppe in 707c6d799cde3961f111f6424e17144df351d9a2
  • internal/e2e: switch all tests to cue mod publish by @mvdan in 2930a8ea50835be296fadcf12493552f03cb38cb
  • README: remove obsolete mention of Google by @jpluscplusm in 64a117c07a084f82970596f3ac67023087952f4f
  • cue/load: make the tests less noisy by @mvdan in 079532c83d213922a0ba241044b7f8b36b0c32f4
  • cue/load: use fewer absolute paths in tests by @mvdan in a25c24b5c74e99c76dcc53f2d9be7e1bbcf64bae
  • cue/parser: make the example self-contained by @mvdan in fc77363e23b405e8e5b12c374b4491ff61bceba9
  • internal/mod/modload: fix panic on error in tidy by @rogpeppe in 3146f220ab798b357723789ee47d44c1310dc150
  • internal/mod: fix tidy in the presence of local code by @rogpeppe in 2a56875bdecf2309fee328bb9646c28466a6ddef
  • cmd/cue: make the config directory configurable by @mvdan in 22b1ca360e09209ad16dc346d41f0133f6ef3830
  • internal/e2e: start using cue mod tidy by @mvdan in 34db9eb3f3109337b860f497f5d48374f5aac807
  • cmd/cue: add version to module.cue file by @rogpeppe in 9ceec10fe2f786e4bfca3d030b97dea76bffca2b
  • cue/load: fix crash when there is no module file by @rogpeppe in ec7ca0af55c7842590259fee2d08f4303ab53123
  • internal/e2e: start using cue mod init modpath@version by @mvdan in 7855e15cb70165ba9b09d6c654fb90aa2a12a082
  • cue/token: deprecate base offset by @rogpeppe in b0358a63d2d9bd35c82d160a788c063f340b11fe
  • cmd/cue/cmd: support major versions in module path by @rogpeppe in e8efa7eb57c13949453c360ec62c65bd2ce5098a
  • internal/mod/modload: support adding language version by @rogpeppe in 2120803d2c4c2040a2f74958ab321f0365b82911
  • internal/mod/modpkgload: support gen directories by @rogpeppe in c6e4adf242070a9ded2500e73e27a26a590616f6
  • internal/e2e: tweak expected error string after the cue/load changes by @mvdan in b67300b01debf44b972b32ec0726b9431445de99
  • cue/load: use modpkgload to resolve dependencies by @rogpeppe in fa12218c36d14e682317066a87dc3d39cb2d22f9
  • cmd/cue/cmd: add (failing) submodule test by @rogpeppe in 8889d6a8ab3d8791c5647dbeac200510dc79b23d
  • cue/load: implement io/fs.FS for overlay filesystem by @rogpeppe in 83a70c64d59752e42d1570a765c1026fb65a34d0
  • cue/load: remove unused code by @rogpeppe in 2be5931b62377c34fc2b50642b31eb3757d6a399
  • cmd/cue: use tokens from "cue login" before docker's config.json by @mvdan in 0e4ec6768633be8c88459c9999f8eeb592866638
  • cmd/cue: store tokens once "cue login" succeeds by @mvdan in 786095f4ebdf4a32b929fb9ecb8fc8522bb1666a
  • internal/mod: track dependencies at package level by @rogpeppe in af405f0b529b82d88625080fa222e3893255b109
  • cue/load: use module.ParseImportPath by @rogpeppe in 36a4ce4c00d008e68044d3965dd4cc98d6acdce6
  • internal/mod/module: add ParseImportPath by @rogpeppe in 22cf40243f28f59c053f1fabf3b1df02d1d72de9
  • cmd/cmd: add environment help by @rogpeppe in ed4fcdcc4b2476c657c66a26b6c6b7e0b86f68b4
  • internal/mod/modpkgload: add test for package-level dependencies by @rogpeppe in b6032bee7815efbd731bd2190be54174bdad076f
  • pkg/tool/exec: update env spec to support lists by @nickfiggins in 92d99d0c7528d208ef336df671032c497d9d18f8
  • internal/core/adt: use ConjunctGroup in fields by @mpvl in a8492120a236a7d3918f228fa62199f1fe631fb2
  • internal/mod/modresolve: allow other forms of IPv6 localhost by @rogpeppe in 522eb97c67248c82bd8e7661a2cd9a2740b5f608
  • cue/errors: remove unused field by @rogpeppe in 693cc0e10c995b97cfaf91608265b725f7f47744
  • internal/mod: remove TODOs that have been done by @rogpeppe in 1fff0989e9315e3f72467a270177c3e11bace1b6
  • internal/core/adt: remove disallowedField by @mpvl in 657ae6b960e5edc647dd20b62360ae703dd3d657
  • internal/core/adt: use OpContext instead of nodeContext for decDependant by @mpvl in 1df027bfd0e743c560333ef4721342d0e463681b
  • pkg: fix CUE source escaping TODO by @mvdan in 1dda25abd14f6f5d5382f1274445f42bff245e07
  • internal/e2e: write the rest of an inline comment by @mvdan in 97826dfb43b68fc66015cf0709b4914c1a23e2d5
  • tools/flow: use atomic.Bool by @mvdan in fefadfcfeb0782b79ac9f02132d184cfa67bff7c
  • internal/ci: add a TODO about "goreleaser test" by @mvdan in 21086d088e262a113a1fbb747ca3ae5c868ce4d5
  • cue: replace Instance.value with Instance.Value by @mvdan in 20a45056af9bbccb9cf34ca3e08f9560fe3702df
  • encoding/gocode: replace cue.Instance with InstanceOrValue by @mvdan in dbf2b756cf4551346386e0bbaf6200d4e6144b1e
  • internal/ci: support co-authors in the signed-off-by check by @mvdan in 87a2e5c47cce8edd47435b3b38b2a136f3ffc064
  • pkg/tool/exec: support defaults in env values by @nickfiggins in e7c2ede2f89a98339234d0bce446c5a120ac506b
  • internal/core/adt: implement checks for closedness counters by @mpvl in 928ff3e3cab3654df1daa22e8e2a3340a58f0420
  • internal/core/adt: reorganize for field checks by @mpvl in 2b483d779b547654c8c98b3b0b0d13752b839553
  • internal/core/adt: move rootCloseContext to Vertex by @mpvl in 596adda2d34ce15b2d188ff5db174f4a1d67cd99
  • internal/core/adt: copy node method for comprehensions by @mpvl in 122b11fe029662e34393100823589263b5db0f32
  • internal/core/adt: only show stats for old evaluator by @mpvl in ce798a78c86c42e0fafe569277a0b25bcbcebfb7
  • internal/core/adt: pass flags needed for new evaluator by @mpvl in 7fcc9368fb6f94cad6795b66eb176a4cf6d9232c
  • internal/core/adt: fix typo in insertion.txtar by @mpvl in 409ab1e0c70c68046a37f8d8671523eea20baa41
  • internal/core/adt: add positions of ConjunctGroup by @mpvl in d06d126bb766df43e94a6c3e317c885f0ca017c2
  • internal/core/adt: handle comprehension cycle errors by @mpvl in 0b90cccf0af6187683469e4053d14ac59e216b14
  • internal/core/adt: add tests to pass for new evaluator by @mpvl in 7453a50604b5be86a78c2f342e08ff428474e2da
  • internal/code/adt: hoist position to different line by @mpvl in 106ce1a50adf1e4bf655251e2e50e17aa8fdec8d
  • internal/core/adt: bail out early from resolve upon error by @mpvl in 6ead06af21289e4e15e16ffd08d526a82b1942cf
  • internal/core/adt: hoist hasConjuncts by @mpvl in cbcabcff38b103bcfdea0831d0b62e950d0a66d3
  • internal/core/adt: don't match patters for non-regular fields by @mpvl in ca725a8d6b7fd0a7aee7628aca267088b3c81c43
  • internal/core/runtime: move EvaluatorVersion to Runtime by @mpvl in 53ed0f66d1830563c5341666c59253a20d3c756f
  • internal/core/adt: move OpContext out of nodeContext by @mpvl in 200c994524482143cbb1b7b20d5671edc5e5649b
  • internal/core/adt: add scheduler implementation by @mpvl in 9728b7d1a680803585af811117eaf6e7f4b72634
  • all: update Wazero to 1.6.0 by @4ad in 5c5d291aa13b364cec9cd7a2c55db634a83de20c
  • internal/cli: improve error message on parse issue by @cedricgc in b55e471aacdab1a4fd0a0943fca22695562fb799
  • internal/core/adt: hoist getNonCyclicCount by @mpvl in 4cc7bc77900d90d9d548faf568128bd86f791c85
  • internal/cuetxtar: use go-internal diff by @mpvl in 54e1699086143d00bc8ffbd517de7d4b5a5cdff9
  • internal/core/adt: include ConjunctGroup in addPositions by @mpvl in d5431b207f60b3367d1bb77ac23de2cbf72a155c
  • internal/core/adt: modify some tests by @mpvl in 82e4cefb47e8bd60f70ea754d90a3a8b0298f2f8
  • internal/core/adt: prep for new evaluator by @mpvl in 81461912d7b5fcf157b2c0996b3f11919d956acb
  • internal/core/adt: introduce ConjunctGroup by @mpvl in afed6aec0c23b3101643098e1d9fe9cc71558d36
  • internal/core/adt: unroll Evaluate in OpContext.concrete by @mpvl in 8933b8c4413aacaba86c9467fe07ffc8d7567a72
  • internal/core/adt: add String implementation for ArcType by @mpvl in cc7601209abfd815e2e18e65f6f6d03424e2eddd
  • pkg/net: add IPv6 check by @martingreber in bc91ca757471c0bfa0a12c099ce2172d8aa89912
  • internal/core: remove unused argument by @mpvl in da0eab4373cc81ccf8fa902c77751a711558b555
  • internal/e2e: use cue mod publish by @rogpeppe in 3d09a4aafb64d459fdc60348dc2da4665759a4b2
  • cmd/cue: add hidden login command by @mvdan in 0a5e225f75684b8085947389e5e4b8e8b12d102a
  • cmd/cue/cmd: amend the default for CUE_REGISTRY by @mvdan in b01d1296f3be48517273ab0bf404513ac30bf421
  • cmd/cue: rename mod upload to mod publish by @rogpeppe in cc1eaf06e2f90bcb6ba03d1d274e5d3c64f583cb
  • cmd/cue: allow cue mod tidy in non-module root by @rogpeppe in f26085535bcd247376ddcb525e6d944ad94ee3da
  • internal/registrytest: upload deterministically by @rogpeppe in c4c064dbc34bea9be85c0ec61d173420a656a292
  • internal/mod/modfile: avoid unnecessary braces by @rogpeppe in 7bcfd0bf2ad44e7b340cedbf01b939ee528d72c3
  • internal/mod/modregistry: add Module.Version method by @rogpeppe in 72766c22bb627c355b1ac90751f4bf3fc6b313c2
  • internal/registrytest: add Upload function by @rogpeppe in 414695f8296c30e065df3179abbd16565387de36
  • internal/mod/modregistry: add GetModuleWithManifest method by @rogpeppe in 76298d4fbcfe6f40d4ecc57c3f262dfe6f25a746
  • pkg/net: replace net with net/netip by @martingreber in 87a3b178363111616d67de3cb944e9f073ec9d3d
  • internal/cmd: add cue-ast-print to visualize syntax trees by @mvdan in bf94b6623fc5c631f6a9be7f337baacc5adc833d
  • deps: upgrade to latest cuelabs.dev/go/oci/ociregistry by @myitcv in c84175b633d517fd53dcba425e5e30fdf2189223
  • go.mod: bump non-user-facing dependencies by @mvdan in 3594d137a6d32bccc87a9fb71cb8abd1fda6c28e
  • internal/encoding/yaml: quote hexadecimal-looking strings by @vikstrous in 0b3455c57086b3d0bd3368351800ed9e1ed10d06
  • internal/e2e: set CUE_MODCACHE in TestScript's Setup by @mvdan in db9821976166f1bd91797bece93766ed6d4a1fb7
  • cue/load: use cached registry by @rogpeppe in 7dc80ffe46228731b4299174e25761989819a85e
  • cmd/cue: use cached registry for cue mod tidy by @rogpeppe in 400f8297ef6f1d92563afba784dc43f12ad248fa
  • internal/mod/modfile: guard against cue.Value race by @rogpeppe in 53d036a14d907f1a1e5093b72b55279b3de1ae7f
  • internal/mod/modcache: use robustio by @rogpeppe in c5e13428d42d0dbad48db2dba9540074e94a75a5
  • internal/mod/modcache: new package by @rogpeppe in c3ec30c762363e84c6c10e8e194789fe013c50f9
  • cmd/cue: remove a stale TODO on marshaler types by @mvdan in a567677828a8e15c6856036bd6a39eeb0ec3d277
  • internal/mod/modregistry: avoid round trip by @rogpeppe in e090abf7ffd9257c2d55169ed62fced318708fcb
  • internal/mod/module: add support for escaping by @rogpeppe in 576c56499311dd3e56452399739556e89c8385f6
  • internal/mod/modregistry: add ManifestDigest by @rogpeppe in 3c187c53fe132e45360dab181ed0c4e2249b0c5b
  • doc/ref: use builtin instead of built-in by @jpluscplusm in 7ed1bcaa253fc9111fd61ee3713da11b1f2e464a
  • internal/mod/modload: support major version defaults by @rogpeppe in ac248f4461117fd51810de39d33adc8694297fd3
  • internal/maps: new package by @rogpeppe in 1958c325d22e646d0314951fc8503f3c32d64d43
  • internal/mod/modpkgload: support packages without major versions by @rogpeppe in 3cfb6e2688c827cafb0a582b01df2e9fcd5350ee
  • internal/mod/modrequirements: support major version defaults by @rogpeppe in 7afd472d78b089ec87a1c2b5ef1cba8136fb287d
  • internal/mod/modregistry: support cross-major-version queries by @rogpeppe in 4773bf6371f2e86f934d5722ca8a67b9daef2221
  • modfile: support major version defaults by @rogpeppe in faf7cd59fd6df8ab7132a4637f575712bd10f406
  • cmd/cue: prevent failures if /tmp/cue.mod exists by @mvdan in c8073f406c3d4820a3befadfa9f6c7ee649ed725
  • cue/load: drop support for legacy pkg directories by @mvdan in e81d18160728bbc047dd8cb1f3488d44faede883
  • cmd/cue: cue mod tidy command by @rogpeppe in 26351196e988c652b8fcef574a3100b5a34c2d7b
  • internal/mod/modload: new package by @rogpeppe in 6bd89dc2cb7f229678a373d7e7de79eb5d6e16b3
  • internal/mod/modpkgload: new package by @rogpeppe in 3632c1f880a27de8115c00fb0ba06628cc58bdd8
  • internal/core: use precise apd.Decimal by @myitcv in 8271724853575990db888a7e7e5dc43221bed454
  • internal/mod/modrequirements: add GraphIsLoaded and RootModules by @rogpeppe in 74d7664b248348a01a84fd447a950353760afd50
  • internal/mod/module: add Version.IsValid by @rogpeppe in 71ab88aa581eeabbf1ae374f45e5c4113d0fe29d
  • internal/mod/modregistry: return no tags for non-existent repo by @rogpeppe in 0c2c730ce6dd9d636c32511ed68a11de665df0d8
  • internal/mod/modfile: add Format by @rogpeppe in 7d588b99f1121dba16f9c5b513eb8c947fa00dfc
  • internal/mod/modimports: discard package qualifier in import paths by @rogpeppe in 4edbf9d7ec8da021a89f3148bec84fa3c3dae658
  • README: drop golangci badge by @mvdan in 967c9c68c7cd8b1042b3def3b7227b20be6dfc90
  • update ociregistry dependency by @rogpeppe in e07c4b8becf619ee619b63a34e5873c67da85d6a
  • internal/slices: add Equal by @rogpeppe in 4f4f718258c5108134d89fdfc9657b83074c6e69
  • internal/mod/modimports: support scanning single directory by @rogpeppe in 413d0d5a6ce1ae9242ea90c725ff593a03efb0dd
  • internal/mod/modrequirements: new package by @rogpeppe in 0e0d6380d1ae24cd400fed81c2ec49d62550d0e5
  • internal/ci: limit goreleaser to doing release drafts by @mvdan in f3411b4c38deb3cb606468053331aea3dc7dd04a

v0.8.0-rc.1

2 months ago

This release includes a number of fixes and improvements for the experimental support for CUE modules first released in v0.8.0-alpha.1.

Modules

cue mod tidy gained a --check flag, which succeeds only if the module file contains exactly the required dependencies and also contains a canonical CUE language version.

cmd/cue and cue/load now send a detailed HTTP User-Agent string to CUE registries when sending HTTP requests, including the CUE and Go versions, rather than Go's default net/http user agent string.

cmd/cue now supports CUE_DEBUG=http to print HTTP logging information to stderr in JSON format.

Local builds of cmd/cue, such as running go install ./cmd/cue, now include a proper CUE version, allowing cue mod init and cue mod tidy to insert language.version as expected.

Full list of changes since v0.8.0-alpha.5
  • internal/cueversion: bump fallbackVersion for v0.8.0-rc.1 by @mvdan in ccb64b11acd64bc40d9568d0b6f0a6417821600e
  • doc/tutorial: skip module.cue as a golden file to avoid churn by @mvdan in d97e914bc6f2e45df2ae8b8adb715b0e9ffb8ad3
  • cmd/cue: use CUE_VERSION_OVERRIDE in script tests to avoid churn by @mvdan in e529ce6479f027418a54b35eaa1dce1b9bbcd7e5
  • cmd/cue: fix "login" on a clean environment, and add tests by @mvdan in f6238e57d448aa220f8d446d85c9a0126932ebe4
  • internal/cueversion: convert spaces to underscore in Go version by @rogpeppe in 0b7c434edb81a66a0449315e519e9da1ae95dde6
  • cmd/cue,mod/modconfig: send User-Agent header by @rogpeppe in 6db0b7f8141f25f662da40da06b69ed9259cc7cf
  • internal/cueversion: new package by @rogpeppe in 5dbbbcbaf46f9927ff6117d417f6a98ec305bef6
  • cmd/cue: enable HTTP logging for cue login by @rogpeppe in 9f556fe85ce258d6204809e3a04982fd1cc36570
  • cmd/cue: implement cue mod tidy --check by @rogpeppe in 9789ee62bf6618f39489d2888db2e3b851a30102
  • internal/modload: implement tidiness checker by @rogpeppe in 405511d5d4df12abe3994684dd3258955eeb82c2
  • mod/modfile: check canonical language version by @rogpeppe in 2e503e0b7af4bc6aea47670996ec0141cdd479b9
  • internal/mod/modload: split Tidy from UpdateVersions by @rogpeppe in 0a23647110db3df07651d95351b67989edb4b9b8
  • bump ociregistry dependency to pull in a panic fix by @mvdan in 382ea513311208ad656c0ae1a86001d201e8b0ae
  • cmd/cue: implement support for HTTP logging by @rogpeppe in 9c8b09a7d8fb2b8f6cc62d2ccb59d706abff1e1b
  • internal/httplog: new package by @rogpeppe in 893798b85aad167f4a099bd0e933672be2e959fd
  • Revert "internal/e2e: partially revert using cue mod init modpath@version" by @mvdan in b1e40aefdbf240a3fc1d2cbe293dc78c37ded1f0
  • cmd/cue: use fallbackVersion when built via a directory replace by @mvdan in e54fb85dd7ae59d14ef09def000a7de6184ac843
  • cmd/cue: hard-code a fallback CUE semver version by @mvdan in fc7038a26617c256ed99aa4317de03e2e1dd2ef5
  • update golang.org/x/... dependencies for v0.8.0 by @mvdan in 6afa3ef593a30ae7a7cf17dd003d6eb62056b674
  • internal/ci: update the pinned Go version for v0.8 by @mvdan in a1e842986d5a2c6abde4fcf3c010bce36130590c
  • internal/cuedebug: new package by @rogpeppe in 6ad495d46b07b415a28862bd1cd52dbf166f144f
  • cue/load: fix race in testing by @rogpeppe in ee26ee2fb1f27805af7b1fa34b7f679f5c8e592d
  • mod/modconfig: make http transport configurable by @rogpeppe in 0ef11fc4fae1ca6f198c8880c8d7b62872aa758c
  • internal/core/adt: set nonRooted by @mpvl in 28ae97d3e86338e2280e6f02f75ea14bb6286247
  • internal/core/debug: more state in formation by @mpvl in 2273c7d675f2ad56dd684be6cbdf61b057a77179
  • internal/core/adt: make runner a struct instead of func by @mpvl in 065145343ec9c954e217a3eb8b1e7503ea80d2c7
  • internal/core/adt: fix conjunct index by @mpvl in 2554094088320049aac8c929440cf17f4c20800c
  • internal/core/adt: implement new evaluator by @mpvl in 5f55954410f495e6b6c421bd4ac107fc55c54cb7
  • internal/core/adt: only error if inspected node missed counters by @mpvl in c547590757f0831e040285102aa3b2457d9e37c9
  • internal/core/adt: closedness improvements by @mpvl in b7f76bedb8b16f968c6fd0543b23fdfe1ceddb65
  • internal/core/adt: add lifetime check for closedness by @mpvl in cdcb6fa19bf332283500711ce5381df1cc1935e7
  • internal/core/adt: mark functions only used in old evaluator by @mpvl in f55405b243f0f00640659d2f25e974d6b0387f53
  • internal/core/adt: exclude tests with disjunctions by @mpvl in 145b436a7a5107fa3a7a895cae522433cb48c1b9
  • internal/core/adt: propagate closedness up by @mpvl in 9d951f6e1c6abba77643d4e2ec15fef18e19b262
  • internal/core/adt: introduce visual CUE debugger by @mpvl in 37c0260969b2562e6936414ffdea86bc41beec9e

v0.8.0-alpha.5

2 months ago

This release includes a number of fixes and improvements for the experimental support for CUE modules first released in v0.8.0-alpha.1.

Modules

A new cue mod get command is added, which can add a new module dependency, update an existing one, or downgrade an existing one as long as it does not cause any conflict.

The cue/load package has a new Config.Env struct field to provide the environment variables used to load CUE modules from registries.

A new cue help registryconfig documentation section has been added, explaining how $CUE_REGISTRY works as well as the configuration file schema it supports.

Full list of changes since v0.8.0-alpha.4
  • mod/...: API tweaks by @rogpeppe in 7d4d90de3798a00807f50373466322771bd0a10a
  • cmd/cue: implement cue mod get by @rogpeppe in 93643a322842d51b3b440c0b7c28e7893d4fed72
  • cue/load: implement UpdateRequirements by @rogpeppe in 2dc8879458856a3216525faac03ef72e60f80f0b
  • cue/load,mod/modconfig: support custom environment variables by @rogpeppe in bab5d3a8d1ae6ec55b51e3cee7c96f27d6cbb478
  • bump ociregistry dependency by @rogpeppe in 50c247284d27d902f2e8fb7392f1f16a21626284
  • mod/...: remove three somewhat unnecessary APIs by @mvdan in 6cba4c0b2dee8009f3c2578980312506f805af73
  • mod/module: assume Go 1.21 or later by @mvdan in aa60650be9e40a18f335684f468086d1d2994c9e
  • cue/load: delete unexported funcs only used in tests by @mvdan in 812bd8525b01c7ee0b8f99d40334c667a0fd4b13
  • internal/str: remove as it only had one trivial use by @mvdan in 77d5973584dfe47c0ec64885326d1a7d5c76dcae
  • cue/load: remove unused code from the modules refactors by @mvdan in c5e67f2f6ffe723473600cf67bd7028d979b8335
  • cmd/cue: fix bad variable reference by @rogpeppe in 77936ec16926012597aeb9ba99e7844c7910a883
  • cmd/cue: add registryconfig help by @rogpeppe in 91c72d9efc103376ab465ac2bc6d9a1c8ac2dcc6

v0.8.0-alpha.4

2 months ago

This release includes a number of fixes and improvements for the experimental support for CUE modules first released in v0.8.0-alpha.1.

Thank you to @kharf, @mvdan, @myitcv, @nickfiggins, and @rogpeppe for contributing to this release!

Modules

The cue/load package now supports loading CUE instances using the CUE Modules experiment, which was first added to cmd/cue in v0.8.0-alpha.1.

cue/load supports the CUE Modules experiment out of the box with the environment variable CUE_EXPERIMENT=modules. Alternatively, a custom registry and authorizer can be configured with the Config.Registry field via the modconfig.NewRegistry API.

We have also added new Go examples to the cue/load package, including an example demonstrating the use of a CUE modules registry.

Other changes

CL 1177330 fixes a bug where some evaluation errors in tools/flow and cue cmd were omitted, causing unintended results.

CL 1177546 tweaks cmd/cue so that it obeys the --package flag when the output format is CUE.

Full list of changes since v0.8.0-alpha.3
  • internal/e2e: partially revert using cue mod init modpath@version by @mvdan in 94a444fe9ce568e4e7e90f6aca142de605874b16
  • cmd/cue: support --package flag when output is CUE by @myitcv in 93acaa356a707751467b9422c8288c9759a25560
  • cue/load: add runnable example for external modules by @rogpeppe in cc98a77ca5b0fb974618fef4845b794cc217282d
  • mod/modconfig: factor out from cmd/cue by @rogpeppe in 59e6fd0202ecbdb7ff85232c76414bd7c61eeca9
  • mod/...: mark as experimental by @rogpeppe in 3210353d52e1ca536794114c4d6cf948d85203c0
  • mod/modcache: move from internal/mod/modcache by @rogpeppe in 4232562fe17621baad4df734d9ec828b106f6d7c
  • internal/par: move from internal/mod/internal/par by @rogpeppe in d1fba4f552c64e20e89a9bd3afcc60818a433ad4
  • mod/modregistry: move from internal/mod/modregistry by @rogpeppe in aabff1016ba8f58fad0d597973a259d55026452e
  • mod/modfile: move from internal/mod/modfile by @rogpeppe in 8533c7d6e82ea78c4517eb03ed41f4d581614a36
  • mod/module: move from internal/mod/module by @rogpeppe in 272776663738b3175c3a7eb8b901bf15d0f10ba5
  • cue: fix typos in the Hid function documentation by @kharf in 723438a577540bceaf726efe8f0131ab172f5561
  • cue/load: add a runnable package example by @mvdan in 5b4a5819b55593357486cba3c7fc0d0a1853f031
  • internal/ci: fix reference to tool/file.RemoveAll by @mvdan in d42ab3da7fe4cdddc3d9499f29cf55f4682be25c
  • tools/flow: check and return errors from task values by @nickfiggins in 9ef35ebfda957348260b4461b27cd8e935951e39
  • cmd/cue: stop trying to set $HOME in script_test.go by @mvdan in ff8d4977198e327f2fdb7eca49df70fc78af8f32
  • cmd/cue: skip the logins.json authorizer if no file is found by @mvdan in 32a72aed296141b0789cb866144d75a39e8cc524
  • bump ociregistry module version by @rogpeppe in 30cae5b304e31bce18ef9ca603d865da5bb1ee51