Skip to content

Update module github.com/google/cel-go to v0.25.0 (release/v0.5) #895

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: release/v0.5
Choose a base branch
from

Conversation

renovate-rancher[bot]
Copy link
Contributor

This PR contains the following updates:

Package Type Update Change
github.com/google/cel-go replace minor v0.17.8 -> v0.25.0

Release Notes

google/cel-go (github.com/google/cel-go)

v0.25.0

Compare Source

Features & Enhancements

This release introduces features for richer configuration-based CEL, AI prompt generation from config files, additional documentation, and 3x performance when evaluating traced / state-tracking expressions. This release also introduces a unit test runner framwork.

#​1141: Expose extension option factory as a public method

#​1143: Add a new compiler tool which can be used to compile CEL expressions and policies using serialized environment

#​1151: Lightweight observable evaluation

#​1155: Utilities for formatting and parsing documentation strings

#​1156: Support for documentation and example strings in CEL environments

#​1158: Re-export interpreter.AttributePattern in package cel.

#​1159: Document the standard library macros and functions

#​1160: Prompt generation for AI-assisted authoring based on a CEL environment

#​1117: Add LateFunctionBinding declaration and fix constant folding

#​1163: Initialize stateful observers prior to evaluation

#​1164: Unparse Expr values to strings

#​1149: Add test runner library

#​1167: REPL: Add an extension option for two var comprehensions

Fixes

Several fixes were implemented, including updating strings.format to better adhere to the specification, correcting constant folding logic alongside the late binding feature, removing a non-functional check in test code, and adding argument count validation for optFieldSelect.

#​1133: Update strings.format to adhere to the specification

#​1117: Add LateFunctionBinding declaration and fix constant folding

#​1161: Remove non-functional optional check in test-only selection

#​1168: Check arg count when validating optFieldSelect

Refactoring & Internal Improvements

General refactoring was performed across the codebase. Coverage and comments for Activation methods were improved. The test runner library was refactored to create options from flags and improve code structure.

#​1145: Refactoring changes

#​1150: Additional comments and coverage for Activation methods

#​1165: Refactoring changes to create a test runner option from passed flags, correct indentation and add package level comment for test

Documentation

Documentation was enhanced, including updates to the NativeTypes documentation regarding the cel tag, adding documentation for the optional library, and documenting the standard library functions/macros as part of the documentation string feature.

#​1148: Update NativeTypes doc to reflect how to enable cel tag

#​1155: Utilities for formatting and parsing documentation strings

#​1156: Support for documentation and example strings in CEL environments

#​1159: Document the standard library macros and functions

#​1162: Document optional library and increase docs coverage

Build System

Configuration fixes were made for Bzlmod compatibility.

#​1146: Bzlmod configuration fixes

Type System

Type formatting was updated to correctly handle type parameters.

#​1154: Update type formatting for type params

v0.24.1

Compare Source

Fixes

  • Separate unnest optimization from composer to capture type info [#​1138]

Full Changelog: google/cel-go@v0.24.0...v0.24.1

v0.24.0

Compare Source

Support for subsetting CEL standard library and serialization of CEL environments to YAML.

CEL is an official Google product [#​1122]

Features

  • Helper methods for subsetting function overloads [#​1120]
  • Introduce cel package aliases for Activation [#​1123]
  • Canonical environment description and stdlib subsetting [#​1125]
  • Support for cel.Env conversion to YAML-serializable config [#​1128]
  • Option to configure CEL via env.Config object [#​1129]
  • Support for feature flags and validators in env.Config [#​1132]
  • Add k8s custom policy tag handler for test [#​1121]

Fixes

  • ContextEval support for Unknowns [#​1126]
  • Fix godoc formatting for Lists and OptionalTypes functions [#​1127]
  • Default enable DefaultUTCTimeZone [#​1130]
  • Support for splitting nested branching operators within policies [#​1136]

New Contributors

Full Changelog: google/cel-go@v0.23.2...v0.24.0

v0.23.2

Compare Source

Corrects one remaining issue for cost computations from the v0.23.0 releases

Fixes

Full Changelog: google/cel-go@v0.23.1...v0.23.2

v0.23.1

Compare Source

Minor release to address cost tracking and size estimation [#​1113]

Full Changelog: google/cel-go@v0.23.0...v0.23.1

v0.23.0

Compare Source

Features

  • First and last element in list support [#​1067]
  • Add support for typed conformance tests. [#​1089]
  • Add syntax for escaped field selectors. [#​1002]
  • Add optional.unwrap() / .unwrapOpt() function [#​1103]
  • Cost tracking for two-variable comprehensions and bindings [#​1104]

Fixes

PR #​1099 enables a change in the internal variable name used for comprehension result accumulation. This change may break some tests which inspect the AST contents in text form; however, will not break any existing uses of CEL during parse, check, or evaluation.

  • Improve policy compiler error message for incompatible outputs. [#​1082]
  • Fix partial evaluation with the comprehension folder objects [#​1084]
  • Introduce versioning options to all extensions [#​1075]
  • Fix a crash in mismatched output check for nested rules [#​1086]
  • improve debug output to properly quote byte strings [#​1088]
  • Fix two-variable comprehension pruning [#​1083]
  • Replace checks for valid UTF-8 in strings with go-maintained calls [#​1094]
  • Policy nested rule fix [#​1092]
  • Address non-const format string lint findings [#​1096]
  • Fix typos in ext/README.md [#​1098]
  • Add option to use inaccessible accumulator var [#​1097]
  • Add test cases for string.format covering various edge cases [#​1101]
  • Add base_config and partial_config files under restricted_destination testdata [#​1106]
  • Default enable using hidden accumulator name [#​1099]
  • Update PruneAst to support constants of optional type [#​1109]

New Contributors

Full Changelog: google/cel-go@v0.22.1...v0.23.0

v0.22.1

Compare Source

Fixes

New Contributors

Full Changelog: google/cel-go@v0.22.0...v0.22.1

v0.22.0

Compare Source

What's Changed

Core CEL
Policy

New Contributors

Full Changelog: google/cel-go@v0.21.0...v0.22.0

v0.21.0

Compare Source

Features

  • Math extensions update to include bitwise ops and floating point helpers [#​923]
  • Better support custom types with custom type registries [#​931]
  • repl: implement %parse [#​933]
  • Fixed partial variables extended bug and split PartialVarsEnvExtended test into two [#​955]
  • Added partial evaluations example [#​959]
  • Enable conformance tests for extensions [#​930]
  • Update cel-spec and enable optional_type conformance tests [#​919]
  • Improve token representation in AST [#​932]
  • Add function accessor to Env [#​978]
CEL Policy Compiler

Policies which use CEL often evolve to express complex logic using multiple statements
and decision criteria. The CEL Policy Compiler provides an extensible format for parsing,
compiling, and composing expression graphs. Below is a simple example which can easily
be compiled to a single CEL expression.

name: "my-policy"
rule:
  variables:
    - name: greeting
      expression: "'%s, %s!'"
    - name: people
      expression: >
       ['Tristan', 'Calla', 'Antoine', 'Jonathan', 'Sokwhan', 'Rebecca']
  match:
    - condition: "request.user in variables.people"
      output: "variables.greeting.format(['hello', request.user])"
    - output: "variables.greeting.format(['goodbye', 'stranger'])"
  • Simple Policy Compiler [#​924]
  • Introduce protobuf message testing to policies [#​961]
  • Generate policy explanations during compilation [#​977]
  • Variable and nested rule limits [#​989]
  • Improved support for nested rules #​991]

Fixes

  • Delete dangling source info from macro expansion [#​934]
  • Do not re-use ID twice in exists_one macro [#​935]
  • Avoid iterating over the source multiple times during parse [#​936]
  • Fix for working with byte arrays by [#​958]
  • Stabilize macro id generation during optimization [#​962]
  • String formatting panic fix for non-literal format strings [#​987]
  • Add nil checking for wrapperspb's types [#​960]
  • Prevent self-append for Issues [#​988]
  • Use bytes interface value for zero native type struct fields instead of dynamic list [#​981]
Presence Test Semantics

The following two changes identified an issue where presence test was unexpectedly being performed over a scalar type and evaluating to absent rather than erroring. It is strongly advised to set the flag cel.EnableErrorOnBadPresenceTest(true) to avoid a logical correctness issue.

  • Fix presence test to produce an error when it's not a map or a message [#​922]
  • Update the presence testing fix to be opt-out [#​939]
Deprecation Cleanup
  • Remove the deprecated protobuf function and type declarations [#​921]

New Contributors

Full Changelog: google/cel-go@v0.20.1...v0.21.0

v0.20.1

Compare Source

Minor release to capture a couple bug fixes and API / build visibility changes.

What's Changed

  • Track sizes of comprehension results by [#​901]
  • Introduce new helper APIs for optimizers by [#​903]
  • Make the CEL ast package public. [#​904]

New Contributors

Full Changelog: google/cel-go@v0.20.0...v0.21.0

v0.20.0

Compare Source

What's Changed

  • Minor adjustment to inlining to fix a bad bind [#​888]
  • Ensure error typed variables are returned as errors from Resolve b [#​889]
  • ext.NativeTypes: Recursively add sub-types [#​892]
  • DefaultTypeAdapter: Add support for missing custom scalars [#​893]
  • Lists: Fix handling of go arrays [#​894]

New Contributors

Full Changelog: google/cel-go@v0.19.0...v0.20.0

v0.19.0

Compare Source

Features

  • Add AST node IDs to types.Err for errorable expressions [#​862]
  • Set membership test rewriting optimizer [#​865]
  • Introduce 'wither' method for changing type traits [#​871]
  • Add option to include test types in the repl [#​855]

Fixes

  • Fix MaxID to consider macro keys and expressions [#​861]
  • Update builtin macros to use unique IDs. [#​866]
  • Fix incorrect example in string formatting docs. [#​873]
  • Fix the optional type name and type identifier resolution [#​870]
  • Fix type substitution within parameterized type names [#​880]
  • Bump follow-redirects from 1.15.2 to 1.15.4 in /repl/appengine/web [882]

New Contributors

Full Changelog: google/cel-go@v0.18.2...v0.19.0

v0.18.2

Compare Source

What's Changed

  • Add support for ext.Bindings() to REPL [#​843]
  • Add basic examples to the appengine repl [#​848]
  • Sets cost estimation and tracking options [#​850]
  • Fix expression inlining when working with macros [#​853]
  • ANTLR v4.13 update [#​857]

Full Changelog: google/cel-go@v0.18.1...v0.18.2

v0.18.1

Compare Source

What's Changed

  • Add support for a relative offset within ast.SourceInfo by [#​836]
  • Fix last optional element to be retained as an optional index while folding [#​841]
  • Fix deprecation notice for string format validation [#​840]
  • Update cel-spec and enable wrappers conformance tests [#​842]
  • refactor: remove lexer and parser pools [#​838]

New Contributors

Full Changelog: google/cel-go@v0.18.0...v0.18.1

v0.18.0

Compare Source

Features

The latest release of CEL introduces validators (#​775) and optimizers (#​804, #​827) and migrates the core CEL internals off of the
protobuf expression and type representations (#​789).

  • String format validator [#​775]
  • Create a Function that Reverses a String [#​796]
  • Introduce pre-order / post-order visitor pattern [#​813]
  • Add Libraries() function to Env [#​822]
  • Static optimizer for constant folding [#​804]
  • Inlining optimizer [#​827]
  • FindStructTypeFields support for types.Provider [#​814]

Breaking Changes

The following PR changes the API signature of the checker.AstNode method Expr to return an ast.Expr.

  • Migrate the checker.Coster to the ast.Expr [#​798]

Fixes

  • Nil safety checks for cel.Ast [#​784]
  • Fix cost estimates to propagate result sizes [#​787]
  • Catch invalid literals created from expression factories [#​810]
  • Ensure stable ordering of overload candidates [#​817]
  • Clarify replace with/by empty string [#​820]
  • Fix functional exemptions for homogeneous literal checks [#​832]
  • Fix logical operator folding that only involve literals [#​833]
  • Upgrade go-genproto to latest [#​831]

New Contributors

Full Changelog: google/cel-go@v0.17.1...v0.18.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 becomes conflicted, 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 has been generated by Renovate Bot.

@renovate-rancher renovate-rancher bot requested a review from a team as a code owner May 2, 2025 06:40
Copy link
Contributor Author

ℹ 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):

  • 2 additional dependencies were updated

Details:

Package Change
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 -> v0.0.0-20240826202546-f6391c0de4c7
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 -> v0.0.0-20240826202546-f6391c0de4c7

@renovate-rancher renovate-rancher bot added the dependencies Pull requests that update a dependency file label May 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants