Skip to content

Commit

Permalink
release v1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
adamecr committed Dec 29, 2021
1 parent 538fd09 commit 524e55e
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 22 deletions.
10 changes: 5 additions & 5 deletions Version.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<RadMajor>1</RadMajor>
<RadMinor>0</RadMinor>
<RadPatch>0</RadPatch>
<RadBuild>846</RadBuild>
<PackageVersionShort>1.0.0-dev.846.211125021251</PackageVersionShort>
<PackageVersionFull>1.0.0-dev.846.211125021251+165.version-1.bb975b1-dirty</PackageVersionFull>
<GitCommit>bb975b1-dirty</GitCommit>
<GitBranch>version-1</GitBranch>
<RadBuild>849</RadBuild>
<PackageVersionShort>1.0.0</PackageVersionShort>
<PackageVersionFull>1.0.0+849.211229014443.release.33f2fba</PackageVersionFull>
<GitCommit>33f2fba</GitCommit>
<GitBranch>release</GitBranch>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion build/custom/Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<PropertyGroup>
<Authors>Radek Adamec</Authors>
<Company>Radek Adamec</Company>
<Copyright>Radek Adamec 2018</Copyright>
<Copyright>Radek Adamec 2021</Copyright>
<Description>DMN Engine is a rule engine allowing to execute and evaluate the decisions defined in a DMN model. It's primary target is to evaluate the decision tables that transform the inputs into the output(s) using the decision rules</Description>
<PackageLicenseUrl>https://github.com/adamecr/Common.DMN.Engine/blob/master/license.txt</PackageLicenseUrl>
<PackageLicense>MIT</PackageLicense>
Expand Down
46 changes: 30 additions & 16 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,54 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [Unreleased] ##
__Version-1__

## [1.0.0] - 2021-12-29 ##
As this is a major update, it's recommended to go through the [documentation](readme.md) for both "big picture" and the details.

### Breaking change ###
- Decision table
- **Allowed input values checks don't throw the exception when the constraint is violated** (see the documentation for more details)

### Added ###

- Definition classes
- The DMN definition can be created also by code using the builders (`DmnDefinitionBuilder`)

- Execution context
- New method `WithInputParameters` allowing to set multiple parameters in one call using the dictionary (`IReadOnlyCollection<KeyValuePair<string,object>>`)
- Decision execution can be traced/audited using the snapshots
- When the result comes from the decision table, it also provides the list of rules that had a positive hit. Thanks [Noel](https://github.com/nlysaght) for contribution.
- Execution context can be configured using the `DmnExecutionContextOptions` when calling the factory - set the snapshots on/off, table rules parallel processing, parsed expressions cache
- Parsed expression cache is now configurable

- Tests
- Shared code project with tests - "single test code"
- Hierarchy of test classes for same test but different source (DMN XML 1.1/1.3 or builders)
- Projects using the shared code targetting different platforms (.net core 2.1, 3.1, 5; .net framework 4.6.2, 4.7.2)


### Changed ###
- Definition classes
- In general, trying to have kind of immutable public interface after constructed
- `DmnVariableDefinition` is "hidden" via R/O `IDmnVariable`. Also the setters are now not public (can be changed via dedicated methods encapsulating the logic)
- `IDmnVariable` and `IDmnDecision` is used are reference to variable/decision definition
- `IDmnVariable` and `IDmnDecision` is used as reference to variable/decision definition
- `IReadOnlyCollection` is used for required inputs and decision
- Arrays are used instead of lists for decision table - Inputs, Outpus, Rules, Allowed values
- The DMN definition can be created also by code using the builders (`DmnDefinitionBuilder`)


- Execution context
- Properties are published as `IReadOnlyDictionary` instead of `IDictionary`
- Parsed expressions cache (static property) is `ConcurrentDictionary` now
- New method `WithInputParameters` allowing to set multiple parameters in one call using the dictionary (`IReadOnlyCollection<KeyValuePair<string,object>>`)
- `DmnExecutionContextFactory` class is static now
- Decision execution can be traced/audited using the snapshots
- Execution context can be configured using the `DmnExecutionContextOptions` when calling the factory - set the snapshots on/off, table rules parallel processing, parsed expressions cache
- FIX: when cloning the variables (for example from context to result), the ICloneable value is clonned properly
- Parsed expression cache is now configurable
- The execution related classes have been better adapted for the support of extended/customized functionality using the inheritance
- FIX: DmnExecutionVariable.SetInputParameterValue - type/cast check

- Decision table
- **Allowed input values checks don't throw the exception when the constraint is violated** (see the documentation for more details)


- Other
- DynamicExpresso, NLog packages to current versions
- DynamicExpresso, NLog packages updated to current versions
- Solution now primary for VS2019 (was 2017)
- Updated documentation with more details in some parts

### Fixed ###
- When cloning the variables (for example from context to result), the ICloneable value is clonned properly
- DmnExecutionVariable.SetInputParameterValue - type/cast check
- [Issue#8](https://github.com/adamecr/Common.DMN.Engine/issues/8) - ParsedExpressionsCache Corruption when running multiple concurrent evaluations

## [0.1.2] - 2020-07-18 ##
### Added ###
Expand All @@ -53,6 +66,7 @@ __Version-1__
### Added ###
- Initial release

[1.0.0]: https://github.com/adamecr/Common.DMN.Engine/compare/v0.1.2...v1.0.0
[0.1.2]: https://github.com/adamecr/Common.DMN.Engine/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/adamecr/Common.DMN.Engine/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/adamecr/Common.DMN.Engine/releases/tag/v0.1.0

0 comments on commit 524e55e

Please sign in to comment.