Cue Lang Cue Versions Save

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

v0.8.0-rc.1

3 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

3 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

3 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

v0.8.0-alpha.3

3 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.

Note that we skipped over v0.8.0-alpha.2 due to a minor release automation issue.

Modules

CUE_REGISTRY now supports a CUE configuration file in addition to the simple string form, which allows greater control over how to publish CUE modules as artifacts on OCI registries. This is useful when publishing to OCI registries which do not support arbitrary repository names, for example. This is not fully documented yet, but the schema for the file is available here and setting CUE_REGISTRY=file:path/to/file enables its use.

All cue subcommands should now support the modules experiment when it is enabled via CUE_EXPERIMENT=modules.

cue mod init now adds the language.version field as needed, to ensure that running cue mod tidy immediately after results in no changes.

CUE_MODCACHE has been replaced with CUE_CACHE_DIR, a parent directory to hold all cache files, much like how CUE_CONFIG_DIR already works for configuration files.

cue mod registry, a hidden command to start a local in-memory OCI registry for testing purposes, now treats repository tags as immutable to ensure published module versions cannot be modified. The "Working with a custom module registry" tutorial has been updated to use cue mod registry.

CUE Language Server Protocol Implementation

This release includes the first 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.

Subscribe to the LSP announce discussion, or join us in #cuepls on CUE Slack.

Full list of changes since v0.8.0-alpha.1
  • 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

v0.8.0-alpha.1

4 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; they aren't enabled yet as the work isn't complete.

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.

Thank you to @4ad, @cedricgc, @jpluscplusm, @martingreber, @mpvl, @mvdan, @myitcv, @nickfiggins, @nnnkkk7, @rogpeppe, and @vikstrous for contributing to this release!

Modules

This release includes experimental support for CUE modules in cmd/cue, as outlined in the Modules and package management proposal. We are also working on v3 of the modules proposal docs to coincide with the release of v0.8.0.

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.

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

The cue mod publish command is also added. This publishes a version of the current module to a module registry.

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

Note that support for fetching modules from OCI registries via cue/load isn't ready yet; support for Go library users will be announced at a later time.

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.

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 fixed 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 fixed 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 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 1176194 starts adding a language.version field to cue.mod/module.cue, to start tracking what CUE language version a module's config files were 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 future CUE v0.8.0 release should add language: version: "v0.8.0" when the field isn't present.

Full list of changes since v0.7.1
  • 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.7.1

4 months ago

This release is a re-build of CUE v0.7.0 with Go 1.22.0 to prevent cue get go panics; see https://github.com/cue-lang/cue/issues/2802.

v0.7.0

6 months ago

This release comprises a number of bug fixes and small improvements, as well as more ground work for Modules, WebAssembly, and the core evaluator's performance refactors.

Note that v0.7 was originally planned to center around the core evaluator's performance improvements. Since those refactors are not ready, and we have other fixes and improvements we want to release, we have slightly altered the release plan accordingly. We will share more details on our next community call.

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. Unity 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.

Thank you to @SteVwonder, @bozaro, @cedricgc, @howardjohn, @mpvl, @mvdan, @myitcv, @nickfiggins, @rogpeppe, @rudifa, and @uhthomas for contributing to this release!

And a special thanks to all who joined the recent contributor office hours calls on our community calendar, as well as our #contributing channel on Slack! Thanks to their involvement, more issues can be investigated and fixed each release.

Go API

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

CL 1172105 fixes a regression introduced in v0.6.0 where calling Iterator.Selector.Index while iterating over a list would incorrectly panic.

CL 1167597 fixes cue/load so it now errors on package import cycles, following the spec.

CL 1167647 adjusts cue.Value.Decode to decode empty CUE lists into a Go interface{} as a non-nil empty slice.

CL 547369 teaches cue.Value.Decode how to decode values which aren't entirely concrete into a Go type by using cue.Value as part of the destination type.

Language

There are no changes to the language in this version.

Spec

CL 1171216 fixes two errors in a dynamic fields example.

Core Evaluator

CL 1172014 disallows the direct use of unary operators with basic types, since they would result in confusing bounds which seemed incorrect.

CL 1172013 fixes a closedness bug where close did not properly apply when used inside definitions.

CL 1172874 fixes a panic in cue export introduced by v0.6.0.

Encoders

CL 1172314 teaches encoding/protobuf to follow the field_behavior annotation marking a field as either optional or required when decoding.

Builtins

CL 1172991 adds a mustSucceed boolean parameter to tool/exec.Run, which can be set to false to allow a command to fail and set its own field success to false.

CL 557322 fixes the values of math's Log2E and Log10E constants, which were being incorrectly truncated.

cmd/cue

CLs 1170966 and 1171302 fix a number of issues in cue fmt (and by extension the cue/format package), resulting in better and more consistent formatting of CUE files.

CLs 1171292, 1171015, 1170115, and 1171971 implement a variety of improvements and bug fixes for cue get go.

CL 1172017 fixes a number of issues with the line and column positions reported by our YAML decoder, which could result in weird CUE formatting when using cue import or misleading positions being shown to the user.

CL 1169709 increases the robustness of cue export -o, which in some situations could ignore file errors or incorrectly replace an existing file without the -f flag.

CL 1173072 fixes a panic when using cue import --list with empty YAML input.

CL 1168436 updates the cue export documentation to add the missing cue and binary supported export formats.

Modules

A number of changes are included to support an experimental implementation of the proposed modules and package management support. These aren't enabled by default, and will be announced soon.

Full list of changes since v0.6.0
  • internal/ci: bump to Go 1.21.5 for the upcoming release by @mvdan in ce1ad81f0aee1f88ef12dbf463551f694e8dd906
  • cmd/cue: fix panic when importing empty files as a list by @uhthomas in b36b4775e6a890899c460f62f8e59b4182d63c2a
  • internal/core/adt: change semantics of unary_op(basictype) by @mpvl in e1ceed434f211be0c6bdd3d8fea767765b1b0b92
  • internal/core/adt: fix closedness bug by @mpvl in 886eefd407ed1566dc32f9735a04e990e6c1df84
  • internal/core/adt: add test to prepare for fix by @mpvl in 145764d8f94e9fd19e96f74cc220b415a234ffb8
  • CONTRIBUTING: mention the Slack channel and office hours calls by @mvdan in 16a0cdaa5912852e91b9e75d9e4b533fed87f720
  • pkg/tool/exec: add a Run.mustSucceed parameter by @nickfiggins in 10c47964349a308d3e05f52c99aa996ad06d4315
  • cue: explicitly document values are not safe for concurrent use by @mvdan in d805c22e75cd4007a029f17a735e5992c741da16
  • internal/ci: bump Go and GoReleaser for v0.7.0-rc.1 by @mvdan in 8f88dcb3b3ef0c4dc120e70b9303c60a1e085d8d
  • internal/slices: move from internal/mod/mvs/internal/slices by @rogpeppe in 0e51dbb4ea0014f8526bd61ac418df38316d67fd
  • internal/mod/internal/par: move from internal/mod/mvs/internal/par by @rogpeppe in fe0e04a55865b1181efeb2a3f9e238892a51bb4e
  • internal/registrytest: do not check that dependencies exist by @rogpeppe in 99bdbadb556e31df01aff775dff5cac49861120f
  • internal/mod/modimports: new package by @rogpeppe in 79033c20d13a321eb4975b3b9848f16f0e06a2ba
  • internal/core/export: fix a recent nil pointer regression by @rudifa in 141925a62c4b579ff6e7399f5948da4935fddb94
  • internal/core/adt: use state directly by @mpvl in bba22633a71f82f653dc63fb71e9c8d79ce55104
  • internal/core/adt: expand on permutations for test by @mpvl in 596fdc957640dc545b9787b0f6140aa03b0b964d
  • internal/cuetxtar: include diff between test and fallback test by @mpvl in 6774d0df6229412fb683fbc3ba7d1a9502229267
  • internal/txtarfs: factor out from registrytest by @rogpeppe in 265a7a0fb42980582f6033615ff82dfe4e1a110b
  • internal/cueimports: export API and fix for CUE syntax by @rogpeppe in 47d6dcedde5c8c8623758044eb247c172ba4e4bf
  • internal/cueimports: copy code from cue/load by @rogpeppe in 9e5578368fabaae51df0fbaa3bf5d38d3f88ff89
  • cue/load: remove unused functionality by @rogpeppe in b727189d3a09026e16023b6ac239e27adb7e0bae
  • all: replace html/template by text/template by @mvdan in 361ae4f49aefbeb99a99c683bb7ba34cfbd7457a
  • encoding/protobuf: support field_behavior "required" option by @howardjohn in 80b0eee3ff373caa279e9758c79489a7a967397e
  • cmd/cue: fix incorrect position in yaml import by @uhthomas in d97b0c3bc6e57a7e0409c0fdf5f4508a6ed6ce1e
  • all: adopt .gitignore for new delve binary naming by @mpvl in 68e9d5d75f9241a449fb69856d421566d0d533d7
  • internal/core/adt: make ListMarker Src an expression by @mpvl in f59894c3dd9857b5bdacce838ce4d64ef544ac38
  • internal/core/adt: changes needed for new evaluator by @mpvl in fb88bebcae967c3fdc14df9d5b35cbbb30ca0399
  • cue: don't panic on Iterator.Selector.Index with lists by @mvdan in 9dd0f82df8e8608920b4044c40d977115a5cc95b
  • cue: allow top level JSON marshalers in EncodeType by @rogpeppe in 8f796bf3b001867fa1fbd9b33de218c27452e6d1
  • cue: support decoding into cue.Value fields by @rogpeppe in b25fc05e59e6c04614617b59ce082091219a301a
  • internal/mod/mvs: discard copied par tests by @mvdan in 4e301018fa52dde2ec1c2c9cadb7470297e27ef9
  • CONTRIBUTING: fix repo reference rendering by @cedricgc in 7a4ea8668a03d0cb2458ee264e5f582a2d5107e5
  • internal/e2e: make unique module names more robust by @mvdan in a404c897f3615a77178e2ddbe0b07261622385a3
  • cmd/cue: support optional comments in get go by @uhthomas in 67ea9cf9c39a6cc55da357541019886b1ed0beaa
  • cmd/cue: ignore complex types in get go by @uhthomas in 112b0b28a888e2a74016adc1704e0aef7b362870
  • pkg/internal/builtintest: don't print superfluous newlines by @uhthomas in 8b32c491294c895394d38eeb67c8f7ab366c4a78
  • internal/tdtest: document how the name field is used by @rogpeppe in deab3074bb95bb399075ad07e60b59cbef61a908
  • internal/e2e: add a test for a private github repo by @mvdan in 4d2ba88849b660e30df921aa1d6f44d4c75ed8d8
  • internal/ci: add gcloud auth to the e2e tests by @mvdan in 95a88a547314e9c1f6351ece97ddf841ac7d4a67
  • CONTRIBUTING: clarify two sections by @cedricgc in d947a69cab19477d99355a1cefb9d2291197ace5
  • internal/e2e: add a "cue mod upload" end-to-end test with gcloud by @mvdan in a060f85ddb5d9a9b020c2cf1f7dfc4daa24f7f98
  • internal/e2e: rename existing testscript and add a summary by @mvdan in 4dba8ddfd715d57902ff050a340968237f0107f6
  • internal/e2e: tweak how we use secret env vars by @mvdan in d3efde7804e30570f0e6ba27562aa778934bc30e
  • internal/mod/modfile: add copyright message by @rogpeppe in f9c8d98d1c31cbf34e376eb3eb78984b24476136
  • cmd/cue: cue mod upload command by @rogpeppe in ca2065618e2e277d3dfe22d6e0993f336203e481
  • internal/ci: enforce vet and mod tidy on all modules by @mvdan in 2ae1a9e8c909852e881f6992c38885d0b450c998
  • internal/e2e: run go mod tidy by @mvdan in 8b9597173bb25c9274fb75f307adb5963db5bd94
  • cue/load: do not format registry as a string by @rogpeppe in 4fd631d10349ca4dda92b360dc4d7399b9c493e2
  • internal/mod/modzip: rename from internal/mod/zip by @rogpeppe in 5365838c091eb3effba5cc320612bb19a48b027b
  • cmd/cue: wire up OCI authorization by @rogpeppe in b2ac3f7660e2706fdcfa4300f32c781ea6c1dbd0
  • internal/registrytest: remove _registry remnants by @rogpeppe in 273602f2266fd12b2aa6f42a6f3119c1294b7fb9
  • internal/ci: only run e2e tests in source repo by @myitcv in b15fcb039af15018e423f4700a4de576f7e4607b
  • internal/ci: test internal/e2e on protected branches by @mvdan in d72997f50005d553ae24398271767153469bdc9a
  • cmd/format: be consistent with whitespace in lists by @uhthomas in d70007c116281516ed051982a9897013119df417
  • internal/e2e: first version of the end-to-end module tests by @mvdan in 8c826bcf6c20ec01d1af32cfb9785ca4f8f87905
  • cmd/cue: support type parameters in get go by @uhthomas in 3b4e03d597532c90c34cee5c3c17b5e109999d35
  • cue: add more godoc links by @mvdan in 286dfcb833fc924aa0582f18efeb1e95618bc73c
  • cmd/cue: support unsafe pointer in get go by @uhthomas in 05ceba661e39f78c91a35977abd54418c75a2148
  • spec: fix two errors in the dynamic fields example by @SteVwonder in 200a8ecac56180f662bed17a9d4d510f9f243f2d
  • README: add a direct mention of the community calendar by @mvdan in 8a98ac0854cc7df6dd8173bdebe3bb27964f11cc
  • cmd/cue/cmd: wire up modmux by @rogpeppe in ac1b4339f0f214548fbce582af257fdad6891426
  • internal/mod/modmux: new package by @rogpeppe in 8e24597e6eacfb5785207093c0d311c43a403a3f
  • cue/format: indent list elements correctly by @uhthomas in eddccfc72316a648971d9684ac5dcd003ee26385
  • internal/registrytest: do not assume subdirectory by @rogpeppe in f89234510378b557e4c488a5bacc9729e5ce10dc
  • internal/mod/modregistry: remove error return from New by @rogpeppe in 1e26aa2a80a24425ad97e8c454eb178487b0fd1f
  • internal/mod/modresolve: new package by @rogpeppe in 2a7d1d6653e525ada6bb25c200dd94c6f81283db
  • internal/mod/module: add CheckPathWithoutVersion by @rogpeppe in c6da76812209649c4734cb6a4da842170b6b884a
  • cue: make use of some godoc links by @mvdan in 63307bd17387651f410e857863af7d8be58bc109
  • internal/registrytest: support prefix by @rogpeppe in 6c71b2c90d63846f2983deb07102253298a568c0
  • cmd/cue/cmd: support CUE_REGISTRY by @rogpeppe in d5c0745eb65196ff1739d1ab5bf5af455c7d2422
  • update ociregistry dependency by @rogpeppe in a43792cc30bd3d9bff2b2f4c73469b8faa2f8c48
  • internal/mod: kick off WIP doc to track FAQs, points to document by @myitcv in b664f0cd3918390b665a16090734a358272a35a3
  • pkg/path: use a subtest helper to test for each OS value by @mvdan in 1227a83010506ae4532ecca051a035c982650830
  • internal/core/adt: avoid chatty tests by @mvdan in 55c6db6f8301bdd3b273b5d4f2f4fa350c9301ea
  • internal/mod/zip: skip SizeLimit tests with -race by @mvdan in 91d976682fb9575a8fb750b7475844aaa8f6067e
  • internal/mod/zip: silence "err value not used" warnings by @mvdan in 665d19a74cdd71b1cb435812592f99561eda3fc8
  • internal/mod/zip: use testing.T.TempDir by @mvdan in fd8d5f905414cf31c30e2d5bc7c988e7b0a5a9dd
  • internal/mod/zip: make all tests parallel by @mvdan in b004dd619d6116f44504d9e70d7825b5950860e4
  • internal/mod/zip: remove duplicate test case by @mvdan in 6c51cf031ddc78dd1e7a03803c960714fbe0125a
  • cue/load: make Config.Registry an ociregistry.Interface by @mvdan in fefeb36c61ab48713b1f0e6a3fce2a51ea525cc0
  • internal/registrytest: rewrite in terms of io/fs by @mvdan in 5f1904248b197468f29247c9f1b4c1476f87c3c2
  • internal/registrytest: move from cue/load/internal by @mvdan in 633874c5b3f790df51cb1837b9ae89ede1b57300
  • internal/semver: copy from golang.org/x/mod by @rogpeppe in a9a6965188f751fca54251b803dfe4883c1f42bc
  • internal/cueexperiment: parse CUE_EXPERIMENT by @rogpeppe in b4583dee4fdeae5ed23050769fa61f7fba0fb465
  • cue/load: update for OCI modules by @rogpeppe in b951b070be0ce9c926120882cdc0bdf8f72a9d06
  • internal/mod/modregistry: new package by @rogpeppe in 3c368d38b348fc25afb40f415f4efe9e98749c1f
  • update testscript so that it propagates GORACE by @mvdan in e3d42af5bd23a03d4e72e04d48f2581eb3eff772
  • cmd/cue: do not ignore Encoder.Close errors on export by @mvdan in f3a515e7b4a59bc636a00f07f5648168de503df0
  • cmd/cue: add more test case for exporting to a filename by @mvdan in 388f9a1caad3ee4585cfb9f5f87f584e97885a66
  • internal/ci: set GORACE=atexit_sleep_ms=10 for go test -race by @mvdan in cbdd996110a9c9068cde7187ddd09744efeb138a
  • internal/core/export: fix a few staticcheck warnings by @mvdan in 692361740f70eec5195b2756b21fe8e04c5bbc13
  • cmd/cue/cmd: remove a few unused parameters by @mvdan in 2f6b27b2472975f3de10634e7d3e0544c66b37fc
  • go.mod: update a few dependencies by @mvdan in c08344aa68c39de95b639bfd31ff79e29dc01573
  • cue: simplify the reflect checks in Value.Decode by @mvdan in 8709d8aa900927e4eacd464e17e63b6fc0661937
  • cue/ast/astutil: use generics to remove some reflect by @mvdan in b8cb9a46f7f268ef6ec36bfaaf965ed9f51e559c
  • cue/load: use tdtest for TestLoad by @rogpeppe in 7389fe97edb59b21716a85afd2ac255236a7d6a1
  • internal/tdtest: clean filenames before comparison by @rogpeppe in 28f34a272fc369740d5b053075457ad0345790d0
  • internal/cuetxtar: report full result for cuetxtar test failures by @rogpeppe in bfa250d1086f07fa8a4baa63dd03ea38e038e1a6
  • internal/mod/modfile: new package by @rogpeppe in 551fe6886c4fa607524a403291de287ce82e0d89
  • internal/mod/module: improve error message by @rogpeppe in 0e9584387f3fa0fa6b0a5c509d75c0088481df96
  • internal/mod/zip: adapt to CUE semantics by @rogpeppe in 3142030a06aef0adcc3341c593b80e97ca2cb5d9
  • internal/mod/mvs: adapt to CUE semantics by @rogpeppe in 4eca0c73eca109a4fde85fca7b5eac8954c7dfca
  • internal/mod/mvs/internal/...: remove ignore build tags by @rogpeppe in a1024191e06c585b69b28f6b2b2ae0af32397ab8
  • internal/mod/module: adapt to CUE semantics by @rogpeppe in 38cf584ceb46969d12abfa747f7346182f610a61
  • internal/mod/mvs: copy from cue/load/internal/mvs by @rogpeppe in 204665cebd9623467e6f53cada8e563829ecfeb6
  • internal/mod/module: split module.go by @rogpeppe in c6e91b174573d2232eb8e992831e8f0cfcdc6a4e
  • internal/mod: copy files from golang.org/x/mod by @rogpeppe in 6f5b370749617c1fa4658db5a1349b03c5fc43fa
  • cmd/cue: update the list of output formats by @mvdan in 42ae8e4594a203000488dbaa1d143574fb8588c6
  • cue: minor drive-by cleanups by @mvdan in a44c805cc6f93e9fb32ef6ea81c2b1442c5b39ad
  • all: fix two minor printf bugs spotted by staticcheck by @mvdan in 7b49758cb5b305cf842602d40d37997164d28dee
  • all: fix issues spotted by nilness by @mvdan in 382449b1e3b51c7b0c5e14b86bbac8283272dde4
  • pkg/math: reuse Ln2 and Ln10 in Log2E and Log10E by @mvdan in fe2f216d70841f3348917c42f5cb4dac4709cb70
  • pkg: teach gen.go about go/types by @mvdan in 209117092490050ccd13493aad9de90b4905cc61
  • pkg: swap go/build for go/packages in gen.go by @mvdan in e9a412d85fa18ab76fce03608c431ddee6472a78
  • bump golang.org/x dependencies by @mvdan in bf3ac2030ee9bd0f0b8154c66064562896629689
  • all: clean up some TODOs for old Go versions by @mvdan in 106fc3ad9c256f97830d87c116ce0b415e52651c
  • cue: make use of Go 1.20+ APIs by @mvdan in fae9c820255e1fe81c29916d7c0d725fe4eee076
  • internal/core/adt: change slice type of notify by @mpvl in 3165a5e1aaecd3a76fa44ec0a3dac53801355101
  • internal/core/adt: rename node to vertex by @mpvl in 0b96e3b951d054d3e5e4c84216f0c92f1457bdab
  • internal/cuetxtar: allow using a fallback golden set by @mpvl in 826f28c9a0d421ec6ff60522927e8829678676b9
  • internal/core/adt: hoist the test body of TestEval by @mpvl in ca254d6a1346cb6e29ee2c16a6db9f126a9cfde2
  • internal/core/adt: add new closedness implementation by @mpvl in 5062118be0f0f3f39839fadd7e41cced4f64b4db
  • internal/tdtest: make function detection more robust by @mpvl in 49728f709d7a171479c352a8fffe9828e70a896c
  • internal/tdtest: mimic replacement of testing.Run in Select by @mpvl in 1763cea8d6b4575cd1dc33b4b13528ef7345496a
  • cue/load: add package import cycle error by @bozaro in 220b44e973eff9d41f2067499f20a12b6a0a6f29
  • cue: decode empty list as empty slice instead of slice-typed nil by @bozaro in 66ebe0ff3031096da45b79a2d18c5c66af22b16e
  • internal/core/adt: fix nil pointer dereference by @bozaro in 3286ead90d0823e5011da249e40672d65664863f
  • pkg/math: fix Log2E and Log10E constant expressions by @mvdan in a1038f7c2f79327da4f0b57f24d87fde2007560d
  • pkg/math: add tests which show the API constants by @mvdan in 63a425690f351c3bdd1a0f470f4ff783f4372c09
  • all: add Go 1.21, drop Go 1.19 by @mvdan in 3a101baedd640341274ef711d1cf71b097c7e2c4
  • all: minor wins with strings.Cut and utf8.AppendRune by @mvdan in 72ba0660acbeff99881dd1f705ae4557c56e308a
  • cmd/cue: fix up fmt_multi comparison by @mvdan in d4d109e5cd976a8279a6338cdee1cec3b9981e12
  • encoding/gocode: don't require output to be stable by @mvdan in 3bf3dbd655284d3628399a83a703f4849b5f9374

v0.7.0-rc.1

6 months ago

This release comprises a number of bug fixes and small improvements, as well as more ground work for Modules, WebAssembly, and the core evaluator's performance refactors.

Note that v0.7 was originally planned to center around the core evaluator's performance improvements. Since those refactors are not ready, and we have other fixes and improvements we want to release, we have slightly altered the release plan accordingly. We will share more details on our next community call.

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. unity 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.

Thank you to @SteVwonder, @bozaro, @cedricgc, @howardjohn, @mpvl, @mvdan, @myitcv, @nickfiggins, @rogpeppe, @rudifa, and @uhthomas for contributing to this release!

And a special thanks to all who joined the recent contributor office hours calls on our community calendar, as well as our #contributing channel on Slack! Thanks to their involvement, more issues can be investigated and fixed each release.

Go API

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

CL 1172105 fixes a regression introduced in v0.6.0 where calling Iterator.Selector.Index while iterating over a list would incorrectly panic.

CL 1167597 fixes cue/load so it now errors on package import cycles, following the spec.

CL 1167647 adjusts cue.Value.Decode to decode empty CUE lists into a Go interface{} as a non-nil empty slice.

CL 547369 teaches cue.Value.Decode how to decode values which aren't entirely concrete into a Go type by using cue.Value as part of the destination type.

Language

There are no changes to the language in this version.

Spec

CL 1171216 fixes two errors in a dynamic fields example.

Core Evaluator

CL 1172014 disallows the direct use of unary operators with basic types, since they would result in confusing bounds which seemed incorrect.

CL 1172013 fixes a closedness bug where close did not properly apply when used inside definitions.

CL 1172874 fixes a panic in cue export introduced by v0.6.0.

Encoders

CL 1172314 teaches encoding/protobuf to follow the field_behavior annotation marking a field as either optional or required when decoding.

Builtins

CL 1172991 adds a mustSucceed boolean parameter to tool/exec.Run, which can be set to false to allow a command to fail and set its own field success to false.

CL 557322 fixes the values of math's Log2E and Log10E constants, which were being incorrectly truncated.

cmd/cue

CLs 1170966 and 1171302 fix a number of issues in cue fmt (and by extension the cue/format package), resulting in better and more consistent formatting of CUE files.

CLs 1171292, 1171015, 1170115, and 1171971 implement a variety of improvements and bug fixes for cue get go.

CL 1172017 fixes a number of issues with the line and column positions reported by our YAML decoder, which could result in weird CUE formatting when using cue import or misleading positions being shown to the user.

CL 1169709 increases the robustness of cue export -o, which in some situations could ignore file errors or incorrectly replace an existing file without the -f flag.

CL 1173072 fixes a panic when using cue import --list with empty YAML input.

CL 1168436 updates the cue export documentation to add the missing cue and binary supported export formats.

Modules

A number of changes are included to support an experimental implementation of the proposed modules and package management support. These aren't enabled by default, and will be announced soon.

Full list of changes since v0.6.0
  • cmd/cue: fix panic when importing empty files as a list by @uhthomas in b36b4775e6a890899c460f62f8e59b4182d63c2a
  • internal/core/adt: change semantics of unary_op(basictype) by @mpvl in e1ceed434f211be0c6bdd3d8fea767765b1b0b92
  • internal/core/adt: fix closedness bug by @mpvl in 886eefd407ed1566dc32f9735a04e990e6c1df84
  • internal/core/adt: add test to prepare for fix by @mpvl in 145764d8f94e9fd19e96f74cc220b415a234ffb8
  • CONTRIBUTING: mention the Slack channel and office hours calls by @mvdan in 16a0cdaa5912852e91b9e75d9e4b533fed87f720
  • pkg/tool/exec: add a Run.mustSucceed parameter by @nickfiggins in 10c47964349a308d3e05f52c99aa996ad06d4315
  • cue: explicitly document values are not safe for concurrent use by @mvdan in d805c22e75cd4007a029f17a735e5992c741da16
  • internal/ci: bump Go and GoReleaser for v0.7.0-rc.1 by @mvdan in 8f88dcb3b3ef0c4dc120e70b9303c60a1e085d8d
  • internal/slices: move from internal/mod/mvs/internal/slices by @rogpeppe in 0e51dbb4ea0014f8526bd61ac418df38316d67fd
  • internal/mod/internal/par: move from internal/mod/mvs/internal/par by @rogpeppe in fe0e04a55865b1181efeb2a3f9e238892a51bb4e
  • internal/registrytest: do not check that dependencies exist by @rogpeppe in 99bdbadb556e31df01aff775dff5cac49861120f
  • internal/mod/modimports: new package by @rogpeppe in 79033c20d13a321eb4975b3b9848f16f0e06a2ba
  • internal/core/export: fix a recent nil pointer regression by @rudifa in 141925a62c4b579ff6e7399f5948da4935fddb94
  • internal/core/adt: use state directly by @mpvl in bba22633a71f82f653dc63fb71e9c8d79ce55104
  • internal/core/adt: expand on permutations for test by @mpvl in 596fdc957640dc545b9787b0f6140aa03b0b964d
  • internal/cuetxtar: include diff between test and fallback test by @mpvl in 6774d0df6229412fb683fbc3ba7d1a9502229267
  • internal/txtarfs: factor out from registrytest by @rogpeppe in 265a7a0fb42980582f6033615ff82dfe4e1a110b
  • internal/cueimports: export API and fix for CUE syntax by @rogpeppe in 47d6dcedde5c8c8623758044eb247c172ba4e4bf
  • internal/cueimports: copy code from cue/load by @rogpeppe in 9e5578368fabaae51df0fbaa3bf5d38d3f88ff89
  • cue/load: remove unused functionality by @rogpeppe in b727189d3a09026e16023b6ac239e27adb7e0bae
  • all: replace html/template by text/template by @mvdan in 361ae4f49aefbeb99a99c683bb7ba34cfbd7457a
  • encoding/protobuf: support field_behavior "required" option by @howardjohn in 80b0eee3ff373caa279e9758c79489a7a967397e
  • cmd/cue: fix incorrect position in yaml import by @uhthomas in d97b0c3bc6e57a7e0409c0fdf5f4508a6ed6ce1e
  • all: adopt .gitignore for new delve binary naming by @mpvl in 68e9d5d75f9241a449fb69856d421566d0d533d7
  • internal/core/adt: make ListMarker Src an expression by @mpvl in f59894c3dd9857b5bdacce838ce4d64ef544ac38
  • internal/core/adt: changes needed for new evaluator by @mpvl in fb88bebcae967c3fdc14df9d5b35cbbb30ca0399
  • cue: don't panic on Iterator.Selector.Index with lists by @mvdan in 9dd0f82df8e8608920b4044c40d977115a5cc95b
  • cue: allow top level JSON marshalers in EncodeType by @rogpeppe in 8f796bf3b001867fa1fbd9b33de218c27452e6d1
  • cue: support decoding into cue.Value fields by @rogpeppe in b25fc05e59e6c04614617b59ce082091219a301a
  • internal/mod/mvs: discard copied par tests by @mvdan in 4e301018fa52dde2ec1c2c9cadb7470297e27ef9
  • CONTRIBUTING: fix repo reference rendering by @cedricgc in 7a4ea8668a03d0cb2458ee264e5f582a2d5107e5
  • internal/e2e: make unique module names more robust by @mvdan in a404c897f3615a77178e2ddbe0b07261622385a3
  • cmd/cue: support optional comments in get go by @uhthomas in 67ea9cf9c39a6cc55da357541019886b1ed0beaa
  • cmd/cue: ignore complex types in get go by @uhthomas in 112b0b28a888e2a74016adc1704e0aef7b362870
  • pkg/internal/builtintest: don't print superfluous newlines by @uhthomas in 8b32c491294c895394d38eeb67c8f7ab366c4a78
  • internal/tdtest: document how the name field is used by @rogpeppe in deab3074bb95bb399075ad07e60b59cbef61a908
  • internal/e2e: add a test for a private github repo by @mvdan in 4d2ba88849b660e30df921aa1d6f44d4c75ed8d8
  • internal/ci: add gcloud auth to the e2e tests by @mvdan in 95a88a547314e9c1f6351ece97ddf841ac7d4a67
  • CONTRIBUTING: clarify two sections by @cedricgc in d947a69cab19477d99355a1cefb9d2291197ace5
  • internal/e2e: add a "cue mod upload" end-to-end test with gcloud by @mvdan in a060f85ddb5d9a9b020c2cf1f7dfc4daa24f7f98
  • internal/e2e: rename existing testscript and add a summary by @mvdan in 4dba8ddfd715d57902ff050a340968237f0107f6
  • internal/e2e: tweak how we use secret env vars by @mvdan in d3efde7804e30570f0e6ba27562aa778934bc30e
  • internal/mod/modfile: add copyright message by @rogpeppe in f9c8d98d1c31cbf34e376eb3eb78984b24476136
  • cmd/cue: cue mod upload command by @rogpeppe in ca2065618e2e277d3dfe22d6e0993f336203e481
  • internal/ci: enforce vet and mod tidy on all modules by @mvdan in 2ae1a9e8c909852e881f6992c38885d0b450c998
  • internal/e2e: run go mod tidy by @mvdan in 8b9597173bb25c9274fb75f307adb5963db5bd94
  • cue/load: do not format registry as a string by @rogpeppe in 4fd631d10349ca4dda92b360dc4d7399b9c493e2
  • internal/mod/modzip: rename from internal/mod/zip by @rogpeppe in 5365838c091eb3effba5cc320612bb19a48b027b
  • cmd/cue: wire up OCI authorization by @rogpeppe in b2ac3f7660e2706fdcfa4300f32c781ea6c1dbd0
  • internal/registrytest: remove _registry remnants by @rogpeppe in 273602f2266fd12b2aa6f42a6f3119c1294b7fb9
  • internal/ci: only run e2e tests in source repo by @myitcv in b15fcb039af15018e423f4700a4de576f7e4607b
  • internal/ci: test internal/e2e on protected branches by @mvdan in d72997f50005d553ae24398271767153469bdc9a
  • cmd/format: be consistent with whitespace in lists by @uhthomas in d70007c116281516ed051982a9897013119df417
  • internal/e2e: first version of the end-to-end module tests by @mvdan in 8c826bcf6c20ec01d1af32cfb9785ca4f8f87905
  • cmd/cue: support type parameters in get go by @uhthomas in 3b4e03d597532c90c34cee5c3c17b5e109999d35
  • cue: add more godoc links by @mvdan in 286dfcb833fc924aa0582f18efeb1e95618bc73c
  • cmd/cue: support unsafe pointer in get go by @uhthomas in 05ceba661e39f78c91a35977abd54418c75a2148
  • spec: fix two errors in the dynamic fields example by @SteVwonder in 200a8ecac56180f662bed17a9d4d510f9f243f2d
  • README: add a direct mention of the community calendar by @mvdan in 8a98ac0854cc7df6dd8173bdebe3bb27964f11cc
  • cmd/cue/cmd: wire up modmux by @rogpeppe in ac1b4339f0f214548fbce582af257fdad6891426
  • internal/mod/modmux: new package by @rogpeppe in 8e24597e6eacfb5785207093c0d311c43a403a3f
  • cue/format: indent list elements correctly by @uhthomas in eddccfc72316a648971d9684ac5dcd003ee26385
  • internal/registrytest: do not assume subdirectory by @rogpeppe in f89234510378b557e4c488a5bacc9729e5ce10dc
  • internal/mod/modregistry: remove error return from New by @rogpeppe in 1e26aa2a80a24425ad97e8c454eb178487b0fd1f
  • internal/mod/modresolve: new package by @rogpeppe in 2a7d1d6653e525ada6bb25c200dd94c6f81283db
  • internal/mod/module: add CheckPathWithoutVersion by @rogpeppe in c6da76812209649c4734cb6a4da842170b6b884a
  • cue: make use of some godoc links by @mvdan in 63307bd17387651f410e857863af7d8be58bc109
  • internal/registrytest: support prefix by @rogpeppe in 6c71b2c90d63846f2983deb07102253298a568c0
  • cmd/cue/cmd: support CUE_REGISTRY by @rogpeppe in d5c0745eb65196ff1739d1ab5bf5af455c7d2422
  • update ociregistry dependency by @rogpeppe in a43792cc30bd3d9bff2b2f4c73469b8faa2f8c48
  • internal/mod: kick off WIP doc to track FAQs, points to document by @myitcv in b664f0cd3918390b665a16090734a358272a35a3
  • pkg/path: use a subtest helper to test for each OS value by @mvdan in 1227a83010506ae4532ecca051a035c982650830
  • internal/core/adt: avoid chatty tests by @mvdan in 55c6db6f8301bdd3b273b5d4f2f4fa350c9301ea
  • internal/mod/zip: skip SizeLimit tests with -race by @mvdan in 91d976682fb9575a8fb750b7475844aaa8f6067e
  • internal/mod/zip: silence "err value not used" warnings by @mvdan in 665d19a74cdd71b1cb435812592f99561eda3fc8
  • internal/mod/zip: use testing.T.TempDir by @mvdan in fd8d5f905414cf31c30e2d5bc7c988e7b0a5a9dd
  • internal/mod/zip: make all tests parallel by @mvdan in b004dd619d6116f44504d9e70d7825b5950860e4
  • internal/mod/zip: remove duplicate test case by @mvdan in 6c51cf031ddc78dd1e7a03803c960714fbe0125a
  • cue/load: make Config.Registry an ociregistry.Interface by @mvdan in fefeb36c61ab48713b1f0e6a3fce2a51ea525cc0
  • internal/registrytest: rewrite in terms of io/fs by @mvdan in 5f1904248b197468f29247c9f1b4c1476f87c3c2
  • internal/registrytest: move from cue/load/internal by @mvdan in 633874c5b3f790df51cb1837b9ae89ede1b57300
  • internal/semver: copy from golang.org/x/mod by @rogpeppe in a9a6965188f751fca54251b803dfe4883c1f42bc
  • internal/cueexperiment: parse CUE_EXPERIMENT by @rogpeppe in b4583dee4fdeae5ed23050769fa61f7fba0fb465
  • cue/load: update for OCI modules by @rogpeppe in b951b070be0ce9c926120882cdc0bdf8f72a9d06
  • internal/mod/modregistry: new package by @rogpeppe in 3c368d38b348fc25afb40f415f4efe9e98749c1f
  • update testscript so that it propagates GORACE by @mvdan in e3d42af5bd23a03d4e72e04d48f2581eb3eff772
  • cmd/cue: do not ignore Encoder.Close errors on export by @mvdan in f3a515e7b4a59bc636a00f07f5648168de503df0
  • cmd/cue: add more test case for exporting to a filename by @mvdan in 388f9a1caad3ee4585cfb9f5f87f584e97885a66
  • internal/ci: set GORACE=atexit_sleep_ms=10 for go test -race by @mvdan in cbdd996110a9c9068cde7187ddd09744efeb138a
  • internal/core/export: fix a few staticcheck warnings by @mvdan in 692361740f70eec5195b2756b21fe8e04c5bbc13
  • cmd/cue/cmd: remove a few unused parameters by @mvdan in 2f6b27b2472975f3de10634e7d3e0544c66b37fc
  • go.mod: update a few dependencies by @mvdan in c08344aa68c39de95b639bfd31ff79e29dc01573
  • cue: simplify the reflect checks in Value.Decode by @mvdan in 8709d8aa900927e4eacd464e17e63b6fc0661937
  • cue/ast/astutil: use generics to remove some reflect by @mvdan in b8cb9a46f7f268ef6ec36bfaaf965ed9f51e559c
  • cue/load: use tdtest for TestLoad by @rogpeppe in 7389fe97edb59b21716a85afd2ac255236a7d6a1
  • internal/tdtest: clean filenames before comparison by @rogpeppe in 28f34a272fc369740d5b053075457ad0345790d0
  • internal/cuetxtar: report full result for cuetxtar test failures by @rogpeppe in bfa250d1086f07fa8a4baa63dd03ea38e038e1a6
  • internal/mod/modfile: new package by @rogpeppe in 551fe6886c4fa607524a403291de287ce82e0d89
  • internal/mod/module: improve error message by @rogpeppe in 0e9584387f3fa0fa6b0a5c509d75c0088481df96
  • internal/mod/zip: adapt to CUE semantics by @rogpeppe in 3142030a06aef0adcc3341c593b80e97ca2cb5d9
  • internal/mod/mvs: adapt to CUE semantics by @rogpeppe in 4eca0c73eca109a4fde85fca7b5eac8954c7dfca
  • internal/mod/mvs/internal/...: remove ignore build tags by @rogpeppe in a1024191e06c585b69b28f6b2b2ae0af32397ab8
  • internal/mod/module: adapt to CUE semantics by @rogpeppe in 38cf584ceb46969d12abfa747f7346182f610a61
  • internal/mod/mvs: copy from cue/load/internal/mvs by @rogpeppe in 204665cebd9623467e6f53cada8e563829ecfeb6
  • internal/mod/module: split module.go by @rogpeppe in c6e91b174573d2232eb8e992831e8f0cfcdc6a4e
  • internal/mod: copy files from golang.org/x/mod by @rogpeppe in 6f5b370749617c1fa4658db5a1349b03c5fc43fa
  • cmd/cue: update the list of output formats by @mvdan in 42ae8e4594a203000488dbaa1d143574fb8588c6
  • cue: minor drive-by cleanups by @mvdan in a44c805cc6f93e9fb32ef6ea81c2b1442c5b39ad
  • all: fix two minor printf bugs spotted by staticcheck by @mvdan in 7b49758cb5b305cf842602d40d37997164d28dee
  • all: fix issues spotted by nilness by @mvdan in 382449b1e3b51c7b0c5e14b86bbac8283272dde4
  • pkg/math: reuse Ln2 and Ln10 in Log2E and Log10E by @mvdan in fe2f216d70841f3348917c42f5cb4dac4709cb70
  • pkg: teach gen.go about go/types by @mvdan in 209117092490050ccd13493aad9de90b4905cc61
  • pkg: swap go/build for go/packages in gen.go by @mvdan in e9a412d85fa18ab76fce03608c431ddee6472a78
  • bump golang.org/x dependencies by @mvdan in bf3ac2030ee9bd0f0b8154c66064562896629689
  • all: clean up some TODOs for old Go versions by @mvdan in 106fc3ad9c256f97830d87c116ce0b415e52651c
  • cue: make use of Go 1.20+ APIs by @mvdan in fae9c820255e1fe81c29916d7c0d725fe4eee076
  • internal/core/adt: change slice type of notify by @mpvl in 3165a5e1aaecd3a76fa44ec0a3dac53801355101
  • internal/core/adt: rename node to vertex by @mpvl in 0b96e3b951d054d3e5e4c84216f0c92f1457bdab
  • internal/cuetxtar: allow using a fallback golden set by @mpvl in 826f28c9a0d421ec6ff60522927e8829678676b9
  • internal/core/adt: hoist the test body of TestEval by @mpvl in ca254d6a1346cb6e29ee2c16a6db9f126a9cfde2
  • internal/core/adt: add new closedness implementation by @mpvl in 5062118be0f0f3f39839fadd7e41cced4f64b4db
  • internal/tdtest: make function detection more robust by @mpvl in 49728f709d7a171479c352a8fffe9828e70a896c
  • internal/tdtest: mimic replacement of testing.Run in Select by @mpvl in 1763cea8d6b4575cd1dc33b4b13528ef7345496a
  • cue/load: add package import cycle error by @bozaro in 220b44e973eff9d41f2067499f20a12b6a0a6f29
  • cue: decode empty list as empty slice instead of slice-typed nil by @bozaro in 66ebe0ff3031096da45b79a2d18c5c66af22b16e
  • internal/core/adt: fix nil pointer dereference by @bozaro in 3286ead90d0823e5011da249e40672d65664863f
  • pkg/math: fix Log2E and Log10E constant expressions by @mvdan in a1038f7c2f79327da4f0b57f24d87fde2007560d
  • pkg/math: add tests which show the API constants by @mvdan in 63a425690f351c3bdd1a0f470f4ff783f4372c09
  • all: add Go 1.21, drop Go 1.19 by @mvdan in 3a101baedd640341274ef711d1cf71b097c7e2c4
  • all: minor wins with strings.Cut and utf8.AppendRune by @mvdan in 72ba0660acbeff99881dd1f705ae4557c56e308a
  • cmd/cue: fix up fmt_multi comparison by @mvdan in d4d109e5cd976a8279a6338cdee1cec3b9981e12
  • encoding/gocode: don't require output to be stable by @mvdan in 3bf3dbd655284d3628399a83a703f4849b5f9374

v0.6.0

10 months ago

The main focus of this release is the introduction of required fields, as well as fixing a number of issues and regressions introduced in the v0.5.0 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 terms of performance. unity 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.

Thank you to @4ad, @Abirdcfly, @alexandear, @chee-zaram, @eraserhd, @ghostwheel42, @joanlopez, @jpluscplusm, @kcburge, @mpvl, @mvdan, @myitcv, @rogpeppe, @toshi0607, and @zeithaste for contributing to this release!

API

CL 543335 adds arch to set of injectable system variables understood by cue/load. The text at cue help injection explains how this in more detail.

CL 552142 adds support for zero values in cue.Value.Float64, which has the effect of fixing the error when attempting to use strconv.FormatFloat with a zero value.

CL 548783 fixes a long-standing bug to make HTML escaping in JSON an opt-in. This means that cue export now respects the --escape flag when set, and encoding/json only escapes HTML when HTMLEscape is used.

Language

Required fields

The main focus of the v0.6.0 release is the introduction of required fields.

CUE already supports the “optional field constraint”, denoted foo?: value.

Required fields add a “required field constraint”, denoted foo!: value, which is like foo?: value, but requires a regular field be provided for foo (a field foo: without !: or ?:).

We refer to optional field constraints and required field constraints collectively as “field constraints”.

As a general rule, all data and data templating should be defined with regular fields, whereas schemas would be defined in terms of field constraints. Of course, CUE being CUE, mixing these two fields is allowed: this rule is not a restriction but suggested as a matter of style and proper usage.

Here are some examples of how exclamation marks can be used to express things that were previously not possible.

#Def: {
    kind!: "def"
    intList!: [...int]
}

Using required fields can also result in better error messages. Consider this schema:

#Person: {
    name: string
    age?: int
}

Note that this is non-idiomatic, because our new guidelines suggest schemas should only be defined in terms of field constraints, but we will use this for illustration purposes.

Now consider this usage of #Person:

jack: #Person & {age: 3}

In data mode, the error message here is currently jack.name: incomplete value string, which does not provide much actionable information to the user to help them fix the problem.

Now consider how #Person looks with required fields, idiomatically only using field constraints:

#Person: {
    name!: string
    age?:  int
}

jack: #Person & {age: 3}

Now the error message reads:

jack.name: field is required but not present

which more closely reflects the underlying problem..

This error could be resolved by adding jack: name: "Jack".

For more details and background on the change, please see the original required fields proposal.

Other changes

Whilst it should not be a breaking change from a CUE perspective, we have upgraded to use github.com/cockroachdb/apd/v3. We have also increased apd.Context precision from 24 to 34.

CL 551207 adds support for making dynamic fields optional or required. For example, the following is now possible:

x:	"y"
(x):  "foo"
(x)?: "foo"
(x)!: "foo"

and yields:

x: "y"
y: "foo"

CL 546886 removes support for old-style :: definitions. This also includes deprecation support. In a similar vein, CL 547011 removes the last vestiges of <foo>: T. This was once the notation for pattern constraints.

Spec

Various bug fixes, with special thanks to @nicuveo for raising many of these.

Builtins

The following four functions have been added to the net package:

  • PathEscape
  • PathUnescape
  • QueryEscape
  • QueryUnescape

Thanks to @eraserhd for this change.

CL 549087 reimplements pkg/list.Sort. The resulting reduction in the number of allocations and other work gives rise to a ~80% reduction in running time against CUE benchmarks.

cmd/cue

CL 547212 improves the documentation for the -l flag passed to cue import. This addresses a frequent point of confusion in questions to GitHub Discussions and on Slack.

CL 550616 fixes cue get go to respect the --exclude flag for constants. This makes it possible to (for example) exclude all unexported identifiers from a cue get go run.

CL 555576 fixed an important bug where cmd/cue vet was not properly consuming all input data.

CL 556526 fixed a bug where CUE files beginning with an underscore were not being loaded when explicitly given as filename arguments.

WebAssembly (Wasm)

We have added preliminary support for Wasm. Users can compile code from any language and toolchain that supports Wasm into plugins that are dynamically loaded by CUE. Users can then call and use functions from these Wasm modules, just like they can use standard library functions.

See the documentation at cuelang.org/go/cue/interpreter/wasm to learn more about Wasm and its current limitations.

Changelog

Expand for the full changelog
  • internal/core/dep: always introduce Environment for Comprehension Value to fix panic by @mpvl in 99e8578ac45e5e7e6ebf25794303bc916744c0d3
  • internal/core/dep: adapt Recurse to mimic dep.Visit by @mvdan in 97d7109df4d03e7ecc77daa12dbc8b6a247e4d37
  • internal/ci: use cue-lang/cuelang.org workflow_dispatch for tip by @myitcv in 33b73930b8fc8a719a88978be0b7e019ba34e247
  • cmd/cue: fix regression when injecting vars with cue cmd by @mvdan in da3ee7dc7b27de85bbfb0a4104dfb22bcb18ef68
  • internal/core/adt: lets of comprehensions are multi lets by @mpvl in 43b4674898df7e2e8758ccb6154041a98e321e40
  • internal/core/adt: always mark let in comprehension as "complete" by @mpvl in 5123737983654d143151b47c1b5c67ed2a7bcf6c
  • cue/ast: clarify what is a valid identifier by @mvdan in c4ced5ef6bc322a12fbeaceb9c79a8cda15a0c50
  • internal/core/adt: find late-stage conflict errors by @mpvl in 0c48837de759df5b78a02696e2401267cceb6117
  • internal/core/adt: add tests to fix 2481 by @mpvl in d3444e38a7582138aee3f25188fc3595acc61a49
  • internal/core/adt: fix stack overflow with comprehensions by @mpvl in 33071c0cb767cc1d37a5da6b164dc16d564ca24b
  • deps: upgrade to go1.20.6 for release builds by @myitcv in 538eb9ca7f52f73cfa17c69a44eaad368ecd94c5
  • internal/core/compile: reject "_" as an alias name by @mvdan in bcbe967fdd1d26bc138092d9d6a36e28c55940d7
  • all: remove a few more unused bits of code by @mvdan in c8e51a5cb6fc504db363a9163baea0f76406e8a4
  • internal/core/dep: prevent passing "empty" vertices to tools/flow by @mvdan in c3eda1d599df106ca6562041384b3f6a9bd2dc36
  • internal/core/adt: do not delay processing of fields by @mpvl in e7cfb50772304833aaf8ac4471aa99638fe1a5a6
  • internal/core/adt: add tests for upcoming issues by @mpvl in cabc1dbb9f31f9b1845987bfdfd5b59f02fc5d7c
  • CONTRIBUTING: fix references to the old Unity repo by @mvdan in 23e265deab3833cf1aa5ddb8a5c2662da6071fb5
  • cmd/cue: print returned error by @mpvl in 450ff90e9a1e2e656e6e854de9c7e6e5658d9791
  • deduplicate content between README and CONTRIBUTING by @mvdan in 4c48ceec607f9e5f5b73caa9828c58ad62f2b344
  • move doc/contribute.md to CONTRIBUTING.md by @mvdan in db28ec6e85290adbb04e5115bd13923fde6a7446
  • readme: warn new contributors not to use SSH auth by @jpluscplusm in f4c563924512cf3f4f4e2af61042b4fcf948c17e
  • internal/core/adt: pass state to addList by @mpvl in b38aecec7f654e53ebd9864c4a21d4244d89ad48
  • internal/core/adt: set scalar more proactively by @mpvl in ab15bb818b04de45c9aeacb09238ff7ec89790c4
  • internal/core/adt: better error message for cycles by @mpvl in 5e84a6d2b82143d124ff95965df206047f80ce88
  • internal/ci: count number of Signed-off-by lines by @myitcv in 4ba1b15d0c93ab0fd7c1a6d400ff5d7e4f0ae203
  • internal: remove a few unused APIs by @mvdan in 1c1a7b3aff0fa09cd6bc8dbe482f0d4d82f1731a
  • cue/load: fix Instances race by @rogpeppe in c10d7cbc34a84f42b50881a66f8b7c7c8d162cdd
  • cue/load: allow _*.cue files when explicitly listed by @myitcv in b16f6ceecac7433917ebfee1188e35846520530e
  • internal/core/dep: fix recursive let processing by @mpvl in ca1f8127635bce3844e59b49226cc48bf6b426ec
  • internal/core/dep: add Dependency.Recurse by @mpvl in f6e49bdebce2873078d8ea43a05b6c1ec0d290af
  • internal/core/dep: prepare for public APi by @mpvl in 0554d4e559e12914b9f5802a416c55a307517e06
  • internal/core/adt: mark comprehension key as dynamic by @mpvl in d4fd1048f317c0a4223ad6ff1a2bbc12b63c9b8b
  • internal/core/dep: further improve dependency analysis by @mpvl in f51365488e8a346fe7f321ef62b75b3ab7be1559
  • internal/core/dep: add more tests ahead of changes by @mpvl in 202eb3e4e2fbce7b2aceefd79e7e5f93a8e7515f
  • cue: fix some low hanging fruit from staticcheck by @mvdan in 41b38fe201f40e13f0c23787a615e25f295ac609
  • all: replace godebug/diff with go-cmp/cmp by @mvdan in fa6e229ee207332781f8fe24ef85bc741583d546
  • encoding/gocode/gocodec: use different generic type signature by @rogpeppe in 1a98ee1ea6815d75755a5dac31c9f70545e775b4
  • internal/core/dep: add references and line in test output by @mpvl in 518bafa5689303c24983b0b9a956b22844ee2f93
  • internal: use Scanner API to parse attributes by @rogpeppe in 3400e742833b074b5d5cc270953d89ace4282b70
  • internal/core/dep: require importPath argument by @mpvl in 4fcf29cf0441993efe663cee541b111e634ab317
  • internal/core/dep: handle inline composite literals by @mpvl in 07ae1be79e90e9b9ccb8c5ef56ed946370878fa8
  • cue: report useful error for uninitalized Context by @mpvl in b8e2bf065d429850361118af699686ff485d1719
  • cue: add extra TestAttributeString test by @rogpeppe in 876af7abdcb89ded03e757daa910fac88753edd2
  • internal/core/export: avoid _#def if unnecessary by @mpvl in d112f640a325f8c55cdce7e98bab4c64e85ece57
  • cmd/cue/cmd: add test for issue 2251 by @mpvl in 19af1e97c8b10884c81626089b7974aa5cd1a4a0
  • cue/scanner: add Offset method and export DontInsertCommas by @rogpeppe in de9e76091eaed8733d3562ba5079c68f637ad0c0
  • cue: add more attribute tests by @rogpeppe in d8a0e26c63255eb2d198a55cf4f37a8457a845b3
  • internal: change attribute tests to be less implementation-specific by @rogpeppe in 7741d21b42f6961443d7ee0b0db4de723ad995fc
  • encoding/gocode/gocodec: allow cue.Context by @rogpeppe in 1e760956c098e7d116a78f8aa5b7d709309fedb5
  • internal/core/dep: add and modify some tests for issue 2247 by @mpvl in 24e8d560af649c79b8a032f2da9f45c2a2b80a97
  • internal/core/export: fix panic converting int label to identifier by @mpvl in 24f3fb310302afea643e19087876e7836afd2e5c
  • encoding/json: check that required fields are present by @mpvl in adbe80e41254ff45dfb3194f930db9898e1a7a47
  • pkg/encoding/json: add tests that needs to be fixed by @mpvl in 8df10344407d10b897a39e2278e3a9c7ea7bfe80
  • pkg/encoding/json: add more structure to tests by @mpvl in 6922e1455188fa1d8beaa06e670f43d0ed801afe
  • cue: document UnifyAccept by @mpvl in c0542747082c57cd87f75be60cdc07abd6367e61
  • internal/core/export: preserve original field aliases by @mpvl in 7be6224cbc4f99e9caee308a9218f11654dbb621
  • internal/core/compile: fix offset error in pattern alias by @mpvl in 914d64d5e0269439a92e7572acd77128b4156e44
  • internal/ci: consistently trigger Unity as porcuepine by @mvdan in a0510ac0d3518df4f0bd31cb214f0f8eedfc1deb
  • internal/ci: bump Go and GoReleaser prior to alpha.2 by @mvdan in b6a32da097fce5f9c960ad0a02da51efb18de2fd
  • correct misleading phrases in documentation by @chee-zaram in 0755dc86181966d7ab75af5c408765bcd3aaa5b6
  • internal/core/export: avoid panics on computed comprehensions by @mvdan in 6db2253ab586721682e96e86bfe1fb281fe8c46d
  • internal/core/adt: return from Accept earlier for hidden fields by @mpvl in c724eef0ca75447ba2dd99bfea849f1cea1b680b
  • cue/ast: fix staticcheck warnings by @mvdan in cc6b5449a737ef9ef9762713ce248fcff2671594
  • internal/core/adt: add missed error by @mpvl in 19749aaa866a3660833a108fb4fddda9446fc2a2
  • internal/core/adt: fail on missing required field in comprehension by @mpvl in a991bd624f86a3b018164c51e806884e9968a56c
  • cue: allow iterating hidden fields and definitions of embedded scalars by @mpvl in de44cab16e6b66e65e816a1c3627c9f891e6b747
  • internal/core/adt: add position for required field error by @mpvl in 452e1434fd2b6d3b06e3f45c1681da0085fed70b
  • internal/core/validate: allow required fields in definitions by @mpvl in 317f88d34ea1fdf4526fadabd68163e2d52ae870
  • cue/ast: support specifying required fields in NewStruct by @mpvl in 143268314d3247237ba67518a6d0958d1ec246aa
  • tools/flow: check cycle marker by @mpvl in 9a566ed5aecdd44f10941fcb41e949cde6367de8
  • spec: add definition for dynamic fields by @mpvl in 3a635fc7a746cef0abd6250de13f07092eee5518
  • spec: various fixes by @mpvl in e46324ef052b90aaf605aebea608fa147b2bf8dd
  • cmd/cue: properly consume all data input in vet by @mvdan in b22ec6a02e7c92fb125af262b1be4aa89790ad17
  • cmd/cue: add AllocBytes and AllocObjects to stats by @mvdan in 03d85b869149a1656ebd56a23adcc9941c70f294
  • increase apd.Context precision from 24 to 34 by @mvdan in 7bcbcd663ca0a7db50113b8f6a5a78150eeaa34b
  • update to cockroachdb/apd v3 by @mvdan in 47282232b4368f36621f6e4a3b0445bcc42afb9a
  • cue: add a "decimal" benchmark by @mvdan in f3be10a2114c5a97bdde29266cea8dc88e0daf0e
  • deps: switch to use quicktest instead of testify by @myitcv in 12908b32a9a74c40ee14cf69ab7221a94bbdafd3
  • cue/testdata: add regression test for #2244 by @mvdan in 442c023478e67a6dce28040b22a75d14f007edf8
  • internal/cuetest: remove support for CUE_LONG by @mvdan in cb461fd4741dcd9e621e0a53f1d2fe7b72c276bf
  • all: sed-replace all trivial uses of ioutil by @mvdan in f56ccf025c2e079c1b38a4acc801de0cf354dc34
  • pkg/path: remove unused code by @rogpeppe in ab48c0fd86c0cf5cd23f862fd180e284951034d1
  • encoding/protobuf/jsonpb: remove unused code by @rogpeppe in b2476bd08a39851483e8dfdb27808f1b4cd60d9b
  • encoding/protobuf: remove unused code by @rogpeppe in b41f26f767d0a740c0df04fa78096d8b05ab7473
  • tools/fix: remove unused code by @rogpeppe in 1f888b50dcfe0d78fcd7438c22df72e4fbd328d4
  • all: use strings.Builder in a few more places by @mvdan in 97cba0bd6973d31e6005b3bd98ac579b1f1816aa
  • internal/encoding: remove unused code by @rogpeppe in 251790edc0f6b73fe1dcd4fb41d408b0d962c179
  • encoding/openapi: remove unused code by @rogpeppe in 36645d1bff99dd9fe9c5f8f2991623fe169523e8
  • all: go fix to remove old build tags by @mvdan in 8868ae6fdf931de36973640b4bbc5fca5fc2722e
  • internal/ci: trigger Unity on master as porcuepine by @mvdan in 2148aed34464229e762289cbb8a7610f35e1ed81
  • internal/ci: remove cue-unity/unity from codereview.cfg by @mvdan in c341427c7ca4046d8b7cd364f397e699115d311a
  • internal/core/conver: make use of reflect.Value.IsZero by @mvdan in 5318af119014318463573df00609748837c2388a
  • internal/ci: further tidy up by @myitcv in 82f96c5e4073ea856efd29cb4153809ac2fb5c1d
  • cue/interpreter/wasm: add user-level docs by @4ad in 40fb30dfb67c0620b3af5a80ebd6d59a0335f990
  • cue/interpreter/wasm: add Wasm support for abi=c by @4ad in 0520a3f9e73e63d77e43c9b3a73c75982c15ee6d
  • internal/pkg: move pkg/internal to internal/pkg by @4ad in 88922d17d7d085de4397203bf34b889cd59077b4
  • codereview.cfg: add cue-unity-new by @mvdan in a670427406af7451da77cf477c0786d6f1b129c8
  • doc/tutorial: fix typo by @toshi0607 in 2304cb51d2aca3ab38f1e6db00cac8661dc16e46
  • cue/load: replace go-internal/semver with x/mod by @mvdan in 6c926983a43ebd32c5d8b582a3db2ffafb301cff
  • internal/cuetxtar: print error details by @rogpeppe in 80d6ea032057b40e405eefab6015e92bbc5cc2a5
  • tools/flow: support tasks inside slices by @rogpeppe in 6e0366f6541ab3b7a5882130fcac2e0a2b3566f6
  • internal/core/convert: split the cue tag commas after the last quote by @ghostwheel42 in 49a64f4c69a3fe3310a78126feb1600f6d46ed36
  • pkg/net: add Path{E,Une}sape and Query{E,Une}scape by @eraserhd in 9082446a50e982816bbe49a83b49fe1c92aeca7e
  • cmd/cue: refactor our use of cobra by @mvdan in 59080b65a5ba539bb3f3cb45d3346f39df67cf01
  • cmd/cue: do not defer closing files in fmt's loop by @mvdan in 7f79469d264a4be3a88dfef4036d8d6504de401c
  • cmd/cue: check all file I/O errors in fmt by @mvdan in 8c6d9ba359831b857958bd6b796d75d7b9ff2779
  • docs/tutorial: revert to using cue eval -i by @myitcv in 5e66c831d177d7fc98892dc95c82cf150a3c2fd0
  • all: move pkg/gen and internal/cmd/qgo to build-ignored files by @mvdan in bad36b2d8a19dd566a27e304407038abbe617968
  • internal/ci: use go1.20.3 for releases by @myitcv in 9db1b95606c3d393aafebe3eb159855e3790011c
  • internal/tdtest: use field name in default error message by @mpvl in 401cab2dcdb3e7ffeec482433bbeaf88fa3130b9
  • internal/core/adt: fix Definition closedness bug in API by @mpvl in c3c8eb70ab718f932bcbabbd4d4c6340681dbd5e
  • update txtpbfmt to drop indirect dependency on glog by @mvdan in 410eea11f49eb9c88ef0b07af16bad55b24ba7bb
  • internal/core/adt: fix NotEqualOp for lists with differing lengths by @mvdan in 6e185bb62a3ae3972b2aba33a650bc6722891483
  • cmd/cue: remove skipped test scripts for fixing old definitions by @mvdan in 9505e90092df6907cb584702a56521c26e8ddc47
  • all: make HTML escaping in JSON an opt-in by @mvdan in 48207fb5fbfd85784c0560ea32c559183b49f475
  • all: add tests to cover HTML escaping via encoding/json by @mvdan in 1aefd09c7951e4759299bf63e0be2b70432ea741
  • cue/build: remove context.Context field by @rogpeppe in 1932295afe5dc1753a99bf8cf616c2afc12eb653
  • cue/ast: fix IsValidIdent for _0 by @rogpeppe in 94223148d697b3beeaa1ec3ca5dc68a73cb9efcd
  • internal/diff: remove unused code by @rogpeppe in 9e222837e651d5e52360bd44d09a745faa3eca7e
  • cmd/cue/cmd: remove unused code by @rogpeppe in aa8c66f40728bef5b42558d696ab9b94737543f7
  • internal/core/adt: fix let closedness issue with API use by @mpvl in 731ddd9d79e7a714fff8dcb1f79112580921ce8b
  • internal/core/export: avoid introducing shadowing by @mpvl in 1c9a3b26939456a729de38c7e31a20f4f5693bb7
  • internal/tdtest: new table-driven test package by @mpvl in 102150dedd937090ffee149b1675ff1b0bef89cc
  • cue: more support for required fields for selectors by @mpvl in 0e1608456fd9df41b27d05bba7f97d25881bce63
  • internal/core: fail on missing required only when concrete by @mpvl in f85172a7916b26eb78123da685286b0a2e111384
  • cue: fail on required field in various cases by @mpvl in e7d7c6a7aa9ba8e2024a874431558c8e5ec4e8d5
  • internal/core/adt: add wrapper for inline Vertex by @mpvl in 071c4ab6df8df3731271b655b1bdc0b0733758d8
  • internal/core/export: always export required fields by @mpvl in d5dd9ec2fd17c3584806cc71c9b2633cd1276226
  • cue: remove field type by @mpvl in d05d9c1ec2a6fa505a6a4538180ddd71c0cf787b
  • cmd/cue: avoid loading the current package in cue help by @mvdan in 143b102b4fbcf3331c6f21f4222d59b06d41b270
  • all: remove duplicate words in comments by @Abirdcfly in d8c71fa18d885f4d4aa13e7dcd51d5de980687fc
  • internal/ci: fix cache eviction by @myitcv in 53d3bc715329847fc20b3d7a14ed13606649f0a0
  • internal/ci: address review feedback from CL 551352 by @myitcv in 06397b54764ab3de4788e0afb5e7898d81305e3c
  • cue: add support for zero values in Value.Float64 by @kcburge in 8d31dad6f551bedda23f1c9fdf1966bc86dec986
  • cue/load/tags: add arch to set of injectable system variables by @jpluscplusm in 752b8e4a3f019d36440bb85445df69fbec209b09
  • internal/ci: allow trybot workflows to be workflow_dispatch-ed by @myitcv in 09221a3ebc1dadbe75ffadf8263bdfca7a7fe293
  • internal/core/adt: required fields checked for closedness by @mpvl in 42580d5b27b9b66fe1d5cfed5e3ad4a3532c3c36
  • doc/ref/spec.md: fix uint16 and uint32 values range by @joanlopez in c67fe60c23f5e14b2a8dac6e72db7ef6abac9460
  • all: correct typos and duplicate words in comments by @alexandear in 2e28b01ce53cf3566af4da5ab365d0d57528ed9a
  • cue/errors: remove redundant Sort call in list.sanitize by @zeithaste in f106acff45bcd2ba263135f24fd338320f699e90
  • internal/ci: refactor CI workflows by @myitcv in d71a76cfae1c57f203eae14b04605fe9d07be6e6
  • internal/ci: remove hard-codings in base package by @myitcv in f881884a4e0c7c7ead6e7ed340f2ce723136836f
  • internal/core/adt: change addList signature by @mpvl in 0c840f6652709b9d142f2023fac744773b375bd9
  • internal/core/adt: introduce ArcNotPresent by @mpvl in e3a7fcf66b0277d3012f4cb9168e751a6732add2
  • internal/core/adt: use value array for Disjunction by @mpvl in 166ac88b15c358d6cf0560aacaf1099e7cfc06e1
  • internal/core/adt: specialize injectComprehension by @mpvl in fa4f2d3050c2c7f71cbdc7f27106496b692d873f
  • internal/core/adt: hoist comprehension loop body by @mpvl in e0f5681dbf354fc4062fdd49a3082ee0ea98ec94
  • internal/ci: move evict_caches to base by @myitcv in cef63a357de717255da826c376d3824773d7ed53
  • internal/ci: remove mention of matrix and runner from base by @myitcv in 3ed9f9220667b9c929460eee371644b7c9e2fb5f
  • internal/ci: remove trybot from push branches by @myitcv in 5cd427aa1aef86364768fcc587c49399600c6be0
  • internal/ci: refactor base caching pattern by @myitcv in 92b28c409321397e8e14276f3d669c11f22ae0d5
  • internal/ci: drop pullThroughProxy step by @myitcv in 79aceb75b056d96bb24b9e393744e9c704033d42
  • cue/errors: better vetting of error formats by @rogpeppe in c630554826376595d7c3617035f4f994aad6d11c
  • internal/ci: improve push_tip_to_trybot defaults by @myitcv in be0601bf379c496a57312afeb5ed56566ef624ee
  • internal/ci/github: rename repo -> _repo by @myitcv in 646e9658ce7b6e3bca4ce16c3e140e102ef8cf2d
  • internal/ci: import repo package once in github package by @myitcv in 7aec30c7cd97ac01ff394ec8ea70e3c0e461f8ca
  • internal/ci: drop parameter from trybotDispatchWorkflow by @myitcv in 6318def84d9c84e2151e6c3bce50293944608bd3
  • cue/load: minimal module fetching implementation by @rogpeppe in cb9d6edf56ffe54d3d882eb32c3cd1d740fd3543
  • bump golang.org/x and go-internal deps by @mvdan in 3f5133771e3fa114fa952fd4524ed0befc5bb69b
  • internal/ci: bump GoReleaser to v1.16.2 ahead of v0.5.0 release by @myitcv in 5ec06d97bee84f434f7bc96c5426337a396c6c70
  • internal/ci: rename core -> repo by @myitcv in 6d6ffb48601483695470f36879eeb4032ceb973e
  • start using Go 1.20, drop Go 1.18 by @mvdan in d1a6da8a68bc5045ab7943526495894f7b48cbfa
  • internal/ci: switch to actions/setup-go@v4 by @mvdan in d9c354b5d4876e47cead9fa1a0948d189c6064f1
  • internal/ci: always force push to trybot repo by @myitcv in ed2a9c724fde351580f3ff839a9e7df72abbbb71
  • cue/load: avoid using ioutil.ReadDir to list directories by @mvdan in d07720266afe96dd0d37aa7698f24d7fb43d3926
  • pkg/tool: small fixes to CUE docs by @mvdan in 3d08fb21240ae0ee61a54595db25a3162e7c4409
  • internal/ci: use unity and cuelang.org config from core by @myitcv in 4cbb5632880f05a49cd9140c4eb82e6930a71aec
  • internal/ci: DRY up core based on new base defaults by @myitcv in 1195b3d82b64fb5dd7b564f4e2cf333e32a31c47
  • internal/ci: establish better defaults in base by @myitcv in af02a2c461b89b5e179759a213e98e1a49d4787e
  • internal/ci: move away from using defs in github by @myitcv in 7a7ca81d7d53d79cd30ae4963b981a383d1e5969
  • internal/ci: move away from using definitions in base by @myitcv in d7a1740685c7b81940260fdd085e39e52c7d6280
  • internal/ci: use core directly instead of _base alias by @myitcv in f446b8773365e61aece3f8227617672fd0373c44
  • internal/ci: move away from using defs as params in base by @myitcv in 305dc1d4cc594b076a747b46753685342beec91e
  • internal/ci: collapse gerrithub package into base by @myitcv in 9729270e2c606563104342cfde3dc732fd010d03
  • internal/ci: tweak gerrithub package "params" ahead of move to base by @myitcv in 1980621b497b1a772273a47191ef1630bf04f6ba
  • internal/ci: split base into separate files by @myitcv in 3a52c194868fef00dcf00bf1ceb01a232ab294ba
  • internal/ci: rename base parameter field name by @myitcv in cdd573066a9ea37a5951ceefeb759729af0d9f6e
  • internal/ci: move pushTipToTryBot workflow to gerrithub package by @myitcv in 0290e04b36a94c3cf4df84e010240b22dbde8f20
  • internal/ci: rename gerrithub #dispatchWorkflow by @myitcv in 0cfd8c50e728d587a9f6aaf63f0035feb1f8e418
  • internal/ci: remove hard-codings in gerrithub package by @myitcv in f5277b924d3658135f37d211024b8bcac6767330
  • internal/ci: move configuration from workflows.cue to core by @myitcv in 1bb7e10f4c2d07b5bf18d630c252d45f210e7df4
  • internal/ci: remove workflow files pre generate by @myitcv in b4189550d9578ed76da679abd5f832aca64080f0
  • Revert "internal/ci: move pushTipToTryBot workflow to gerrithub package" by @myitcv in 87db1a559d80daf683b5f7196f7878ea0d881744
  • Revert "internal/ci: rename base parameter field name" by @myitcv in 2461c5114848e172a6d59ead3ebd4cac7af1a88a
  • Revert "internal/ci: move configuration from workflows.cue to core" by @myitcv in 26ff4493db4e2c66b263184de65f47cb357a9b43
  • Revert "internal/ci: rename gerrithub #dispatchWorkflow" by @myitcv in 38156f213cb3fea9ca3aa5e4e32456fefce76308
  • Revert "internal/ci: remove workflow files pre generate" by @myitcv in 0d89b9b0fae6c14a29964fd48d5f7c3b15b502e2
  • Revert "internal/ci: split base into separate files" by @myitcv in ee7509f0637651888274f6b71c7da25880a5fd2e
  • internal/ci: split base into separate files by @myitcv in d638a3508bf2321e78b07f6239bd218488d2bd28
  • internal/ci: remove workflow files pre generate by @myitcv in f723eb7b81cddb31551cf734d42c6bfb32301bd5
  • internal/ci: rename gerrithub #dispatchWorkflow by @myitcv in d276f58e68f4315ad08585a244a93f3b9e0bd0a6
  • internal/ci: move configuration from workflows.cue to core by @myitcv in 5a0922ea0a9b00eda05d3696b4aac936c8f45449
  • internal/ci: rename base parameter field name by @myitcv in 584f3f07fcaa02d038195999fad0f3097a84a919
  • internal/ci: move pushTipToTryBot workflow to gerrithub package by @myitcv in e44040932eb10e9d530a625ceb0fb4e068802d9b
  • internal/ci: hoist dispatch keys to base by @myitcv in e3ed29782876648870dd6049776472606093aff9
  • internal/ci: move workflows.cue defs to better places by @myitcv in 02508075358db42172a55c2a0ab6031136d04185
  • internal/ci: hoist cache steps to base package by @myitcv in 019f6dd019d38624126913ba31f1c6872cb3fd77
  • internal/ci: improve base package docs by @myitcv in 57066d4aa0ac81e89700abd3f5ec83c6e0de4939
  • internal/ci: make our checkout step configurable by @myitcv in ee093e2ff70fa867273116747da189d02324a9b9
  • internal/ci: specify githubRepositoryPath directly by @myitcv in 9c075cab8595cfe2c2febcd8b3ddcc68c36b7399
  • internal/ci: move core._#URLPath to base by @myitcv in dd965ad80e0f507e1c6dca3bb7acd355df4509a2
  • internal/ci: move core.#codeReview to base by @myitcv in 8b1483607d002a3833bdd961b4371d4bc35be189
  • internal/ci: move core package away from definitions by @myitcv in 547537013305d90b3271c8da19dbfdfa1b1fec44
  • internal/ci: improve core package docs by @myitcv in e1a8bee0643fc0e2f0c766b4b32bda69f926008b
  • internal/ci: refactor the way we declare workflows by @myitcv in 09b06ff8e33ef1f08bd323587248f52a2a42479d
  • internal/core/adt: hoist value validation by @mpvl in eea60b9cd229e1b364166a2d179f0d6e3b043a14
  • internal/core/adt: hoist comprehension code by @mpvl in 47f0025465ae39917315481e1e29675cd817460c
  • internal/core/adt: reorganize nodeContext fields by @mpvl in f807ee8fafc070b2fa1ec8623cd4eb26a72616cc
  • internal/core/adt: unexport more methods by @mpvl in ce65141fd4b18ca00aa6cb2a60952a26fd2cc690
  • internal/core/adt: unexport VertexStatus by @mpvl in 185eed7706c111cef93657eeaf5244f1476a7a5f
  • internal/core/adt: remove state arg from Err, SetValue, and UpdateValue by @mpvl in 97904e3f68e7d6a13b28c7ca28da6d38937c4971
  • internal/core/adt: unexport Unify by @mpvl in 785114246b26e673a375c40094ea5d01932978bd
  • internal/core/adt: clone arcMap by @mpvl in dbf7bb8a6f124f3e55e2390a76011336161f7f68
  • internal/ci: remove the cachePost steps by @myitcv in 68434159334bf0be33f1910c943bb537a1499b5f
  • internal/ci: bump default of cue version to v0.5.0-beta.5 by @myitcv in 3121a278e5536110e2e0cd16dcbb17706738b1ed
  • internal/ci: update base early git checks from alpha.cuelang.org by @myitcv in 4509e7f9ca7d12be4f66ae8669e86dd2c49eec17
  • internal/core/adt: allow required dynamic fields by @mpvl in c3138e362ec88061b8a83368ccc66511581a7263
  • internal/ci: skip test cache on protected branches by @myitcv in 21f494db70180cb062558eb05f499b763add74ad
  • internal/core/adt: implement required fields. by @mpvl in 0b681f5d193a55893fdec8386f4a72a6effcebb1
  • cue/ast: prepare for required fields by @mpvl in 1da0fd912d1af8ced98df15279e7a6d225ccae78
  • internal/core/adt: merge OptionalField and Field types by @mpvl in 1822d5247c0b9ba677e53054f46fd5475e4038a6
  • internal/ci: bump pinned version of Go for releases by @mvdan in e5cd9ac6c2f9729cab3847ec879317a386bcbf2a
  • internal/ci: use a group of cue commands for go:generate by @mvdan in d16b5758c12d752c439a78f51baabace69268af7
  • cmd/cue: remove fallback version code for Go 1.17 by @mvdan in e806bba7f48a8290307b9a2f1ea9a1566d0b0432
  • internal/ci: rerun trybot workflows post eviction by @myitcv in a632d16ec443659bec96e6a0f0409a510867dd49
  • internal/ci: tidy up use of curl for GitHub API calls by @myitcv in f4d0802da1fdec3b7b228c71e0c60baf903a87f8
  • internal/ci: do not evict caches on push to ci/test by @myitcv in 254f0f1f33a7cbbd2d07f7f850bef02bf03751cb
  • internal/ci: evict workflow caches on a daily basis by @myitcv in ee81e77aa558d8f9219bd620eadbc3ecbb261310
  • internal/ci: bump to use ubuntu-22.04 as our linux machine by @myitcv in 4686700dc71484162ce563fa0f443b43117b2484
  • internal/ci: use actions/cache/restore for non-protected branch by @myitcv in 38ee1c2d69354408527e76a41aa303bbbb198549
  • cue/load: don't read parent directories in tests by @mvdan in 9e014c3916e5ba4e040a1fcac0c86de9c6cea0ea
  • internal/ci: reset git directory timestamps faster by @mvdan in c7fd893a1eb45533f35e6c4cbbd339af5d658e63
  • internal/ci: fix up modified times for all directories by @mvdan in e31b8f753d467ab21d6d8a5caa6e5227db30242b
  • internal/ci: run long tests on linux when testing CLs by @mvdan in daa4022e260892e93de540b88bfa05480850edfd
  • cmd/cue: remove go install long tests by @mvdan in fa1f369cd616d9da12f110ee08f986b36e104730
  • internal/ci: restore git modified times after cloning by @mvdan in 829bd64d64c0004f96ddbb8d63cf24f4cd75bbce
  • doc/tutorial/kubernetes: fix build breakage by @mpvl in b05585b1668c2df7c947c53a24a489ac4b3a3f8b
  • internal/core/adt: use ? in debug output by @mpvl in 5fe040ad0c460367d8bf27fe5a8606821e3a8a46
  • internal/core/adt: optional field rewrite by @mpvl in 19bfdb9fa5df54033bbfbf042bd433517758c5c7
  • internal/ci/gerrithub: update comment to be clearer by @mvdan in 4fed730f4d2fcaa2d2873a36fc58e7a2795545dc
  • internal/core/adt: finalize earlier for arcs by @mpvl in c80a69088def981d2816176958912fbf4826a849
  • internal/core/adt: pass member type to insertField by @mpvl in 27b096cc9213cc4d4e7b122bcd3620ebe0def467
  • internal/core/adt: remove duplicate statement by @mpvl in 383ff3e29246ccc6167a03280e88c4357c680f88
  • internal/core/adt: export arcType and friends by @mpvl in 4f32fb452eef26254bb3a7c4c8a7b494d42a6216
  • internal/core/adt: revert fix for 2209 by @mpvl in c8e580e91c01a4242e81f84116a36b8f7ec42001
  • cue/ast, cue/parser: parse function types by @4ad in 8f0fe77dddf4941d12930bb63581a9ce0c176c34
  • cmd/cue: add CUE_DEBUG_PARSER_TRACE environment variable by @4ad in 34a27bb4835622233513517b8073d1f9eb74ac25
  • internal/core/adt: fix possible infinte loop for API usage by @mpvl in 782cae0d69e07a62522a3fe5ac161c7fc49ced09
  • internal/core/adt: fix regression in comparing to bottom by @mpvl in 9954cc2108a4c3918fca995b6a3c9c64c15667ec
  • internal/core/adt: remove unnecessary check by @mpvl in 1a0a81ba95bc02078db097e5c6f44dc4b08d0428
  • internal/core/adt: detect closed lists as fatal errors by @mpvl in 06fbefe5f6c864294e945b8f7190ab643852f4aa
  • internal/core/adt: sharpen condition for scalar setting by @mpvl in 9b1f2227cfe9d90dfa1f064e11e8bdcc772eb96e
  • cmd/cue: respect --exclude for constants by @rogpeppe in b44e16d7ef2f37cb43be7b6552b6a4c52564550a
  • cmd/cue: add test case for --exclude by @rogpeppe in 2fa4ee6e56c671ba8669669aac602343d0dadfd6
  • cue/context: support internal interpreters by @mpvl in 7617de2b03a76b3fb1e2d635443853993f6b80b5
  • internal/cuetxtar: configurable load.Config by @rogpeppe in 7485f58caa1a30ee97daad23561b7ba9fa2c5c20
  • cue/load/internal/...: copy pkgs from Go source by @rogpeppe in 57234703b095a088af961e9aa1b3e9da8565df70
  • cue/load: refactor loader by @rogpeppe in c28d75aac789735144d231b694afda4bc8507de0
  • cue/load: move code before refactoring by @rogpeppe in 87b91c95c7e6b665beedeb9f08987f432a6a5195
  • internal/ci: use simpler "go get" to pull a version through the proxy by @mvdan in eff01087f42d12b501fe4341228db5d413afae59
  • cue/stats: use int64 for stats counters by @mvdan in 7073554f7d59d0af8217b8cb71a2c7c1f68b6982
  • cmd/cue: remove use of stderr directive by @mpvl in 7d89acd5c44bca0c756f76089436ee9913818b03
  • doc/ref/spec.md: add required fields by @mpvl in 9a7c8fb04e74bc29a6b93507bbfd56be682431d7
  • pkg/list: simply template for Ascending by @mpvl in 9dbb373d9cb6aeddcd73981d0f79b637067ca517
  • cue/testdata/benchmarks: add benchmark for sort by @mpvl in 9f538a6cae5ed9d41b0d9e472a0a9112cdd316d0
  • cue/load: add initial module.cue schema by @rogpeppe in b2087b94cf408e69c969380042ad099ee8e7cb81
  • internal/ci: only run release workflow on main repo by @myitcv in ce37b63f1eae7cb41a00240c02602b564ac7902b
  • cue/load: use cue package to interpret module.cue file by @rogpeppe in 1b6fb4e7e45ea4387e6f029a7f2b93e1bb399485
  • cue/load: minor tweaks by @rogpeppe in d78f1a234a3ff851322f9d64389b6355d02ea7be
  • .github: clarify what we mean by "latest release" by @mvdan in 03e8f294fcbeb11e8c4e04f05a6d391535565354
  • internal/ci: do not release "zero" releases in release workflow by @myitcv in 02e19c85e4d9244bdf721584d626c8ebff287456
  • internal/ci: fix goreleaser in non-snapshot mode again by @mvdan in ae0d7ca4c00144933f9c8c166de5948615a0d73d
  • cmd/cue: include Go in the version command by @mvdan in 879f902a707cae00955bafbdbdd41c0cec745d89
  • internal/ci: fix and test the release workflow on branches by @mvdan in 266bb320962361daebc7792ea1363489f053b5bf
  • cmd/cue: mention doc location for -l flag by @rogpeppe in 56caeaf8c7a8be0c2935131844d101e75a189e70
  • internal/core/adt: fix 2235 by @mpvl in 3c8f0adf5ee863a6a2d562147df11a936c6531c8
  • pkg/list: reimplement sort by @mpvl in 2e70ac781e3ea46158ce2dfb0a745e2cc80ab5b1
  • cue/scanner: remove block comment scanning by @mpvl in 5d0a6f2719550c727a2083e3485b3f998fdd5a1f
  • internal/core/adt: add tests for 2235 by @mpvl in 125e40bed047f8d256a827e54f16b7a7a9613597
  • cue/parser: remove last vestiges of : T by @mpvl in fd170da2b3f1e2b928e79281fbf33228b6484c2a
  • all: remove support for :: by @mpvl in a6055ea788f75987f9b1b2dc0c4235fd1acf9de1
  • internal/encoding/{json|yaml}: disallow non-regular fields by @mpvl in 76e0be4fb6f65aa64be14829f5aacf642984998d
  • cmd/cue: add tests for issue 1926 by @mpvl in 9b573be1e697ed330c581d3f3a654b33ba8e1080

v0.6.0-rc.1

10 months ago

Thank you to @mpvl, and @mvdan for contributing to this release!

Changelog

  • internal/core/adt: lets of comprehensions are multi lets by @mpvl in 43b4674898df7e2e8758ccb6154041a98e321e40
  • internal/core/adt: always mark let in comprehension as "complete" by @mpvl in 5123737983654d143151b47c1b5c67ed2a7bcf6c
  • cue/ast: clarify what is a valid identifier by @mvdan in c4ced5ef6bc322a12fbeaceb9c79a8cda15a0c50
  • internal/core/adt: find late-stage conflict errors by @mpvl in 0c48837de759df5b78a02696e2401267cceb6117
  • internal/core/adt: add tests to fix 2481 by @mpvl in d3444e38a7582138aee3f25188fc3595acc61a49