Skip to content
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

chore(deps): update module cuelang.org/go to v0.10.0 #425

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

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 15, 2024

This PR contains the following updates:

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

Release Notes

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

v0.10.0

Compare Source

This release includes experimental support for the embed proposal, many fixes for the new evaluator and modules, as well as many other fixes and enhancements.

Evaluator

CLs 1195897, 1196094, 1198356, 1198736, and 1198860 fix crashes with CUE_EXPERIMENT=evalv3 as reported by users.

CLs 1199272, 1199273, and 1199340 fix spurious "field not allowed" error regressions in the new evaluator.

CL 1198566 fixes a performance regression introduced in CUE v0.6 where cue cmd and tools/flow became many times slower on some inputs.

CL 1198350 ensures that all interpreter errors, such as those from @embed attributes, include position information.

Embed proposal

With CUE_EXPERIMENT=embed, CUE now supports the embedding of non-CUE files within a CUE package. See the embed proposal and its design document for details, as well as the new how-to guide for the feature.

Modules

The cue help documentation for modules and inputs has been expanded, and a number of error messages when using or publishing modules are now more helpful.

A new concept guide on CUE language versions documents the language.version field in cue.mod/module.cue files.

CL 1198249 adds support for an @ignore file attribute to unconditionally ignore a file when loading packages or calculating dependencies.

CL 1198003 teaches the CUE loader to support symbolic links when loading from local directories, matching the behavior before CUE_EXPERIMENT=modules was introduced.

CL 1198143 tweaks cue mod init without an argument to create a module with the module path cue.example rather than an empty path that made the module file invalid.

CL 1197530 fixes the behavior of build tags, and also adds support for parentheses in build tag expressions.

CL 1197531 implements better caching when evaluating dependencies, which should speed up evaluation of modules that use multi-directory packages.

Go API

CL 1196721 disallows importing or loading packages with an underscore qualifier like foo.com/bar:_, as it was never intended behavior. Users should use the new embed proposal instead.

CL 1198555 adds a cue/load.Config.SkipImports option to avoid loading instances from import statements. This particularly helps cue fmt, where the loading caused unwanted slowness and unnecessary errors.

CL 1196820 adds a cue.LanguageVersion function to obtain the current version of the language spec that the Go module implements.

CL 1197160 implements considered support for build tags in modules. Build tags are considered false when outside the main module.

CL 1198686 fixes cue/load so that it no longer produces extra invalid packages when Config.Package was set to * and nested packages were loaded.

CL 1198351 fixes a bug in astutil.Sanitize where unused imports were not being fully removed from ast.File, causing errors in cue trim where all uses of an import were removed.

CL 1198494 speeds up the Path method on wrapped errors, which causes noticeable speed-ups in some edge cases.

CL 1198157 fixes cue/parser to accept keywords as valid selectors, aligning with the language specification.

Encodings

Initial support for TOML is included in this release, including support in cmd/cue and an experimental Go package. See the issue tracker for remaining work in this space.

CLs 1199309, 1199139, 1199306, 1199214, 1199398, 1199308, and 1199309 resolve a number of issues when decoding JSON Schema files.

CLs 1196332, 1199094, and 1199103 fix the JSON decoder to provide correct position information when decoding JSONL files or encountering a syntax error.

CL 1198874 fixes the loading of JSON files to reject multiple newline-delimited values, as those ar only allowed in NDJSON or JSONL files.

CL 1198876 teaches the YAML decoder to decode empty documents as null, aligning with the YAML spec and fixing panics when loading empty YAML files.

CL 1196291 tweaks the YAML decoder so that comments following a field are attached to the entire field.

CL 1196436 tweaks the textproto decoder to correctly handle required and optional fields.

CLs 1195628 and 1199054 ensure that cue/format prints the correct white space before and after comments.

CL 1195884 teaches cue/format to preserve comments associated with ... ellipsis expressions.

CL 538624 fixes a bug where cue/format would start a CUE file with white space if it began with a clause.

CL 1196134 fixes a bug in cue/format where a comment at the start of a CUE file would sometimes be indented.

CL 1196135 fixes a bug in cue/format where index or selector expressions could cause extra tab indentation.

Builtins

CL 1196212 adds a list.Reverse function to reverse the elements of a list.

CL 1197452 tweaks tool/exec.Run so that its errors are unambiguous when any command arguments contain white space.

CL 1198636 tweaks path.Match and tool/file.Glob to reject ** wildcard patterns as unsupported, to avoid confusion and allow future changes to their behavior. Note that this change may break uses of ** patterns, which behaved like *.

cmd/cue

CL 1196822 adds a --language-version flag for cue mod init and cue mod edit to set the language.version value.

CL 1197185 teaches cue mod resolve to work on the current module when no arguments are given.

CL 1196370 teaches cue mod registry to gracefully shut down when interrupted.

Full list of changes since v0.9.0

v0.9.2

Compare Source

This release includes a fix for a regression around CUE files without a package name, and updates the compiled-in language version to match the actual tagged version v0.9.2.

CL 1196785 fixes the cue/load logic to correctly take CUE files with out a package name into account (issue #​3244).

Full list of changes since d8742c13dce6f5f02ff67740da2efe1f94a2ed0e

v0.9.1

Compare Source

This release includes a few fixes, mainly relating to CUE_EXPERIMENT=modules being enabled by default in v0.9.0.

Modules

CLs 1196176 and 1196180 allow using and developing a module whose cue.mod/module.cue lacks a major version suffix like @v0, as adding one may break older CUE versions without CUE_EXPERIMENT=modules.

CL 1196156 adds a cue/load.Config.AcceptLegacyModules option to allow loading CUE modules without a language.version field, given that the field was only introduced in v0.8.0.

CL 1196178 fixes a regression where loading a package with the cue/load.Config.Package option set was no longer working as expected.

As a reminder, we are maintaining an FAQ page which should help modules users with the upgrade to v0.9.

Builtins

CL 1195888 fixes the path.Match API so that it can actually take the three parameters it expects.

v0.9.0

Compare Source

This release includes major changes to Modules and the Evaluator, as well as many other fixes and improvements. A special thanks to Noam Dolovich for numerous contributions to this release!

Modules

Following the Modules proposal v3 being accepted, the modules experiment is now enabled by default in this release. It should no longer be necessary to set CUE_EXPERIMENT=modules, and CUE_EXPERIMENT=modules=0 can be used to disable the experiment. We are not aware of any significant regressions, so please file a bug if you find one.

We have published an FAQ page which should help modules users with the upgrade to v0.9. We will add to this page over the coming weeks to ease the transition into the "new" modules mode.

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

To get started with the Central Registry, we have published a tutorial on working with modules and the central registry as well. We will share more details about the Central Registry and support for other login mechanisms in the future. For now, we are looking to get early feedback.

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

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

cue mod publish now includes VCS metadata in published module versions, as described in Proposal 3057.

The cue mod fix command is added, which allows fixing up old cue.mod/module.cue files; see cue help mod fix.

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

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

CL 1195546 teaches cue mod publish to include a LICENSE file from the VCS repository root if the CUE module subdirectory has none.

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

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

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

CL 1194669 restricts the parsing of cue.mod/module.cue files to data-only mode, forbidding any references or comprehensions which may break cue mod commands or cause other issues.

As a reminder, the ongoing and planned work can be seen in the Modules Roadmap.

Evaluator

The new evaluator can now be enabled in the command line via CUE_EXPERIMENT=evalv3, and in the Go API via cuecontext.EvaluatorVersion(cuecontext.EvalV3). The new evaluator already includes a new disjunction algorithm as well as initial structure sharing support; note that structure sharing can be disabled with CUE_DEBUG=sharing=false.

The work is not yet complete, and some known bugs remain, but over 95% of the existing tests are passing and the performance already looks promising. Work on this new evaluator will continue during the next release cycle. We will only turn on the new evaluator by default once we are reasonably confident that there are no significant regressions.

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

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

Encodings

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

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

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

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

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

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

CL 1195047 fixes the decoding of YAML 1.1 octal numbers so that they no lon


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.

Copy link
Contributor Author

renovate bot commented Aug 15, 2024

ℹ 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.25.0 -> v0.26.0
golang.org/x/net v0.27.0 -> v0.28.0
golang.org/x/sys v0.22.0 -> v0.23.0
golang.org/x/text v0.16.0 -> v0.17.0

@carstendietrich
Copy link
Member

breaking change, see #202

@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch from c938f0e to 609ff31 Compare August 22, 2024 13:07
@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch 6 times, most recently from 964b9dc to fef520a Compare September 5, 2024 13:13
@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch 6 times, most recently from 246d0bc to 2d35a3f Compare September 19, 2024 13:43
@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch 3 times, most recently from 046da24 to 6d9fd8e Compare September 30, 2024 08:52
@renovate renovate bot force-pushed the renovate/cuelang.org-go-0.x branch from 6d9fd8e to 282b448 Compare September 30, 2024 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant