Skip to content

Conversation

renovate-bot
Copy link
Contributor

@renovate-bot renovate-bot commented Dec 9, 2024

This PR contains the following updates:

Package Change Age Confidence
dev.cel:cel 0.6.0 -> 0.11.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

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

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

v0.9.0

Compare Source

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

Breaking Changes

In an effort to make protobuf an optional dependency in CEL-Java, the following PR changes the resolution of type(expr) from proto based cel.expr type value into native equivalent dev.cel.common.types.CelType:

  • Expose CelType as a native representation for runtime type value. in #​505

The following PR changes the resolution of unknown values from cel.expr unknown expr value into native equivalent dev.cel.runtime.CelUnknownSet:

  • Enable adaptUnknownValueSetToNativeType by default in CelOptions in #​490
  • Remove adaptUnknownValueSetToNativeType flag from CEL in #​496

The following PR removes previously deprecated methods that deal with canonical CEL expr values from CelTypes and CelAbstractSyntaxTree classes. The removed methods have been moved to CelProtoAbstractSyntaxTree and CelProtoTypes:

  • Create CelProtoTypes utility class to handle CelExpr in proto format in #​524
  • Remove deprecated methods in CelTypes in #​531
  • Remove deprecated CelAbstractSyntaxTree#getProtoResultType in #​533

What's Changed

  • Add CelStandardDeclaration to allow environment subsetting for type-checker in #​448
  • Add CelStandardFunctions to allow environment subsetting for the runtime in #​461
  • Introduce late-bound functions into CEL-Java in #​494
  • Add option to enable updated accumulator variable. in #​538
  • Add CelOptions to disable string conversion and list/string concatenation in #​506
  • Add CelOptions to disable comprehension in #​507

Fixes

  • Enforce strictness of type function #​474
  • Fix macro parsing with receiver style args by @​oridag in #​481
  • Use an immutable copy of DefaultDispatcher to avoid synchronization in #​477

Miscellaneous

  • Fix feature_request.md config blocks by @​sergiitk in #​485

  • Remove unused test_java_proto package in #​526

  • Remove reference to CheckedExpr proto in DefaultMetadata in #​521

  • Migrate CelAttributeParser away from proto based expr to canonical cel expr in #​522

  • Add expr ID set as a field to CelUnknownSet. in #​471

  • Add a policy example that compiles then evaluates late bound functions in #​497

  • Migrate dev/cel/common/ tests to use proto3 canonical conformance protos follow up will address proto2. in #​512

  • Migrate dev/cel/extensions tests to use canonical conformance protos. in #​513

  • Remove unnecessary unknown value adaptation in ProtoAdapter in #​499

  • Migrate away from deprecated CelTypes methods in #​525

  • Remove the legacy createInterpretable(CheckedExpr) in #​487

  • Update runtime tests to refer to canonical cel conformance protos. in #​510

  • Correctly suppress AutoValueMutable warnings in #​475

  • Deprecate enableUnsignedLong option. Remove associated base interpreter tests. in #​515

  • Cleanup of unused methods and build targets in #​469

  • Move evaluateExpr utility methods to validator and optimizer in #​470

  • Update WORKSPACE dependencies in #​530

  • Remove references to deprecated type resolvers in the runtime. in #​520

  • Remove retainComprehensionStructure flag in SubexpressionOptimizer in #​493

New Contributors

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

v0.8.0

Compare Source

Fixes

  • Fix CEL-Java to be fully protobuf v4 compatible in #​466
  • Ensure empty YAML inputs yield checked exceptions #​463

Features

Miscellaneous

  • Expose CelPolicyValidationException constructors in #​450
  • Make CelAbstractSyntaxTree and its dependents an AutoValue class to allow for equality checks in #​458
  • Additional test case and error message refinement in #​464

Full Changelog: google/cel-java@v0.7.1...v0.8.0

v0.7.1

[!IMPORTANT]
enableUnsignedLongs in CelOptions is now enabled by default as of #​410. Unsigned integer literals (uint) in CEL expressions will now be represented as com.google.common.primitives.UnsignedLong instead of java.lang.Long when evaluated. If your expressions expose these unsigned integer literals directly or you have custom functions that work with unsigned integers, you may need to explicitly disable this flag and make adjustments to avoid errors.

Features

  • Add ListsExtension with flatten function #​427, #​434
  • Introduce ProtoUnsetFieldOptions to support unset handling like C++ in #​403
  • Include identity functions in the standard definitions in #​405
  • Add string to boolean conversion function in the standard definition in #​407
  • Provide an overload to hide all fields on a message with ProtoTypeMask in #​415
  • Parse explanations in match blocks in #​420
  • Improved support for nested rules in #​422
  • Add a validator for enforcing AST depth limit in #​421
  • Enforce composed AST stays below the configured depth limit in #​424
  • Improve CSE for comprehensions by taking into their nesting level and types into account in #​430
  • Add an option to prevent breaking apart a comprehension in CSE in #​432
  • Enable retainComprehensionStructure by default in #​436
  • Add unreachable checks in policies in #​423

Fixes

  • Do not override the container if it's missing from policy config in #​401
  • Add option to specify folding designated custom functions only in #​402
  • Fix conditionally nested rules to include its condition in #​404
  • Fix runtime equality behavior for sets extension in #​416
  • Reduce count of errors joined together during parsing error in #​417 #​418

Miscellaneous Changes

  • Upgrade protobuf version to 4.28.0 in #​439
  • Remove unused list/map conversion functions from standard definitions in #​406
  • Open source Java conformance tests in #​413
  • Change cel_spec repo url to 0.16.0 in WORKSPACE in #​419
  • Migrate test_all_types proto over to the cel-spec variant in #​433

Full Changelog: google/cel-java@v0.6.0...v0.7.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.

@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Dec 9, 2024
@product-auto-label product-auto-label bot added the size: xs Pull request size is extra small. label Dec 9, 2024
@blakeli0 blakeli0 added the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Dec 9, 2024
@blakeli0
Copy link
Collaborator

blakeli0 commented Dec 9, 2024

cel v0.8.0 brings in protobuf-java 4.28.2, do not merge until we decide to upgrade protobuf-java to 4.28.x in sdk-platform-java.

@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from c6d8498 to 3c85dc5 Compare December 26, 2024 21:32
@renovate-bot renovate-bot changed the title deps: update dependency dev.cel:cel to v0.8.0 deps: update dependency dev.cel:cel to v0.9.0-proto3 Dec 26, 2024
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch 2 times, most recently from a58020c to 08fb16e Compare January 14, 2025 05:14
@renovate-bot renovate-bot changed the title deps: update dependency dev.cel:cel to v0.9.0-proto3 deps: update dependency dev.cel:cel to v0.9.1 Jan 14, 2025
@renovate-bot renovate-bot changed the title deps: update dependency dev.cel:cel to v0.9.1 deps: update dependency dev.cel:cel to v0.9.1-proto3 Jan 14, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 08fb16e to 915f20f Compare January 14, 2025 20:47
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 915f20f to a2d32cf Compare January 23, 2025 17:54
@kokoro-team kokoro-team removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 23, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from a2d32cf to b10d37e Compare January 23, 2025 20:11
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 23, 2025
@kokoro-team kokoro-team removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jan 23, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from b10d37e to 857413f Compare March 5, 2025 16:43
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 5, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 857413f to 856d994 Compare March 12, 2025 16:07
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 12, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 856d994 to 40c816d Compare March 17, 2025 14:17
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 17, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 17, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 40c816d to 0bbf39a Compare April 8, 2025 14:34
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 8, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 8, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 0bbf39a to 835510f Compare April 30, 2025 17:32
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 30, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 30, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 835510f to 9f36909 Compare June 9, 2025 07:48
@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 9, 2025
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 9, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from 9f36909 to 362823a Compare June 26, 2025 01:43
@renovate-bot renovate-bot changed the title deps: update dependency dev.cel:cel to v0.9.1-proto3 deps: update dependency dev.cel:cel to v0.10.1 Jun 26, 2025
@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 force-pushed the renovate/dev.cel.version branch from 362823a to a46fda3 Compare July 22, 2025 15:12
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jul 22, 2025
@renovate-bot renovate-bot changed the title deps: update dependency dev.cel:cel to v0.10.1 deps: update dependency dev.cel:cel to v0.11.0 Sep 4, 2025
@renovate-bot renovate-bot force-pushed the renovate/dev.cel.version branch from a46fda3 to 6faadfb Compare September 4, 2025 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge Indicates a pull request not ready for merge, due to either quality or timing. kokoro:force-run Add this label to force Kokoro to re-run the tests. size: xs Pull request size is extra small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants