Releases: google/cel-go
Release v0.26.0
New Features ✨
- Add support for global constants to constant folder by @zeitgeist87 in #1180
- Adding CEL Regex Extensions by @maskri17 in #1187
- Sqrt func by @haribalan in #1166
- Add bazel rule to trigger cel tests and return policy metadata while creating CEL programs by @aakash070 in #1176
- Create an util method to convert rpc status to eval status by @ChinmayMadeshi in #1178
- Add test runner option to configure a custom test suite parser by @aakash070 in #1189
- Cost tracking for list operations by @TristonianJones in #1192
Bug Fixes 🐛
- Fix lastIndexOf behavior against an empty string in strings extension by @l46kok in #1173
- Fix container setting for cel test all types example in online REPL by @l46kok in #1182
- fix(checker): Correct Sprintf argument count by @cuishuang in #1185
Test Updates 🧪
- fix test runner test cases by @aakash070 in #1170
- Update test runner to avoid using flags when not necessary by @TristonianJones in #1174
- add support for handling unknown expression ids in test result by @aakash070 in #1183
- Test case for aliasing container imports by @TristonianJones in #1193
Documentation 📚
- Add documentation for YAML quirks in celpolicy by @jnthntatum in #1186
Dependency Updates ⬆️
- Bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #1188
Release v0.25.0
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
Release v0.24.1
Fixes
- Separate unnest optimization from composer to capture type info [#1138]
Full Changelog: v0.24.0...v0.24.1
Release v0.24.0
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
- @chaewonkong made their first contribution in #1127
Full Changelog: v0.23.2...v0.24.0
Release v0.24.0-beta
Features
- 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]
Fixes
- ContextEval support for Unknowns [#1126]
- Fix godoc formatting for Lists and OptionalTypes functions [#1127]
- Default enable DefaultUTCTimeZone [#1130]
New Contributors
- @chaewonkong made their first contribution in #1127
Full Changelog: v0.24.0-alpha...v0.24.0-beta
Release v0.24.0-alpha
Alpha release for testing new subsetting features
What's Changed
- Helper methods for subsetting function overloads (#1120)
Full Changelog: v0.23.2...v0.24.0-RC1
Release v0.23.2
Corrects one remaining issue for cost computations from the v0.23.0 releases
Fixes
- Bump github.com/golang/glog from 1.0.0 to 1.2.4 in /codelab in the go_modules group across 1 directory by @dependabot in #1115
- Minor update on cost order by @TristonianJones in #1119
Full Changelog: v0.23.1...v0.23.2
Release v0.23.1
Minor release to address cost tracking and size estimation [#1113]
Full Changelog: v0.23.0...v0.23.1
Release v0.23.0
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
- @bigkevmcd made their first contribution in #1067
- @hudlow made their first contribution in #1088
- @dbuduev made their first contribution in #1098
- @zeitgeist87 made their first contribution in #1101
Full Changelog: v0.22.1...v0.23.0
Release v0.22.1
Fixes
- Additional hardening on legacy macros [https://github.com//pull/1064]
- Additional nil-safety checks with corresponding test updates [https://github.com//pull/1073]
- Add two-variable comprehension support to cel-policy [https://github.com//pull/1074]
- Fix optional test to short-circuit [https://github.com//pull/1076]
- Fix nil-type when two-var comprehension has a dyn range [https://github.com//pull/1077]
New Contributors
- @aakash070 made their first contribution in #1069
Full Changelog: v0.22.0...v0.22.1