Skip to content

chore(deps): update module cuelang.org/go to v0.13.0 #504

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 15, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
cuelang.org/go v0.0.15 -> v0.13.0 age adoption passing confidence

Release Notes

cue-lang/cue (cuelang.org/go)

v0.13.0

Compare Source

This release finally enables the new evaluator by default -- the culmination of over a year's worth of work!

It also packs in lots of new features, such as support for absolute module packages, dozens of JSON Schema improvements, and a new experimental XML encoding.

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

Evaluator

The new evaluator first introduced in v0.9.0 via CUE_EXPERIMENT=evalv3 is now enabled by default! There are no remaining substantial regressions in our test suite, and the Unity corpus is almost entirely working now. Given that the new evaluator fixes dozens of bugs for many users, and is already significantly faster for the majority of CUE users, we believe it is time to turn it on by default.

We will continue to track any remaining issues for the new evaluator via the evalv3 label. If you encounter any regressions, please file a bug report. You can also revert to the old evaluator to temporarily work around bugs via CUE_EXPERIMENT=evalv3=0. See this FAQ page for more information.

We aim to resolve many of these remaining bugs in an upcoming v0.13.1 bugfix release.

An entirely new algorithm for cue trim and tools/trim has been implemented for evalv3, which resolves all known bugs when trimming CUE.

Closedness in evalv3 has been revisited to match the semantics of evalv2 much more closely, while at the same time reducing its overhead for larger configurations. This fixes most "field not allowed" regressions and improves the performance of some configurations by up to 5x. As a result, CUE_DEBUG=openinline is now removed as it is unnecessary.

Performance work for the new evaluator is ongoing; a number of changes in this release led to performance improvements of between 5% and 80% for a variety of projects. For more details, see Marcel's performance update last month.

⚠️ The new topological sort algorithm for field ordering has been tweaked to avoid becoming too slow in some cases. This may result in some ordering changes, but we expect them to be relatively small. See the change for more details.

The parser now correctly allows keywords as required field labels, such as if!: _, fixing a discrepancy with the spec.

Filenames beginning with a dot can now be embedded as long as the glob pattern uses an explicit dot, such as @embed(glob="dir/.data_*.json").

⚠️ @embed(glob="pattern...") directives whose file globbing results in zero files now result in an error, to avoid situations where a glob pattern silently stops working as intended.

cmd/cue

Initial support for absolute packages is introduced, which allow specifying a remote package at a particular version such as cue export foo.com/[email protected] or cue vet foo.com/[email protected] -d '#schema' data.yaml without requiring a CUE module file locally.

The cue help filetypes logic, written itself in CUE, no longer requires using the evaluator to parse CLI arguments or load CUE packages. This results in significant speed-ups when using the CLI with many inputs.

The new cue refactor imports command rewrites import paths, making it easy to migrate between module locations and major versions.

The new cue mod mirror command copies modules from one registry to another.

cue mod tidy now preserves the top-level custom field as intended.

Hidden files, and files with build tags, should now be correctly filtered when loading a single CUE package.

cue get go should no longer attempt to import types from the Go standard library as CUE, which caused errors.

cue get go no longer fails on Go strings containing certain character escape sequences or non-UTF8 bytes.

cue get go now interprets Go fields with the new json:",omitzero" struct tag as CUE optional fields.

cue cmd now fails if no tasks were actually defined, to avoid situations where a user is misled into thinking a task was defined when it was not.

Encodings

The XML "Koala" encoding proposed in February is now available via an experimental implementation. Try it out via the CLI like cue export xml+koala: data.xml, or via its Go API.

The encoding/jsonschema package gains better support for Kubernetes schemas (CRDs and the core API) although these improvements are as yet only available via the Go API.

⚠️ The JSON Schema decoder now imports schema descriptions as CUE doc comments, which required a change to encoding/jsonschema.Config.DefineSchema.

Empty YAML files are now decoded as *null | _ rather than null, allowing them to be unified with struct schemas as if they were an empty struct.

cue exp gengotypes now allows control over how to generate optional CUE fields via e.g. @(,optional=nullable), where the default now is not to use pointers.

⚠️ cue exp gengotypes tweaks how it parses @(,type=) options to support composite types such as slices and maps. Note that this means package paths with slashes must be quoted now.

Builtins

⚠️ The uuid.ToString function is removed, given that it never did anything useful and could mislead users into thinking it did.

tool/http gained a followRedirects option to let the user disable HTTP redirection.

Go API

⚠️ CUE_EXPERIMENT=decodeint64 can no longer be disabled as we consider the experiment finished, having been introduced in CUE v0.11.0.

⚠️ The long-deprecated cue.Runtime methods Parse, FromExpr, CompileFile, and CompileExpr are now removed.

cuecontext.EvalDefault still pointed to the old evaluator; it now correctly points to the new evaluator, and follows the CUE_EXPERIMENT=evalv3 flag just like cmd/cue and the rest of the Go API.

Mirroring cuecontext.EvalExperiment, the new cuecontext.EvalStable constant is added to track the latest stable version of the evaluator.

module.SplitPathVersion and module.ParseImportPath have been deprecated in favor of cue/ast.SplitPackageVersion and cue/ast.ParseImportPath package to consolidate the API.

The new mod/modfile.File.ModuleForImportPath function allows resolving a module and default major version for a package without consulting a registry.

The new mod/modregistry.Client.Mirror method implements the logic behind the new cue mod mirror command.

The new mod/module.Version.Compare method is added in favor of module.Sort, which is now deprecated.

Full list of changes since v0.12.0

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch 4 times, most recently from 7fb6fc4 to 7fedad9 Compare May 19, 2025 08:21
@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch from 7fedad9 to d55be28 Compare May 22, 2025 17:09
@renovate renovate bot changed the title chore(deps): update module cuelang.org/go to v0.12.1 chore(deps): update module cuelang.org/go to v0.13.0 May 22, 2025
Copy link
Contributor Author

renovate bot commented May 22, 2025

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 4 additional dependencies were updated

Details:

Package Change
golang.org/x/crypto v0.36.0 -> v0.37.0
golang.org/x/net v0.38.0 -> v0.39.0
golang.org/x/sys v0.31.0 -> v0.32.0
golang.org/x/text v0.23.0 -> v0.24.0

@renovate renovate bot changed the title chore(deps): update module cuelang.org/go to v0.13.0 chore(deps): update module cuelang.org/go to v0.13.0 - autoclosed May 29, 2025
@renovate renovate bot closed this May 29, 2025
@renovate renovate bot deleted the renovate/cuelang.org-go-0.x branch May 29, 2025 14:03
@renovate renovate bot changed the title chore(deps): update module cuelang.org/go to v0.13.0 - autoclosed chore(deps): update module cuelang.org/go to v0.13.0 May 29, 2025
@renovate renovate bot reopened this May 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants