All Versions
14
Latest Version
Avg Release Cycle
46 days
Latest Release
30 days ago

Changelog History
Page 1

  • v0.6.0

    September 22, 2020

    ๐Ÿ‘Œ Improvements

    • [#362] Expose interfaces that allow users to write their own CEL expression decorators.
    • โšก๏ธ [#360] Optimize type conversion functions, spot errors in timestamp and duration program plan time.
    • [#328] Publish the CEL-Go Codelab source.
    • [#372] Introduce upper / lower ASCII string functions.
    • [#373, #379] Introduce base64 encode / decode.
    • ๐Ÿ‘ [#367] Aliased identifier support

    ๐Ÿ›  Fixes

    • [#361] Fix type map references for Attributes and id references within qualifiers.
    • ๐Ÿ‘ [#375] Support hexidecimal int literals.
    • ๐Ÿ‘ [#382] Support gogo protogen protos for better Kubernetes proto support.
    • [#384, #386] Fix Residual computations to be non-mutating.

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ‘€ Aliased identifier support introduces breaking changes by replacing the Packager concept with a Container to better match the CEL specification. See #367 for more information about the specific changes.

  • v0.5.1

    May 22, 2020

    ๐Ÿ›  Fixes

    ๐Ÿ‘ [#357] Implements timestamp(<unix_epoch>) which was supported in the checker, but not implemented.

    ๐Ÿ”‹ Features

    [#354] Introduces a feature flag mechanism for introducing new features behind flag guards.

  • v0.5.0

    May 08, 2020

    ๐Ÿ‘Œ Improvements

    • [#342] Introduced decls.NewVar and decls.NewConst as a replacement for decls.NewIdent
    • ๐Ÿ“œ [#343] Parse and check errors are stable sorted by their source location.
    • ๐ŸŽ [#348] Added sync.Pool in front of ANTLR lexer / parser to improve checker performance.

    ๐Ÿ›  Fixes

    • ๐Ÿ‘€ [#341] Support for namespaced functions. See Breaking Changes for more information before use.
    • ๐Ÿšš [#345] Doc fix to remove reference to a removed evaluation option.

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ‘Œ Support for namespaced function resolution means that CEL extension functions can now have qualified names, such as base64.encode. This has always been supported by the CEL type-checker and the CEL specification, but was never properly supported by the evaluators. As part of this fix, the type-checker introduces AST rewrites to ensure that all identifiers in the checked AST are fully-qualified. This change simplifies the execution planning phase for the program, but may introduce structural differences between v0.5+ ASTs and those created with prior releases of CEL.

    The structural difference introduced with this change should not affect evaluation. If anything v0.5+ ASTs will improve the conformance of the C++ evaluator with the CEL spec.

  • v0.4.2

    April 21, 2020

    ๐Ÿ›  Fixes

    • ๐Ÿ‘‰ Make the has() macro consistent with cel-spec for proto2 and proto3 message types.
    • ๐Ÿ‘Œ Improve type resolution when there are multiple overloads with the same return type.
    • โœ‚ Remove shared state from the Env#Extend() call. #issues/333
    • ๐Ÿ›  Fix proto2 enum assignments during object constructions.
    • ๐Ÿ‘‰ Make Attribute values Stringer implementations to make them human-readable in errors.

    ๐Ÿ’ฅ Breaking Changes

    The Env#Extend() changes introduced a new method on the ref.TypeRegistry interface called Copy.
    ๐Ÿ‘ If the user has implemented a custom TypeRegistry, the Copy method is required in order to support
    extension. If the TypeRegistry is immutable, it may trivially return itself.

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