Repository navigation
Commit c6d4bbb
authored
Bump dev.cel:cel from 0.12.0 to 0.13.0 (#471)
Bumps [dev.cel:cel](https://github.com/google/cel-java) from 0.12.0 to
0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/cel-java/releases">dev.cel:cel's
releases</a>.</em></p>
<blockquote>
<h2>v0.13.0</h2>
<h1>Release v0.13.0</h1>
<p>This release brings significant performance optimizations, robust
support for parsed-only evaluation across standard extensions, and
several important bug fixes to align behavior with other CEL
implementations. It also introduces major enhancements to the planner
and policy compilation.</p>
<h2>🚀 Highlights & New Features</h2>
<ul>
<li><strong>Planner Promotion & Enhancements:</strong> The planner
runtime builder has been officially promoted from experimental to the
main factories (<a
href="https://redirect.github.com/google/cel-java/pull/1033">#1033</a>).
<strong>Note: This planner runtime will become the default in a future
release.</strong> Additionally, the planner now supports trace (<a
href="https://redirect.github.com/google/cel-java/pull/1031">#1031</a>),
exhaustive evaluation (<a
href="https://redirect.github.com/google/cel-java/pull/1032">#1032</a>),
and partial evaluation via unknowns (<a
href="https://redirect.github.com/google/cel-java/pull/982">#982</a>).</li>
<li><strong>Native Extensions:</strong> We are thrilled to introduce
Native Extensions (<a
href="https://redirect.github.com/google/cel-java/pull/1037">#1037</a>),
a powerful new feature that allows you to seamlessly bind and evaluate
native Java objects and functions directly within your CEL environment.
This drastically reduces boilerplate and avoids the overhead of
converting your Java types into intermediate representations. Please
refer to the <a
href="https://github.com/google/cel-java/blob/main/extensions/src/main/java/dev/cel/extensions/README.md#native-types">documentation
here</a>.</li>
<li><strong>Parsed-Only Evaluation Support:</strong> Broadened
parsed-only evaluation support and test coverage across all standard
extensions, including Proto (<a
href="https://redirect.github.com/google/cel-java/pull/1015">#1015</a>),
Comprehensions (<a
href="https://redirect.github.com/google/cel-java/pull/1018">#1018</a>),
Lists (<a
href="https://redirect.github.com/google/cel-java/pull/1016">#1016</a>),
Math (<a
href="https://redirect.github.com/google/cel-java/pull/1011">#1011</a>),
Sets (<a
href="https://redirect.github.com/google/cel-java/pull/1021">#1021</a>),
Encoders (<a
href="https://redirect.github.com/google/cel-java/pull/1020">#1020</a>),
Bindings (<a
href="https://redirect.github.com/google/cel-java/pull/1014">#1014</a>),
and Strings (<a
href="https://redirect.github.com/google/cel-java/pull/1019">#1019</a>).</li>
<li><strong>New String Extensions:</strong> Added <code>quote</code> and
<code>reverse</code> to the string extensions library (<a
href="https://redirect.github.com/google/cel-java/pull/998">#998</a>).
<code>string.split</code> was also changed to return an immutable list
(<a
href="https://redirect.github.com/google/cel-java/pull/1019">#1019</a>).</li>
<li><strong>Policy Improvements:</strong> Introduced the CEL Policy
Conformance Test Runner for Java and enabled it in OSS (<a
href="https://redirect.github.com/google/cel-java/pull/1043">#1043</a>,
<a
href="https://redirect.github.com/google/cel-java/pull/1053">#1053</a>),
added support for context variables in the YAML environment (<a
href="https://redirect.github.com/google/cel-java/pull/1046">#1046</a>),
and allowed specifying a set of optimizers to run during policy
compilation (<a
href="https://redirect.github.com/google/cel-java/pull/986">#986</a>).</li>
</ul>
<h2>⚡ Performance Improvements</h2>
<p>We have invested heavily in optimizing the performance
characteristics of the <strong>planner runtime</strong> compared to the
legacy runtime (<a
href="https://redirect.github.com/google/cel-java/pull/999">#999</a>, <a
href="https://redirect.github.com/google/cel-java/pull/1000">#1000</a>,
<a
href="https://redirect.github.com/google/cel-java/pull/1001">#1001</a>,
<a
href="https://redirect.github.com/google/cel-java/pull/1002">#1002</a>,
<a
href="https://redirect.github.com/google/cel-java/pull/1003">#1003</a>,
<a
href="https://redirect.github.com/google/cel-java/pull/1041">#1041</a>).
Benchmark highlights include:</p>
<ul>
<li><strong>Massive CPU Speedups:</strong> Drastic execution time cuts,
especially for expressions involving comprehensions (up to an
<strong>88% reduction</strong>). When caching programs, non-protobuf
operations see up to a <strong>92% improvement</strong> (e.g., execution
dropping from 77µs down to 10µs).</li>
<li><strong>Significant GC Pressure Reduction:</strong> Elimination of
unnecessary temporary object allocations results in up to a <strong>99%
memory footprint reduction</strong> for loops and list creation (e.g.,
dropping from 160 KB down to just 1 KB for cached, type-checked
programs).</li>
<li><strong>Evaluation Nuance:</strong> For non-protobuf work evaluated
on-the-fly, execution is 40%–80% faster with a 60%–97% memory savings.
For deep protobuf field selections, the planner introduces a negligible,
fractional microsecond overhead due to the new planning lifecycle.</li>
</ul>
<h2>🛠️ Configuration & Default Changes</h2>
<ul>
<li><strong>Quoted Identifiers:</strong> Quoted identifiers are now
<strong>enabled by default</strong> (<a
href="https://redirect.github.com/google/cel-java/pull/997">#997</a>).</li>
<li><strong>Timestamp Epoch:</strong> <code>enableTimestampEpoch</code>
is now set by default (<a
href="https://redirect.github.com/google/cel-java/pull/989">#989</a>),
and the configuration option has been deprecated (<a
href="https://redirect.github.com/google/cel-java/pull/991">#991</a>).</li>
</ul>
<h2>🐛 Bug Fixes & Correctness</h2>
<ul>
<li><strong>Math Consistency:</strong> Fixed <code>math.round</code> to
use <code>HALF_UP</code> to match documentation and align behavior with
<code>cel-go</code> and <code>cel-cpp</code> (<a
href="https://redirect.github.com/google/cel-java/pull/1054">#1054</a>).
Removed signed long support for <code>uint</code> (<a
href="https://redirect.github.com/google/cel-java/pull/1011">#1011</a>).</li>
<li><strong>CEL Null Handling:</strong> Fixed null assignability for
repeated and map fields (<a
href="https://redirect.github.com/google/cel-java/pull/981">#981</a>)</li>
<li><strong>Evaluation Fixes:</strong>
<ul>
<li>Fixed partial evaluation to properly check for comprehension bound
variables in the planner (<a
href="https://redirect.github.com/google/cel-java/pull/1004">#1004</a>).</li>
<li>Fixed constant folding to prevent errors when sub-ASTs contain
unbound variables (<a
href="https://redirect.github.com/google/cel-java/pull/1005">#1005</a>).</li>
<li>Fixed JSON field name resolution for shadowed cases (<a
href="https://redirect.github.com/google/cel-java/pull/995">#995</a>).</li>
<li>Fixed <code>accu_init</code> to be lazily initialized in the folder
(<a
href="https://redirect.github.com/google/cel-java/pull/1014">#1014</a>).</li>
<li>Fixed a nested rule issue in policies (<a
href="https://redirect.github.com/google/cel-java/pull/1039">#1039</a>).</li>
</ul>
</li>
<li><strong>Error Reporting:</strong> Function failures
(dispatch/overload match) now always include the function name (<a
href="https://redirect.github.com/google/cel-java/pull/1024">#1024</a>).
Tracked incompatible output types to provide more accurate error
reporting (<a
href="https://redirect.github.com/google/cel-java/pull/1050">#1050</a>).</li>
<li><strong>YAML/Serialization:</strong> Various fixes applied to
<code>CelEnvironment</code>, YAML parsing, and serialization (<a
href="https://redirect.github.com/google/cel-java/pull/987">#987</a>),
including using structured types in YAML exports (<a
href="https://redirect.github.com/google/cel-java/pull/983">#983</a>).</li>
</ul>
<h2>👏 New Contributors</h2>
<p>A warm welcome and thank you to our new contributors for this
release!</p>
<ul>
<li><a href="https://github.com/pkwarren"><code>@pkwarren</code></a>
made their first contribution adding string extensions
(<code>quote</code>, <code>reverse</code>) in <a
href="https://redirect.github.com/google/cel-java/pull/998">#998</a></li>
<li><a href="https://github.com/rayokota"><code>@rayokota</code></a>
made their first contribution fixing <code>math.round</code> rounding
behavior in <a
href="https://redirect.github.com/google/cel-java/pull/1054">#1054</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google/cel-java/compare/v0.12.0...v0.13.0">https://github.com/google/cel-java/compare/v0.12.0...v0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google/cel-java/commit/c57d9d02259795c761e82f8870303b93a7a672c8"><code>c57d9d0</code></a>
Release 0.13.0</li>
<li><a
href="https://github.com/google/cel-java/commit/2a3fa905c2817d67db990061cb292e91a355e679"><code>2a3fa90</code></a>
Merge pull request <a
href="https://redirect.github.com/google/cel-java/issues/1054">#1054</a>
from rayokota:fix-math-round</li>
<li><a
href="https://github.com/google/cel-java/commit/bfc4fdfa9a846c493028ca986c06eda88b2a207e"><code>bfc4fdf</code></a>
Refactor native extensions to separately hold type references</li>
<li><a
href="https://github.com/google/cel-java/commit/0837a5190501466d3b4545c72f26ef4e8dbbedef"><code>0837a51</code></a>
Fix double qualification in NamespacedAttribute</li>
<li><a
href="https://github.com/google/cel-java/commit/7bf3e04351570ce8a9e49e947aae18c335abb2bc"><code>7bf3e04</code></a>
Optimize list/map adaptations</li>
<li><a
href="https://github.com/google/cel-java/commit/558f09e38d9d754de4286c736bdf555b612bd827"><code>558f09e</code></a>
Implement Native Extensions</li>
<li><a
href="https://github.com/google/cel-java/commit/9988a347afbe817614c7817e92f23d52c3791872"><code>9988a34</code></a>
Enable policy conformance test suite in OSS</li>
<li><a
href="https://github.com/google/cel-java/commit/bdfe82340650d66e5fc8446780bb539a0c31e144"><code>bdfe823</code></a>
Fix math.round to use HALF_UP to match doc, cel-go/cel-cpp</li>
<li><a
href="https://github.com/google/cel-java/commit/14d4c2e39151f2e99e36f9818a9118b01c1d9ed3"><code>14d4c2e</code></a>
Track incompatible output types for accurate error reporting</li>
<li><a
href="https://github.com/google/cel-java/commit/966b0cf4238191c91c291aa0a9b60571231f2c07"><code>966b0cf</code></a>
Add support for running policy error cases in conformance tests</li>
<li>Additional commits viewable in <a
href="https://github.com/google/cel-java/compare/v0.12.0...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>1 parent 3b52683 commit c6d4bbb
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
0 commit comments