Repository navigation
fix(deps): update module cel.dev/cel-go to v0.33.1 - #5775
renovate[bot] wants to merge 3 commits into
Conversation
32789eb to
f6f3ae6
Compare
f6f3ae6 to
80e41e3
Compare
Drops the stale cel.dev/cel-go v0.32.0 checksums that go mod tidy removes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream release review — cel.dev/cel-go v0.32.0 → v0.33.1
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
✅
|
@codex review |
|
To use Codex here, create a Codex account and connect to github. |
@coderabbitai review |
|
|
@cursor review |
Bugbot couldn't run — GitHub account mismatchThe GitHub account linked to your Cursor account does not match the PR author. Please ensure you're using the correct GitHub account, or run Bugbot from a team that covers this repository. |
Action not completed
|
|
Important Review skippedThis PR was authored by a bot without an assigned CodeRabbit review seat. Ask an organization administrator to assign a seat to the bot. See the seat-assignment guide. After the seat is assigned, request a review again.
|
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer (interactive Claude Code session)
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 8c1cabb
- CodeRabbit:
@coderabbitai reviewrequested at this head at 19:10Z; answered at 19:10:32Z with "Review skipped — This PR was authored by a bot without an assigned CodeRabbit review seat". No artifact can be produced for this PR. - Codex:
@codex reviewrequested at this head; answered at 17:42:36Z with "To use Codex here, create a Codex account and connect to github". Elsewhere in the org Codex reports "You have reached your Codex usage limits for code reviews" (khoist#573 18:19Z, ksail#8209 17:56Z). - Cursor Bugbot:
bugbot runrequested at this head; answered at 19:10:26Z with "Bugbot couldn't run — GitHub account mismatch".
Scope: the whole diff against main: cel.dev/cel-go v0.32.0 → v0.33.1 in go.mod and its two go.sum lines. The later commits are an agent go.sum tidy and a merge of main; the net diff is the version line and its sums only.
- Upstream release review (source moved to cel-expr/cel-go;
cel.dev/cel-goresolves there). Read v0.33.0 and v0.33.1. v0.33.0 adds a Pratt parser (opt-in), a unified cost model, runtime memory tracking and JSON/YAML extensions. Its breaking changes are default shifts:cel.CostModelVersion(1)andOptionalTypesVersion(4)become the defaults for callers that do not pin them. v0.33.1 cherry-picks backward compatibility for legacy timestamp and timezone formats. v0.33.2 (2026-10-30) also exists; it is outside this PR and Renovate will offer it next. - Fit for platform. cel-go is a test-only dependency:
scripts/tests/kyverno-auth-reviews,arc-staging,private-mail-preparationandvault-backup-recoverycompile and evaluate policy CEL withcel.NewEnv,Compile,ProgramandEval, plus one custom function. None of them sets a cost limit or uses optional types, so neither default shift reaches them, and they pass at this head. These tests model Kyverno conditions; the deployed Kyverno evaluates with its owngithub.com/google/cel-goline, so the test evaluator was already a different version before this bump. That is pre-existing and unchanged here. - Security. Dependency-only change in test code. No workflow, permission or manifest changed.
- Findings: none at P0/P1.
Verdict: no P0/P1 findings
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
Code coverage overviewLanguages: Go Go / code-coverage/go
Line coverage data for the main branch is not yet available. View coverage of the 10 most covered files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. |

This PR contains the following updates:
v0.32.0→v0.33.1Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
cel-expr/cel-go (cel.dev/cel-go)
v0.33.1Compare Source
Cherry-picks for backwards compatibility with legacy timestamp and timezone formats,
and support for google.protobuf.Value types as comprehension keys.
What's Changed
Full Changelog: cel-expr/cel-go@v0.33.0...v0.33.1
v0.33.0Compare Source
This release introduces a high-performance Pratt parser, a unified declarative cost model (
common/cost) with aggregate sizing and peak memory tracking, raw pointer traversal for native Go structs, and JSON/YAML parsing extensions, while eliminating quadratic type-checking bottlenecks.Features
EnablePrattParseroption (#1427, #1433, #1442, #1462, #1472, #1497, #1509, #1511, #1521)cel-cppwith iterative parenthesis handling, bounded expression nesting, and escaped function name support, delivering 8x–19x faster single-threaded parsing.common/cost),AggregateSizingStrategy, andCostModelVersion(#1430, #1435, #1441, #1474, #1478, #1482, #1512, #1519, #1525, #1537, #1548, #1556, #1558)cost.OverloadModelAST with containerKey/Elemsize propagation, aggregate sizing, value-backedElemOf/KeyOf/ElemTotal/KeyTotal/Lengthcombinators, and versioned compatibility viacel.CostModelVersion.cel.NativeTypesstruct field selection and presence checks viaunsafe.Pointeroffset traversal, adds generic Go slice/map adapters, and supports native type aliasing.json.parse,yaml.parse, andyaml.encodeextensions (returningoptional_typewith 10MB payload safety limits), alongsidebase64.encodeUrlandbase64.decodeUrlinext.Encoders.hasOnly,hasAny,hasAll, andhasExactlyinext.Lists,optional.hasValue(val)inOptionalTypesVersion(3), and single-evaluationoptMap/optFlatMapmacros inOptionalTypesVersion(4).ext/security/hmacwithhmac.digestand linear-time equality comparisons.Activation(#1483)cel.FunctionVarsbindings dynamically from the runtimeActivationorcel.Globals.cel.EnvJSON serialization (#1500, #1554)cel.Env.@blockcall tagging (#1467, #1544)common/astand tagscel.@blockcalls in compiled ASTs.fuzzing/.Fixes
O(N^2)type-checking latency and memory growth on long conjunctions (#1553).v0.32.0cost behavior atCostModelVersion(0)andv0.29.2cost limit error (#1571, #1572, #1573)EvalCancelledError("operation cancelled: actual cost limit exceeded") when runtime cost limits are exceeded and replaysv0.32.0static/runtime cost rules when pinned tocel.CostModelVersion(0).SafeSubtract,SafeTrunc, andSafeMultiplyByFactorTruncincommon/costsouint64and float-scaled costs saturate cleanly atmath.MaxUint64(includingNaN) and clamp negative values to0.Programevaluation and concurrent cost tracker race fix (#1480, #1484, #1486, #1488)Eval,ContextEval, andConcurrentEvalnil-safe, eliminates a data race when capturing cost trackers across goroutines, and removes time-based flakiness in interrupt checks.Foldabletwo-variable iteration.json:"-"tags andproto.ReflectMessagedereference (#1452, #1551, #1567)json:"-"skip tags on embedded Go structs, fixes JSON tag conversion inConvertToNative, and prevents invalid field dereferences overproto.ReflectMessage.Breaking Changes
There are no module path changes in this release, but callers relying on exact AST expansion shapes, golden cost estimates, or positional
SizeEstimateliterals should note:cel.CostModelVersion):cel.CostModelVersion(1)is now the default and tightens static/runtime cost bounds (propagating optional and container element sizes, charging1on absent optional qualifiers, and normalizing rational scale factors). Callers requiring exactv0.32.0cost compatibility can pincel.CostModelVersion(0).cel.OptionalTypes): Unpinnedcel.OptionalTypes()now defaults toOptionalTypesVersion(4), which wraps non-identifieroptMap/optFlatMaptargets in a single-evaluation comprehension (ComprehensionKind) rather than duplicating the target in a ternary call (CallKind), and includesoptional.hasValue(val)from v3. Pincel.OptionalTypes(cel.OptionalTypesVersion(2))to preserve legacy AST expansion and cost estimates.cost.SizeEstimateStruct Fields:cost.SizeEstimate(aliased bychecker.SizeEstimate) now includesKey *SizeEstimateandElem *SizeEstimatefields to track container element sizing. Unkeyed positional struct literals (SizeEstimate{0, 10}) must be updated to keyed literals (SizeEstimate{Min: 0, Max: 10}) orcost.FixedSizeEstimate/cost.RangedSizeEstimate.Notes on Performance
This release delivers major throughput and allocation improvements across all three phases of the CEL pipeline: parsing, type-checking, and evaluation.
Expected Impact
cel.EnablePrattParser(true)): Replacing ANTLR's reflection and DFA overhead with a custom recursive-descent Pratt parser and iterative parenthesis scanner (#1433, #1442, #1509) speeds up single-threaded parsing by 7.4x–19.6x (and parallel parsing by 17x–38.7x) while cutting parser memory allocations by 8x–15x.O(N^2)CPU and heap growth when checking large conjunctions of macros or parameterized overloads, reducing 400-term conjunction checking from 1.46s / 882 MB to 7.1ms / 5.8 MB (-99.5%).unsafe.Pointerforcel.NativeTypes(#1515, #1578) and routing optional proto3 field selections through precomputedfieldQualifierplans (#1568) reduces struct access and presence test latency by 57%–78% and eliminates intermediate heap allocations onhas()checks.ExecutionFrameas a directActivation(#1489), flatteningdynamicSlotActivation.slotValsfrom[]*slotValto[]slotVal(#1569), lazily initializing standard/extension declarations (#1501, #1502), and using generic slice lists (#1498) reduce per-evaluation allocations across comprehension and block expressions.Go-lang Benchmark Citation (benchstat)
The performance improvements can be verified running the repository's native benchmark harness with benchstat:
name old time/op new time/op deltaBenchmarkByCategory/Simple (Pratt vs ANTLR) 325.2µs ± 2% 27.4µs ± 1% -91.57% (#​1442)BenchmarkByCategory/Complex (Pratt vs ANTLR) 1179.7µs ± 2% 107.3µs ± 1% -90.90% (#​1442)BenchmarkByCategory/Macros (Pratt vs ANTLR) 423.0µs ± 1% 50.5µs ± 1% -88.06% (#​1442)BenchmarkByCategory/Errors (Pratt vs ANTLR) 1646.1µs ± 3% 83.8µs ± 1% -94.91% (#​1442)BenchmarkCheckLongConjunction/terms=400 1460ms ± 2% 7.1ms ± 1% -99.51% (#​1575)BenchmarkNativeTypes/PrimitiveFieldAccess 390ns ± 2% 100ns ± 1% -74.26% (#​1515)BenchmarkNativeTypes/FieldPresence 320ns ± 2% 86ns ± 1% -73.25% (#​1515)BenchmarkNativeTypes/NestedStructAccess 580ns ± 2% 125ns ± 1% -78.41% (#​1515)BenchmarkInterpreter/select_pb3_optional_fields 463ns ± 1% 197ns ± 1% -57.42% (#​1568)BenchmarkBlockEval 315ns ± 1% 268ns ± 1% -14.78% (#​1569)name old allocs/op new allocs/op deltaBenchmarkByCategory/Simple (Pratt vs ANTLR) 1,646 ± 0% 404 ± 0% -75.46% (#​1442)BenchmarkCheckLongConjunction/terms=400 882MB ± 0% 5.8MB ± 0% -99.34% (#​1575, B/op)BenchmarkNativeTypes/PrimitiveFieldAccess 5.00 ± 0% 1.00 ± 0% -80.00% (#​1515)BenchmarkNativeTypes/FieldPresence 4.00 ± 0% 0.00 ± 0% -100.00% (#​1515)BenchmarkInterpreter/select_pb3_optional_fields 3.00 ± 0% 1.00 ± 0% -66.67% (#​1568)BenchmarkBlockEval 8.00 ± 0% 5.00 ± 0% -37.50% (#​1569)Full Changelog: cel-expr/cel-go@v0.32.0...v0.33.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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.
This PR was generated by Mend Renovate. View the repository job log.