Releases: NRules/NRules
Releases · NRules/NRules
v0.9.4
NuGet: https://www.nuget.org/packages/NRules/0.9.4
- #293, #309, #311 - Adds support for Visual Studio 2022, modernizes the codebase using latest C# language features, targets .net 6 in tests, switches to the new .net SDK
- #296 - Fixes debugger visualizer to stop using deprecated serialization code
- #307, #322 - Adds support for null keys in the SortedAggregator
- #298, #321 - Adds support for JSON serialization of Block and Assign expressions
- #327 - Fixes the usage of custom expression compiler, where some expressions were always compiled with the default compiler
- #338 - Fixes batched propagation of linked forward-chained facts, so that all queued groups of facts are batched, not just the first one
- #340 - Fixes a bug in the node sharing logic when building Rete network
- #103, #314, #341 - Adds NRules.Testing project to facilitate rules unit testing
- #332 - Adds debug symbols and SourceLink to assemblies and nuget packages to provide improved debugging experience
- #240, #343 - Migrates wiki and API documentation inside the repo, so that the documentation is developed and managed through the same process as code. Drops Sandcastle as a documentation generator and switches to DocFX. Publishes documentation to nrules.net
- #315, #318 - Cleans up and refactors the codebase
- #342 - Adds support for running build on MacOS, in addition to Windows (debugger visualizer not supported). As part of this, drops .net framework from unit test targets, and adds .net 8 target
v0.9.3
NuGet: https://www.nuget.org/packages/NRules/0.9.3
- #175, #288 - Adds support for keyed lookup (dictionary) aggregator as part of the Collect query
- #260 - Fixes expression comparison for node sharing, in a situation when comparing collections of different sizes
- #269 - Fixes Autofac DI container integration to support lifetime scope dependencies
- #279 - Fixes Having clause when it only depends on a single fact, and that fact is not from the last pattern
- #282 - Adds fallback compilation option for expressions not supported by ExpressionComparer for node sharing
- #289 - Fixes a memory leak in FlatteningAggregator (SelectMany)
- #284 - Adds a rule definition serialization capability to/from JSON
- #283 - Adds support for ternary expression comparison
v0.9.2
NuGet: https://www.nuget.org/packages/NRules/0.9.2
NOTE: NRules no longer targets .NET Standard 1.0 and .NET Framework 4.5. It now targets .NET Standard 2.0 and .NET Standard 2.1 (see .NET Standard compatibility chart)
- #192, #194 - Fixes debugger visualizer, so that it works with Visual Studio 2019. Also extends debugger visualizer support to all .NET Standard compatible client apps.
- #246 - Fixes expression comparison for node sharing to take into account parameter positions. This prevents erroneous node sharing when a rule has more than one match for facts of the same type.
- #247 - Fixes fact retraction with
GroupBy
andCollect
queries, which could lead to an intermittent empty grouping. - #248 - Fixes a bug with
NRules.Integration.Autofac
where additional settings applied toRegisterRuleRepository
via fluent configuration were not applied to the underlyingRuleRepository
. - #249 - Reduces memory footprint of an NRules session.
- #250 - Upgrades the target framework from .NET Standard 1.0, .NET Standard 2.0 and .NET Framework 4.5 to .NET Standard 2.0 and .NET Standard 2.1.
- #251, #169 - Exposes rete schema and performance metrics from the rules session (via
session.GetSchema()
andsession.Metrics
). Also integrates performance metrics with the debugger visualizer and enables rete graph visualization in DGML format viaDgmlWriter
. - #254 - Exposes an extensibility point to customize lambda expression compilation (via
IExpressionCompiler
), which enables custom expression compilers, such as FastExpressionCompiler.
v0.9.1
NuGet: https://www.nuget.org/packages/NRules/0.9.1
NOTE: This is the last release to target .NET Standard 1.0 and .NET Framework 4.5.
- #198 - Fixes a bug where if
Yield
throws during the first invocation, subsequent rule invocations also fail. - #212 - Adds support for class initializers and list initializers in rules expressions.
- #214 - Allows callers to specify batch behavior for bulk insert, update and retract operations. It is now possible to instruct the engine to skip facts that failed during the working memory lookup, and still apply the operation to those that succeeded.
- #220 - Fixes a bug where match statements that used an OR clause and did not bind to a variable, caused an exception during rule compilation.
- #221, #223 - Adds support for
CancellationToken
in rule compilation and rule execution. - #224 - Improves performance and efficiency of aggregations where multiple prior matches join to the same aggregation. In these scenarios the aggregation used to be recalculated for each prior match, but now is only calculated once. This also improves the performance and efficiency of queries where the queries don't depend on prior matches.
- #227 - Improves performance of condition/action evaluation by eliminating transient allocations.
- #231 - Fixes a bug where GroupBy aggregator causes a
KeyNotFoundException
when a group is removed and immediately re-added. - #238 - Adds support for Autofac 4.0.0+ to the NRules.Integration.Autofac.
- #239 - Fixes a bug in expression comparison when using member access on the results of a binary operation.
- #241 - Adds support for batched propagation of linked facts, which helps with improving performance of forward chaining.
- #243 - Fixes a bug where a rule without an update action leads to not invoking the undo action.
v0.9.0
NuGet: https://www.nuget.org/packages/NRules/0.9.0
- #81, #158 - Adds support for matching objects outside of the engine's working memory (via the
From
clause) - #146 - Adds support for tracking of fact lineage from aggregate/linked facts to the original facts in the engine's working memory
- #149 - Adds validation to fail update/retract directly called on linked facts
- #152 - Exposes events for when expressions are evaluated or fail to evaluate on rules's LHS, RHS or agenda
- #154 - Fixes OnChange filter where it fails to filter out updates with no effective change
- #157 - Fixes a bug with retraction of linked facts where the fact was yielded by the same rule
- #161 - Adds support for separate action expressions for different action triggers (rule activated, re-activated or deactivated)
- #170 - Enhances rule model (AST) to express dependencies between rule elements
- #171, #176, #177 - Adds sorted collection aggregator
- #180 - Fixes a bug with handling of transitive linked facts
- #185 - Adds support for bulk operations on linked facts in rule actions
- #187 - Adds support for custom tag attributes as a DSL extensibility point
v0.8.4
NuGet: https://www.nuget.org/packages/NRules/0.8.4
- #147 Fixes sporadic
KeyNotFoundException
during fact retraction
v0.8.2
v0.8.1
v0.8.0
NuGet: https://www.nuget.org/packages/NRules/0.8.0
- #99 - Added support for agenda filters that test rule activations to determine whether they should be added to the agenda or not.
- #105 - Added error handling for aggregate expressions, binding expressions and agenda filters via events.
- #126 - Added ability to maintain lineage between forward chained facts and their generating rule (linked facts). This automatically retracts linked forward-chained facts if the rule that produced them no longer matches corresponding facts.
- #129 - Added ability to filter rule updates to only trigger if a given set of keys changed. This feature is built on top of agenda filters - #99