Release v0.17.0
TristonianJones
released this
18 Jul 22:05
·
163 commits
to master
since this release
At a high-level this release introduces several changes which should improve ease of use
while also improving the evaluation safety and quality:
- Standard library functions may be extended by using
cel.Function
options. - The unknown type now contains information about which field references were unknown.
- Type representations have been consolidated to
*types.Type
. - New options have been added to add custom AST validations which are run after type-checking.
- Additional macros were added for optional types, and a new extension was added for list slicing.
- The
cel.ContextProtoVars
method has been added to bind proto fields to variable names,
complementingcel.DeclareContextProto
.
Features
- Unify decls.Type with types.Type [#745]
- Introduce optFlatMap and OptionalTypes documentation [#744]
- Include expression id on parser and checker errors [#725]
- Implement errors.Unwrap for types.Err. [#728]
- Allow extension of stdlib functions [#747]
- Add list library with slice method [#753]
- Export FormatCELType in the 'cel' package [#763]
- Validators for common literals and use cases [#765]
- Comprehension nesting limit validator [#769]
- Unify type adapter / provider representations [#770]
- Benchmark harness with some initial reference cases [#750]
- Simplified partial state evaluation [#766]
- Update types.Unknown with attribute trails [#776]
- ContextProtoVars() to simplify proto-based inputs [#779]
- Variadic logical operator AST support [#726]
Fixes
- Add the overload reference for optional field selection [#730]
- Correct a typo in the README [#731]
- Clear iteration variable data during expression pruning [#740]
- Restore iter range pruning on comprehension ASTs [#757]
Breaking Changes
The following API changes may break users of cel-go:
- Removal of
*types.TypeValue
, replaced by*types.Type
- Removal of
*exprpb.Type
from public interfaces such as thechecker.AstNode
- Change in type definition for
*types.Unknown
. Switch from a type alias for[]int64
to a structured type.
New Contributors
Full Changelog: v0.16.0...v0.17.0