All Versions
10
Latest Version
Avg Release Cycle
46 days
Latest Release
5 days ago

Changelog History

  • v0.4.1

    March 26, 2020

    🐛 Bug fix release to address issues introduced in v0.4.0

    🛠 Fixes

    • 👍 Enable support for index operations with global function calls as arguments #325
    • ⚡️ Ensure mutable shared state updates are appropriately synchronized #322
  • v0.4.0

    February 06, 2020

    🚀 The v0.4.0 release of CEL-Go introduces several fixes, features, and breaking changes since v0.3.2.

    🔋 Features

    • 👍 Top-level support for partial evaluation
      • Mark attributes (either whole variables or parts of them) as unknown.
      • Generate residual ASTs from partial evaluations using cel.EvalDetails.
    • Replaced several top-level interfaces with concrete structs.
    • Simplified the embedding of CEL into larger languages, such as CEL Policy Templates.
    • 👌 Improved field selection and indexing performance by 10x for proto2 and proto3.
    • Introduced a new cel.Library interface and extension library for dealing with string manipulation.

    🛠 Fixes

    • 🛠 Checker support for protobuf sfixed32, sfixed64 fields.
    • Convert certain type param resolution to dyn to prevent type resolution errors.
    • Disable short-circuiting in the exists_one macro to be consistent with CEL spec.
    • ✂ Remove dyn as a runtime type, and add it as an identity function dyn(<expr>) == expr.
    • Ensure strings must be valid unicode.
    • ✂ Remove support for!1 as a valid parse-only expression.
    • 🛠 Fix recursive registration of imported proto files within a descriptor.
    • ✅ Enable proto supporting conformance tests.
    • 🔄 Change the cel.AstToString function to behave like a single-line formatter.
    • Convert the text representation of byte literals to octal to be compatible with Google SQL.
    • 👌 Improved support for ConvertToNative for maps and lists.
    • 🛠 Fix error propagation on !=.

    💥 Breaking Changes

    • The cel.Issues, cel.Ast, cel.Env, and cel.EvalDetails interfaces have been replaced with concrete types.
    • The interpreter.NewAdaptingActivation and interpreter.AdaptingActivation have been replaced by automatic propagation and use of the ref.TypeAdapter during variable resolution.
    • The cel.Env construction will defer environment validation until the first env.Check call.
    • The Program.Eval(Activation) method will result in an error if a declared variable appears in the expression, but not in the activation. Use Env.UnknownActivation() and cel.EnvOptions(OptPartialEval) to achieve the same behavior.
  • v0.4.0-beta.1

    February 06, 2020

    🚀 This is a beta release for v0.4.0 of CEL-Go. The release introduces several fixes, features, and breaking changes since v0.3.2.

    🔋 Features

    • 👍 Top-level support for partial evaluation
      • Mark attributes (either whole variables or parts of them) as unknown.
      • Generate residual ASTs from partial evaluations using cel.EvalDetails.
    • Replaced several top-level interfaces with concrete structs.
    • Simplified the embedding of CEL into larger languages, such as CEL Policy Templates.
    • 👌 Improved field selection and indexing performance by 10x for proto2 and proto3.

    🛠 Fixes

    • 🛠 Checker support for protobuf sfixed32, sfixed64 fields.
    • Convert certain type param resolution to dyn to prevent type resolution errors.
    • Disable short-circuiting in the exists_one macro to be consistent with CEL spec.
    • ✂ Remove dyn as a runtime type, and add it as an identity function dyn(<expr>) == expr.
    • Ensure strings must be valid unicode.
    • ✂ Remove support for!1 as a valid parse-only expression.
    • 🛠 Fix recursive registration of imported proto files within a descriptor.
    • ✅ Enable proto supporting conformance tests.
    • 🔄 Change the cel.AstToString function to behave like a single-line formatter.
    • Convert the text representation of byte literals to octal to be compatible with Google SQL.
    • 👌 Improved support for ConvertToNative for maps and lists.
    • 🛠 Fix error propagation on !=.

    💥 Breaking Changes

    • The cel.Issues, cel.Ast, cel.Env, and cel.EvalDetails interfaces have been replaced with concrete types.
    • The Program.Eval(Activation) method will result in an error if a declared variable appears in the expression, but not in the activation. Use Env.UnknownActivation() and cel.EnvOptions(OptPartialEval) to achieve the same behavior.
  • v0.4.0-alpha.2

    October 30, 2019

    🚀 Alpha release which improves the usability of CEL values. Another point release on the way toward v0.4.0.

    🔋 Features

    👌 Improve type conversion capabilities for lists and maps.

  • v0.4.0-alpha.1

    October 25, 2019

    🚀 This is an alpha release of the planned 0.4.0 release which will feature the following changes:

    • Replace a handful of top-level interfaces with concrete structs.
    • Complete the known unknowns implementation.
    • Making it easier to embed CEL in larger rule engines.

    🚀 The alpha releases will include breaking changes and bug fixes on the path to publishing the official 0.4.0 release.

    🔋 Features

    • 👌 Support for parsing from common.Source objects.
    • 📜 Ability to override the creation of common.Location objects at parse time.
    • 🔀 Instances of common.Errors and cel.Issues may be merged together.
    • 🆕 New test case showing how to use custom macros.

    🛠 Fixes

    • 🛠 Fix for error propagation on != operations.
    • 🛠 Fix for panic during type-check when the comprehension ranges are of invalid type.

    💥 Breaking Changes

    • 🚚 The common.Source interface removes the IDOffset and IDLocation methods and adds NewLocation
    • The cel.Issues interface has been replaced by a concrete struct type.
  • v0.3.2

    October 09, 2019

    🔋 Features

    • 👌 Support for Env extension by copy with additional options.

    🛠 Fixes

    • 👕 Lint fixes for go report card.
  • v0.3.1

    October 08, 2019

    🛠 Fixes

    • 📜 The parser/unparser.go appropriately handles space-sensitive operators.
    • 👍 The interpreter/planner.go supports the overloading operations by overload id.
    • 👌 Support for wrapper, protobuf.Any, and Proto3 to JSON-based protobuf.Value conversions
      within ConvertToNative.
    • 👌 Support for iterating over the interpreter/evalstate.go values.
    • ✂ Removed a pathological recursion case from the type-checker.
  • v0.3.0

    August 20, 2019

    🔋 Features

    • 👍 Protobuf wrapper type support.
    • The cel.AstToString helper to decode from ASTs to human readable expressions.
    • 🐎 Performance optimizations to treat list literals as sets when used with in operations.

    🛠 Fixes

    • Byte literals no longer be tied to UTF-8 codepoints.
    • Type resolution fix for null assignable to null
    • Type join fix for parameterized function argument types.
    • 👍 Better handling for panics and concurrent execution.

    💥 Breaking Changes

    • ⚡️ cel.OptFoldConstants eval option has been renamed to cel.OptOptimize
  • v0.2.0

    April 01, 2019
  • v0.1.0

    February 05, 2019