Change Log

This document contains notes on the major changes for each version of the Rule Engine. In comparison to the git log, this list is curated by the development team for note worthy changes.

Version 4.x.x

Version 4.4.1

In Progress

Version 4.4.0

Released v4.4.0 on April 5th, 2024

  • Added the $range builtin function

  • Added the rule_engine.parser.utilities module with a few functions and documentation

Version 4.3.0

Released v4.3.0 on January 15th, 2024

  • Added the is_nan attribute for FLOAT values

Version 4.2.0

Released v4.2.0 on December 11th, 2023

  • Added attributes for coercion of types to themselves, e.g. to_str for STRING values

Version 4.1.0

Released v4.1.0 on August 3rd, 2023

  • Added the $abs builtin function

  • Added support to from_type to handle Python’s type hints

Version 4.0.0

Released v4.0.0 on July 15th, 2023

  • Breaking: Changed STRING.to_ary to return an array of characters instead of splitting the string

    • Use the new builtin $split function to split a string on whitespace into an array of words

  • Breaking: Changed Context to use keyword-only arguments

  • Breaking: Dropped support for Python versions 3.4 and 3.5

  • Breaking: Invalid floating point literals now raise FloatSyntaxError instead of RuleSyntaxError

  • Breaking: Moved rule_engine.engine.Builtins to rule_engine.builtins.Builtins

  • Added the new FUNCTION data type

Version 3.x.x

Version 3.6.0

Released v3.6.0 on June 16th, 2023

  • Removed testing for Python versions 3.4 and 3.5 on GitHub Actions

  • Add regex error details to the debug REPL

  • Add support for Python-style comments

Version 3.5.0

Released v3.5.0 on July 16th, 2022

Version 3.4.0

Released v3.4.0 on March 19th, 2022

  • Add support for string concatenation via the + operator

Version 3.3.0

Released v3.3.0 on July 20th, 2021

Version 3.2.0

Released v3.2.0 on April 3rd, 2021

Version 3.1.0

Released v3.1.0 on March 15th, 2021

  • Added the new SET data type

Version 3.0.0

Released v3.0.0 on March 1st, 2021

  • Switched the FLOAT datatype to use Python’s Decimal from float internally

  • Reserved the if, elif, else, for and while keywords for future use, they can no longer be used as symbol names

  • Added some new data attributes

    • Added ceiling, floor and to_str to FLOAT

Version 2.x.x

Version 2.4.0

Released v2.4.0 on November 7th, 2020

  • Added the Debug REPL utility

  • Added the safe navigation version of the attribute, item and slice operators

  • Added the new MAPPING data type

  • Switched from Travis-CI to GitHub Actions for continuous integration

  • Added support for iterables to have multiple member types

Version 2.3.0

Released v2.3.0 on October 11th, 2020

  • Added support for arithmetic comparisons for all currently supported data types

  • Added support for proper type hinting of builtin symbols

  • Added the $re_groups builtin symbol for extracting groups from a regular expression match

  • Added some new data attributes

Version 2.2.0

Released v2.2.0 on September 9th, 2020

  • Added script entries to the Pipfile for development

  • Added support for slices on sequence data types

Version 2.1.0

Released v2.1.0 on August 3rd, 2020

  • Added coverage reporting to Travis-CI

  • Changed DataType. from an enum to a custom class

  • Improvements for the ARRAY data type

    • Added get[item] support for arrays, allowing items to be retrieved by index

    • Added ability for specifying the member type and optionally null

Version 2.0.0

Released v2.0.0 on October 2nd, 2019

  • Added proper support for attributes

  • Added a change log

  • Added additional information to the Graphviz output

  • Added the new ARRAY data type

  • Started using Travis-CI

    • Added automatic unit testing using Travis-CI

    • Added automatic deployment of documentation using Travis-CI

  • Removed the resolver conversion functions

    • Removed to_recursive_resolver in favor of attributes

    • Removed to_default_resolver in favor of the default_value kwarg to __init__()

Version 1.x.x

Version 1.1.0

Released v1.1.0 on March 27th, 2019

  • Added the to_default_dict() function

  • Added the to_recursive_resolver() function

Version 1.0.0

Released v1.0.0 on December 15th, 2018

  • First major release