Skip to content

Conversation

@renovate-bot
Copy link
Contributor

@renovate-bot renovate-bot commented Feb 4, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
dev.cel:cel 0.9.0-proto3 -> 0.11.1 age adoption passing confidence

Release Notes

google/cel-java (dev.cel:cel)

v0.11.1

Compare Source

Significant changes
  • CEL-Java evaluates the following expressions to their proto equivalent form:
timestamp(100) -> google.protobuf.Timestamp
duration("1h") -> google.protobuf.Duration

Starting with this release, the runtime can evaluate these literals to the following Java native type equivalents:

timestamp(100) -> java.time.Instant
duration("1h") -> java.time.Duration

This new behavior is not yet enabled by default. Call CelOptions.Builder.evaluateCanonicalTypesToNativeValues(true) to explicitly enable it.

  • Previously only identifiers containing a period were allowed to be aliased. This constraint has been removed, so the following aliasing is now allowed:
CelContainer.newBuilder().addAlias("short", "really_long_package_name").build();

What's Changed

Features
  • Evaluate CEL's timestamp and duration types to their native equivalent values in #​790
  • Relax constraint for fully qualifying a package name when aliasing in #​837
Optimizations
  • Enhance CSE to handle two variable comprehensions in #​808
  • Override environment's expected result type during constant folding in #​815
  • Allow constant folding to fold equals operator in #​822
  • Enhance ConstantFoldingOptimizer to fold arithmetics involving timestamps and durations in #​825
Safety
  • Add comprehension nesting validator. in #​829
Bug fixes
  • Fixed negative zero comparison. "0.0 == -0.0" now evaluates to true
  • Fixed FileDescriptorSetConverter to always reference WellKnownTypes descriptors from generated ones in #​833
  • Fixed bytes(string) standard function to respect evaluateCanonicalTypesToNativeValues flag in #​828
Testing infra
  • Setup of the coverage index. in #​811
Miscellaneous
  • Renaming the CelComprehensionsExtensions docs to align more closely with lib implementation in #​807
  • Remove capability to serially increment mangled variable indices in #​806
  • Add an overload for CelMutableExpr.ofComprehension. in #​812
  • Fix Typo: "descedent" to "descendent". in #​827
  • Include comprehensions in CelEnvironment in #​838
  • Update evaluateCanonicalTypesToNativeValues documentation and fix tests in #​840

Full Changelog: google/cel-java@v0.11.0...v0.11.1

v0.11.0

Compare Source

Features

Breaking Changes

  • PR #​769 removes setContainer(String) method on the Cel, CelCompiler, and CelChecker builders. Callers must use setContainer(CelContainer) instead, which supports aliasing and abbreviations in addition to existing container resolution. For a migration that preserves existing behavior, simply provide CelContainer.ofName(string).

  • PR #​789 changes the internal representation of CEL's null and bytes literals (e.g., b'foo') to their CEL-native Java type equivalents (dev.cel.common.Values.NullValue and dev.cel.common.values.CelByteString) instead of their Protobuf counterparts (com.google.protobuf.NullValue and com.google.protobuf.ByteString). This is currently a breaking change only if your codebase references these literals through the CelConstant AST node. There are no observable changes in evaluation behavior, as this is currently controlled by a feature flag. We plan on enabling this by default in a future release.

Bug fixes

  • Fixed the filter/map macro to be linear in time and space complexity in #​746.
  • Fixed unknown merging to be linear in space complexity when referenced in binds in #​770.
  • Prevented comprehension identifiers from being mangled if the AST was not optimized in #​792.
  • Fixed replaceSubtree to properly populate source info for the three-argument map macro in #​794.
  • Corrected CelContainer.toBuilder() to properly copy aliases in #​775.
  • Excluded protobuf-javalite from the public artifacts for CEL in #​777.

What's Changed

Aliasing and Abbreviations
  • Add aliasing support to type-checker in #​757
  • Add abbreviation support to type-checker in #​760
CEL Policy Compiler
  • Optimize composed policies using Constant Folding and Common Subexpression Elimination in #​793
  • Add display_name field to CelPolicy.Variable element in #​741
  • Adding description and display name at Cel Policy level in #​744
  • Support for typename import aliases in policy compiler in #​771
CEL Environment
  • Add support for stdlib subsetting via CelEnvironment in #​736
  • Add support for macro inclusion/exclusion to CelEnvironmentExporter in #​756
  • Add support for extension versions in #​739
  • Implement CelEnvironmentExporter in #​753
  • Update the "encoders" extension to be compatible with CelEnvironmentExporter in #​763
  • Update the "protos" extension to be compatible with CelEnvironmentExporter in #​764
  • Update the "regex" extension to be compatible with CelEnvironmentExporter in #​765
  • Update the "sets" extension to be compatible with CelEnvironmentExporter in #​766
  • Update the "strings" extension to be compatible with CelEnvironmentExporter in #​767
  • Update "bindings" extension to be compatible with CelEnvironmentExporter in #​762
  • Add versions to the 'optional' library to gradually expose new functions in #​747
  • Refactor CelExtensionLibrary to centralize version definitions in #​761
Extensions
  • Checker and parser changes to support comprehensionsV2 in #​778
  • Checker and parser changes to support two variable comprehensions for remaining Macros in #​796
  • Introduce 'list' extension functions: 'slice', 'distinct', 'reverse', 'sort', 'sortBy' in #​740
  • AST changes to support two variable comprehensions in #​772
  • Adding runtime support for two variable comprehensions in #​799
  • Adding transformMap and transformMapEntry macros in #​800
  • Updating the README.md with CelComprehensionsExtensions docs in #​801
Miscellaneous
  • Internally accumulate unknowns to a mutable list in #​750
  • Migrate to Bzlmod in #​328
  • Support triggering runner library programmatically in #​725
  • Run conformance tests against published maven JARs in #​788
  • Add missing entries to REVERSE_OPERATORS in #​798
  • Remove cel.bind option from SubexpressionOptimizer in #​795

Full Changelog: google/cel-java@v0.10.1...v0.11.0

v0.10.1

This release features the following:

  • New Android-Optimized Runtime (Beta): Introducing a lightweight runtime with native support for Protobuf Lite, significantly reducing footprint for Android applications.
  • Expanded Extension Libraries: New Regular Expression extension library is now available, alongside enhanced Math extensions including floor, ceil, round, and bitwise operators.
  • CEL Unit test runner framework: Allows exercising tests for CEL expressions and policies via Bazel macros.
  • YAML Environment Serialization: Support for a bi-directional CEL environment serialization in YAML for improved configuration management.

Breaking Changes

The following PRs change the fully qualified class name for function binding:

Before: dev.cel.runtime.CelRuntime.CelFunctionBinding
After: dev.cel.runtime.CelFunctionBinding

  • Rename dev.cel.runtime.CelRuntime.CelFunctionBinding to dev.cel.runtime.CelFunctionBinding in #​627
  • Remove deprecated dev.cel.runtime.CelRuntime.CelFunctionBinding in #​628

Various utility methods for spawning protobuf-based CEL types have been moved out of CelTypes into CelProtoTypes or CelProtoMessageTypes:

  • Migrate from CelProtoTypes#createMessage(descriptor) to CelProtoMessageTypes#createMessage(descriptor) in #​568
  • Remove deprecated CelProtoTypes#createMessage in #​573
  • Create CelProtoMessageTypes for handling proto based types that require a full protobuf dependency in #​567

CelPolicyConfig and its sibling classes have been removed. These classes are superseded by CelEnvironment, which are functionally equivalent and provides functionality for environment setup beyond policy use cases.

  • Remove deprecated CelPolicyConfig and its parser in #​618

Bug Fixes

  • Include CEL Policy Compiler in next release's jar #​678
  • Fix an issue with the error message not including the source location and position during function dispatch in #​569
  • Fix JSON conversions involving FieldMask and Empty in #​644
  • Fix a fuzzer issue involving nested comprehensions in #​655
  • Fixing lastIndexOf incosistent behaviour in #​681
  • Fix bytes to string conversion to explicitly error on invalid code points in #​717
  • Fix optional or/orValue to propagate errors and unknowns in #​718
  • add string(bool) overload by @​maorwayn in #​728
  • Enable updated accumulator variable for CEL-Java parser by default. in #​537

What's Changed

Extension libraries
  • Implement math extension functions for floor, ceil, etc in #​650
  • Porting lists.range() to Java Stack in #​685
  • Adding the CEL regex extensions in #​708
  • Updating Regex ext to align with Google SQL and Adding Regex documentation in #​722
  • Aligning replace function in Regex ext with Google SQL in #​724
YAML serialization
  • Introduce serializable CEL environment with YAML in #​606
  • Support for CelEnvironment to YAML in #​675
Lite Runtime (Android)
  • Add rules_android to WORKSPACE, add cel_android_library bzl macro in #​583
  • Bring in android artifacts for guava and protobuf in WORKSPACE in #​584
  • Implement interfaces for CelLiteRuntime. Add Android runtime tests in #​615
  • Assert allowed CelOptions during CelLiteRuntime environment construction in #​619
  • Split ProtoAdapter into ProtoLiteAdapter to adapt lite messages in #​636
  • Bring in WORKSPACE dependencies for supporting CelLiteDescriptor codegen in #​647
  • Add interpreter test for protolite messages in #​656
  • Implement codegen for CelLiteDescriptor in #​659
  • Add CelLiteDescriptorPool and DefaultLiteDescriptorPool in #​664
  • Add ProtoMessageLiteValue and ProtoLiteCelValueConverter in #​666
  • Perform field selections on lite messages by reading from the wire format in #​668
  • Add ProtoMessageLiteValueProvider in #​669
  • Rename CelLiteRuntimeTest to CelLiteRuntimeAndroidTest in #​671
  • Add an interface for accepting CelValueProvider in lite runtime in #​672
  • Add protolite tests for Android in #​673
  • Add BaseProtoMessageValueProvider to decouple full/lite protobuf value providers in #​674
  • Handle unknown fields in messagelite in #​683
  • Rename CelFieldValueType to EncodingType in #​684
  • Derive the java class name for CelLiteDescriptor in #​687
  • Handle dependent protos when generating CelLiteDescriptor in #​692
  • Add late bound function resolver to lite runtime's program interface in #​693
  • Expose Late function bindings target for Android. in #​698
  • Allow resolution of proto messages from dyn-typed functions in lite runtime in #​700
  • Add @Generated annotation to codegened CelLiteDescriptor. Fix package location error prone warning for generated sources within srcjar. in #​704
  • Separately generate lite descriptors per message in #​705
  • Decouple CelTypeResolver from full protobuf implementation in #​590
  • Add DefaultInstanceMessageLiteFactory in #​630
  • Decouple ProtoCelValueConverter into BaseProtoCelValueConverter in #​660
  • Partition CEL standard functions per function definition in #​707
  • Remove extraneous protoTypeName argument from RuntimeTypeProvider interface in #​706
  • Add an additional messageName argument to MessageProvider interface in #​662
  • Add toRuntimeBuilder to CelLiteRuntime in #​620
Test runner framework
  • Push Testrunner to OSS in #​680
  • Support unknown_set in output. in #​720
Miscellaneous
  • Split CelEvaluationException from runtime build target in #​555
  • Remove deprecated ExprFeatures in #​557
  • Allow AsyncProgram to accept an async resolver for an attribute in #​711
  • Create a builder for CelEvaluationException in #​561
  • Replace InterpreterExceptions with CelEvaluationException in the runtime path in #​564
  • Remove InterpreterException in #​565
  • Update CelUnparser and open up visibility so that inheriting class can use it in #​556
  • Upgrade to Bazel 8, upgrade protobuf-java to 4.29.3 in #​582
  • Explicitly set locale for String.format calls in #​577
  • Enable conformance tests in #​596
  • Add CelCompilerTool java binary and compile_cel bzl library in #​594
  • Add empty binder to GlobalResolver in #​586
  • fixed typo in README.md by @​tobiKaboom in #​599
  • Add capability to accept a CEL environment in CelCompilerTool in #​611
  • Surface ExprId in CelIssue in #​604
  • Add test coverage for overlapping overloads and invalid struct creation in #​608
  • Decouple Activation from full protobuf implementation in #​614
  • Change default java toolchain and build from 8 to 11. Add separate CI for Java 8 builds in #​616
  • Augment runtime's toBuilder method to reinstantiate a builder from stored artifacts in #​623
  • Change WellKnownProto to lookup a descriptor by its type name. Add google.protobuf.Empty and google.protobuf.FieldMask to WKP in #​626
  • Drop support for java.lang.long uint support in CelValue in #​663
  • Make UnspecifiedType abstract in #​676
  • Fork timestamp/duration protobuf utility methods. Remove protobuf_java_util dependency from the runtime in #​682
  • Remove deprecated CelExtensions#sets() in #​695
  • Upgrade protobuf-java version to 4.31.0 in #​703
  • Remove deprecated builder methods for accepting unknown attribute patterns in #​714
  • Move Optional function bindings from standard lib to CelOptionalLibrary in #​710
  • Make CelRuntime.Program an interface in #​729
  • Switch CelStandardFunctions to use dev.cel.runtime.CelFunctionBinding in #​592

New Contributors

Full Changelog: google/cel-java@v0.9.1...v0.10.1

v0.9.1

[!NOTE]
If you encounter any compatibility issues with protobuf-java 4.x, use CEL-Java version 0.9.1-proto3 as a workaround. This is the same version as CEL-Java 0.9.1 with protobuf dependency pinned to 3.25.5.

What's Changed

  • Add support for quoted field selectors in java. in #​544
  • Add CelOptions for designating Regex program size in #​550

Miscellaneous

  • Retain the original identifier during parse when quoted identifier is disabled in #​547
  • Create a separate maven artifact for adapting canonical CEL protos (CelProtoAbstractSyntaxTree, dev.cel:protobuf maven coordinate) in #​551
  • Isolate CelAbstractSyntaxTree and CelSource from common build target in #​552

Full Changelog: google/cel-java@v0.9.0...v0.9.1


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 was generated by Mend Renovate. View the repository job log.

@renovate-bot renovate-bot requested review from a team as code owners February 4, 2025 18:31
@dpebot
Copy link

dpebot commented Feb 4, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Feb 4, 2025
@product-auto-label product-auto-label bot added the size: xs Pull request size is extra small. label Feb 4, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Feb 4, 2025
@meltsufin meltsufin changed the base branch from main to multi-approvers-gh-team May 22, 2025 19:26
@forking-renovate
Copy link

Edited/Blocked Notification

Renovate 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.

⚠️ Warning: custom changes will be lost.

@meltsufin meltsufin changed the base branch from multi-approvers-gh-team to main May 22, 2025 20:13
@renovate-bot renovate-bot force-pushed the renovate/project.cel.version branch from 6d7242f to 9843aa7 Compare June 20, 2025 17:51
@dpebot
Copy link

dpebot commented Jun 20, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 20, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 20, 2025
@renovate-bot renovate-bot changed the title chore(deps): update dependency dev.cel:cel to v0.9.1-proto3 chore(deps): update dependency dev.cel:cel to v0.10.0 Jun 25, 2025
@renovate-bot renovate-bot force-pushed the renovate/project.cel.version branch from 9843aa7 to 6e755cd Compare June 25, 2025 23:06
@dpebot
Copy link

dpebot commented Jun 25, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 25, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 25, 2025
@renovate-bot renovate-bot changed the title chore(deps): update dependency dev.cel:cel to v0.10.0 chore(deps): update dependency dev.cel:cel to v0.10.1 Jun 26, 2025
@renovate-bot renovate-bot force-pushed the renovate/project.cel.version branch from 6e755cd to b9f3a2a Compare June 26, 2025 02:49
@dpebot
Copy link

dpebot commented Jun 26, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 26, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 26, 2025
@renovate-bot renovate-bot changed the title chore(deps): update dependency dev.cel:cel to v0.10.1 chore(deps): update dependency dev.cel:cel to v0.11.0 Sep 4, 2025
@renovate-bot renovate-bot force-pushed the renovate/project.cel.version branch from b9f3a2a to 666a43e Compare September 4, 2025 03:50
@dpebot
Copy link

dpebot commented Sep 4, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Sep 4, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Sep 4, 2025
@renovate-bot renovate-bot changed the title chore(deps): update dependency dev.cel:cel to v0.11.0 chore(deps): update dependency dev.cel:cel to v0.11.1 Oct 20, 2025
@renovate-bot renovate-bot force-pushed the renovate/project.cel.version branch from 666a43e to 1c5d85c Compare October 20, 2025 22:12
@dpebot
Copy link

dpebot commented Oct 20, 2025

/gcbrun

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Oct 20, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Oct 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size: xs Pull request size is extra small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants