Releases: NRules/NRules
v1.0.3
NuGet: https://www.nuget.org/packages/NRules/1.0.3
- #391 - Added SimpleInjector DI container integration: NRules.Integration.SimpleInjector
- #392 - Extended RuleTypeScaner with a Where filtering function
- #396 - Added support for as-style cast in member expressions
Full Changelog: v1.0.2...v1.0.3
v1.0.2
NuGet: https://www.nuget.org/packages/NRules/1.0.2
- #380 - Added a custom exception for failed rule firing assertions in the
NRules.Testinglibrary - #382, #385 - Fixed a bug in compilation of rule conditions
- Updated documentation and added a less contrived example for the Getting Started guide
Full Changelog: v1.0.1...v1.0.2
v1.0.1
NuGet: https://www.nuget.org/packages/NRules/1.0.1
- #345 - Updated interfaces to use materialized read only collections, instead of
IEnumberable<T>, where possible - #346 - Reworked
RuleElementVisitorinNRules.RuleModel, so that it can be more easily used to rewrite rule definitions, similar to how ExpressionVisitor is used with lambda expressions - #319, #349 - Enabled nullability annotations
- #358 - Enhanced
NRules.Testing, so that it can be used with rules defined without the fluent C# DSL - #369 - Upgraded dependencies
- #371, #336 - Enhanced the engine, so that the users can customize fact identity comparison
- #373, #375 - Added a new integration package for built-in .net dependency injection
- #374 - Fixed nuget dependencies for
NRules.Integration.Autofacpackage - #372, #376 - Fixed memory footprint of join nodes when used with highly selective high-cardinality fact joins
Full Changelog: v0.9.4...v1.0.1
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
GroupByandCollectqueries, which could lead to an intermittent empty grouping. - #248 - Fixes a bug with
NRules.Integration.Autofacwhere additional settings applied toRegisterRuleRepositoryvia 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
Yieldthrows 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
CancellationTokenin 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
KeyNotFoundExceptionwhen 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
Fromclause) - #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
KeyNotFoundExceptionduring fact retraction