Skip to content

Commit

Permalink
Merge branch 'bl-develop' into merge-in-latest
Browse files Browse the repository at this point in the history
* bl-develop: (39 commits)
  Update year
  Update year
  Expression comparison to check parameter positions. Fixes NRules#246
  Code cleanup
  Improve quality of integration test assertions
  Use https in project URL
  Increment version
  Upgrade Sandcastle and fix docs build
  Add missing xml doc
  Revert "Remove msbuild from build tooling"
  Cleanup the sample
  Code cleanup
  Cleanup rules compilation method signatures
  Minor code cleanup
  Upgrade Moq and xunit
  Code cleanup - activation methods naming
  Convert default parameters to method overloads
  Fix Autofac integration. Closes NRules#238
  Cleanup samples
  Expose IMatch on the agenda-related events
  ...

# Conflicts:
#	src/NRules/NRules/Rete/JoinNode.cs. Caused by BoolObj addition to JoinNode.
  • Loading branch information
larrybehaviorlanguage committed Jan 4, 2021
2 parents 8a14df4 + d993515 commit bb56e48
Show file tree
Hide file tree
Showing 254 changed files with 3,367 additions and 5,560 deletions.
2 changes: 1 addition & 1 deletion GlobalAssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Reflection;

[assembly: AssemblyCompany("NRules")]
[assembly: AssemblyCopyright("Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.")]
[assembly: AssemblyCopyright("Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersionAttribute("1.0.0.0")]
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License

Copyright (c) 2012-2020 Sergiy Nikolayev
Copyright (c) 2012-2021 Sergiy Nikolayev

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ Use the following resources to get up and running with NRules.
See [Contributor Guide](CONTRIBUTING.md) for the guidelines on how to contribute to the project.

---
Copyright © 2012-2020 [Sergiy Nikolayev](https://github.com/snikolayev) under the [MIT license](LICENSE.txt).
Copyright © 2012-2021 [Sergiy Nikolayev](https://github.com/snikolayev) under the [MIT license](LICENSE.txt).
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net472;netcoreapp2.0</TargetFrameworks>
<TargetFrameworks>net48;netcoreapp3.1</TargetFrameworks>
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<SignAssembly>true</SignAssembly>
Expand Down
34 changes: 12 additions & 22 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ param (
[string]$component = 'Core'
)

$version = '0.9.1'
$version = '0.9.2'
$configuration = 'Release'

if (Test-Path Env:CI) { $version = $Env:APPVEYOR_BUILD_VERSION }
Expand All @@ -20,7 +20,7 @@ $components = @{
}
test = @{
location = 'Tests'
frameworks = @('net472', 'netcoreapp2.0')
frameworks = @('net48', 'netcoreapp3.1')
}
bin = @{
frameworks = @('net45', 'netstandard1.0', 'netstandard2.0')
Expand Down Expand Up @@ -82,10 +82,10 @@ $components = @{
tool = 'dotnet'
}
bin = @{
frameworks = @('net45')
'net45' = @{
frameworks = @('netstandard2.0')
'netstandard2.0' = @{
include = @(
"NRules.Integration.Autofac\bin\$configuration\net45"
"NRules.Integration.Autofac\bin\$configuration\netstandard2.0"
)
}
}
Expand All @@ -99,31 +99,21 @@ $components = @{
name = 'SimpleRules'
src_root = 'samples'
build = @{
tool = 'msbuild'
tool = 'dotnet'
}
};
'Samples.MissManners' = @{
name = 'MissManners'
src_root = 'samples'
build = @{
tool = 'msbuild'
tool = 'dotnet'
}
};
'Samples.RuleBuilder' = @{
name = 'RuleBuilder'
src_root = 'samples'
build = @{
tool = 'msbuild'
}
};
'Samples.ClaimsAdjudication' = @{
name = 'ClaimsAdjudication'
src_root = 'samples'
restore = @{
tool = 'nuget'
}
build = @{
tool = 'msbuild'
tool = 'dotnet'
}
};
'Benchmark' = @{
Expand All @@ -136,20 +126,20 @@ $components = @{
tool = 'dotnet'
}
bin = @{
frameworks = @('net472', 'netcoreapp2.0')
frameworks = @('net48', 'netcoreapp3.1')
'net472' = @{
include = @(
"NRules.Benchmark\bin\$configuration\net472"
"NRules.Benchmark\bin\$configuration\net48"
)
}
'netcoreapp2.0' = @{
include = @(
"NRules.Benchmark\bin\$configuration\netcoreapp2.0"
"NRules.Benchmark\bin\$configuration\netcoreapp3.1"
)
}
}
bench = @{
frameworks = @('net472')
frameworks = @('net48')
exe = 'NRules.Benchmark.exe'
categories = @('Micro')
}
Expand Down
100 changes: 62 additions & 38 deletions doc/NRules.shfbproj
Original file line number Diff line number Diff line change
@@ -1,60 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Import the common properties to support NuGet restore -->
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<!-- The configuration and platform will be used to determine which assemblies to include from solution and project documentation sources -->
<!-- A framework version is required for NuGet restore. This can be any valid version -->
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<!-- The configuration and platform will be used to determine which assemblies to include from solution and
project documentation sources -->
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{072edf02-ba0f-4464-93c8-64c7958f1822}</ProjectGuid>
<SHFBSchemaVersion>2015.6.5.0</SHFBSchemaVersion>
<ProjectGuid>{19dc5b85-6aa0-43a8-a1bf-39d8df415e67}</ProjectGuid>
<SHFBSchemaVersion>2017.9.26.0</SHFBSchemaVersion>
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual Studio adds them anyway -->
<AssemblyName>Documentation</AssemblyName>
<RootNamespace>Documentation</RootNamespace>
<Name>Documentation</Name>
<!-- SHFB properties -->
<FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
<FrameworkVersion>.NET Framework 4.7.2</FrameworkVersion>
<OutputPath>..\build\doc\NRules\</OutputPath>
<HtmlHelpName>NRules</HtmlHelpName>
<Language>en-US</Language>
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
<HelpFileFormat>Website</HelpFileFormat>
<IndentHtml>False</IndentHtml>
<KeepLogFile>False</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<CppCommentsFixup>False</CppCommentsFixup>
<CleanIntermediates>True</CleanIntermediates>
<DocumentationSources>
<DocumentationSource sourceFile="..\src\NRules\NRules.NamespaceDoc.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.Fluent.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.Fluent.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.RuleModel.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\net45\NRules.RuleModel.xml" />
</DocumentationSources>
<MaximumGroupParts>20</MaximumGroupParts>
<NamespaceGrouping>False</NamespaceGrouping>
<SyntaxFilters>C#</SyntaxFilters>
<SdkLinkTarget>Blank</SdkLinkTarget>
<RootNamespaceContainer>True</RootNamespaceContainer>
<PresentationStyle>VS2013</PresentationStyle>
<Preliminary>False</Preliminary>
<NamingMethod>MemberName</NamingMethod>
<CleanIntermediates>True</CleanIntermediates>
<KeepLogFile>False</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<IndentHtml>False</IndentHtml>
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
<SaveComponentCacheCapacity>100</SaveComponentCacheCapacity>
<HtmlSdkLinkType>Msdn</HtmlSdkLinkType>
<BinaryTOC>False</BinaryTOC>
<IncludeFavorites>False</IncludeFavorites>
<WebsiteSdkLinkType>Msdn</WebsiteSdkLinkType>
<AppendMarkdownFileExtensionsToUrls>False</AppendMarkdownFileExtensionsToUrls>
<HelpTitle>NRules, Open Source Rules Engine for .NET</HelpTitle>
<HelpFileVersion>1.0.0.0</HelpFileVersion>
<NamingMethod>MemberName</NamingMethod>
<ContentPlacement>AboveNamespaces</ContentPlacement>
<VisibleItems>ExplicitInterfaceImplementations, InheritedMembers, InheritedFrameworkMembers, Protected</VisibleItems>
<HeaderText>
</HeaderText>
<RootNamespaceContainer>True</RootNamespaceContainer>
<NamespaceGrouping>False</NamespaceGrouping>
<MaximumGroupParts>20</MaximumGroupParts>
<Preliminary>False</Preliminary>
<FooterText>&amp;lt%3ba href=&amp;quot%3bhttps://github.com/NRules/NRules&amp;quot%3b&amp;gt%3bView NRules on GitHub&amp;lt%3b/a&amp;gt%3b</FooterText>
<CopyrightHref>https://github.com/NRules/NRules/blob/master/LICENSE.txt</CopyrightHref>
<CopyrightText>License and Copyright Information</CopyrightText>
<WebsiteSdkLinkType>Msdn</WebsiteSdkLinkType>
<HtmlSdkLinkType>Msdn</HtmlSdkLinkType>
<IncludeFavorites>False</IncludeFavorites>
<BinaryTOC>False</BinaryTOC>
<FooterText>&amp;lt%3ba href=&amp;quot%3bhttps://github.com/NRules/NRules&amp;quot%3b&amp;gt%3bView NRules on GitHub&amp;lt%3b/a&amp;gt%3b</FooterText>
<SdkLinkTarget>Blank</SdkLinkTarget>
<VisibleItems>ExplicitInterfaceImplementations, InheritedMembers, InheritedFrameworkMembers, Protected, EditorBrowsableNever, NonBrowsable</VisibleItems>
<MissingTags>AutoDocumentCtors, AutoDocumentDispose</MissingTags>
<WarnOnMissingSourceContext>False</WarnOnMissingSourceContext>
<DocumentationSources>
<DocumentationSource sourceFile="..\src\NRules\NRules.NamespaceDoc.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.Fluent.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.Fluent.xml" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.RuleModel.dll" />
<DocumentationSource sourceFile="..\binaries\NRules\netstandard2.0\NRules.RuleModel.xml" />
</DocumentationSources>
</PropertyGroup>
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform the build. The others are optional common platform types that may appear. -->
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform
the build. The others are optional common platform types that may appear. -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
Expand All @@ -71,6 +77,24 @@
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' ">
</PropertyGroup>
<!-- Import the SHFB build targets -->
<Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" />
<!-- Uncomment this to use the NuGet packages when SHFB is not installed locally, e.g. in the CI build pipeline.
Update the package versions to the latest releases.
<ItemGroup>
<PackageReference Include="EWSoftware.SHFB" Version="2019.9.15" />
<PackageReference Include="EWSoftware.SHFB.NETFramework" Version="4.8.0" />
</ItemGroup>
-->
<!-- Import the common build targets during NuGet restore because before the packages are being installed, $(SHFBROOT) is not set yet -->
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" Condition="'$(MSBuildRestoreSessionId)' != ''" />
<!-- Import the SHFB build targets during build -->
<Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" Condition="'$(MSBuildRestoreSessionId)' == ''" />
<!-- The pre-build and post-build event properties must appear *after* the targets file import in order to be
evaluated correctly. -->
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
</Project>
4 changes: 2 additions & 2 deletions packages/NRules.Fluent.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
<authors>Sergiy Nikolayev</authors>
<owners>Sergiy Nikolayev</owners>
<license type="expression">MIT</license>
<projectUrl>http://nrules.net</projectUrl>
<projectUrl>https://nrules.net</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NRules/NRules.media/master/Logo/Logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>Fluent DSL for authoring rules in C# with the NRules rules engine.</summary>
<description>NRules is an open source rules engine for .NET that is based on the Rete matching algorithm. NRules is an inference engine that, among other features, supports forward chaining, negative, existential and universal quantifiers. Rules are authored in C# using internal DSL.

This package installs the fluent DSL for authoring rules in C# with NRules. These rules can be then compiled to the canonical rules model, recognized by the NRules rules engine.</description>
<releaseNotes>https://github.com/NRules/NRules/releases/v$version$</releaseNotes>
<copyright>Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.</copyright>
<copyright>Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.</copyright>
<tags>rules engine inference rete business dsl</tags>
<dependencies>
<group targetFramework="net45">
Expand Down
14 changes: 7 additions & 7 deletions packages/NRules.Integration.Autofac.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
<authors>Sergiy Nikolayev</authors>
<owners>Sergiy Nikolayev</owners>
<license type="expression">MIT</license>
<projectUrl>http://nrules.net</projectUrl>
<projectUrl>https://nrules.net</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NRules/NRules.media/master/Logo/Logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Autofac IoC container integration for NRules.</description>
<releaseNotes>https://github.com/NRules/NRules/releases/v$version$</releaseNotes>
<copyright>Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.</copyright>
<copyright>Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.</copyright>
<tags>nrules autofac</tags>
<dependencies>
<group targetFramework="net45">
<group targetFramework="netstandard2.0">
<dependency id="NRules" version="[$version$]" />
<dependency id="Autofac" version="3.3.1" />
<dependency id="Autofac" version="4.0.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="..\binaries\NRules.Integration.Autofac\net45\NRules.Integration.Autofac.dll" target="lib\net45" />
<file src="..\binaries\NRules.Integration.Autofac\net45\NRules.Integration.Autofac.xml" target="lib\net45" />
<file src="..\binaries\NRules.Integration.Autofac\net45\NRules.Integration.Autofac.pdb" target="lib\net45" />
<file src="..\binaries\NRules.Integration.Autofac\netstandard2.0\NRules.Integration.Autofac.dll" target="lib\netstandard2.0" />
<file src="..\binaries\NRules.Integration.Autofac\netstandard2.0\NRules.Integration.Autofac.xml" target="lib\netstandard2.0" />
<file src="..\binaries\NRules.Integration.Autofac\netstandard2.0\NRules.Integration.Autofac.pdb" target="lib\netstandard2.0" />
</files>
</package>
4 changes: 2 additions & 2 deletions packages/NRules.RuleModel.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
<authors>Sergiy Nikolayev</authors>
<owners>Sergiy Nikolayev</owners>
<license type="expression">MIT</license>
<projectUrl>http://nrules.net</projectUrl>
<projectUrl>https://nrules.net</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NRules/NRules.media/master/Logo/Logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>Canonical rules model to define rules for the NRules rules engine.</summary>
<description>NRules is an open source rules engine for .NET that is based on the Rete matching algorithm. NRules is an inference engine that, among other features, supports forward chaining, negative, existential and universal quantifiers. Rules are authored in C# using internal DSL.

This package installs the canonical rules model to define rules that can be compiled into executable model used by the NRules rules engine.</description>
<releaseNotes>https://github.com/NRules/NRules/releases/v$version$</releaseNotes>
<copyright>Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.</copyright>
<copyright>Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.</copyright>
<tags>rules engine inference rete business dsl</tags>
<dependencies>
<group targetFramework="net45">
Expand Down
4 changes: 2 additions & 2 deletions packages/NRules.Runtime.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
<authors>Sergiy Nikolayev</authors>
<owners>Sergiy Nikolayev</owners>
<license type="expression">MIT</license>
<projectUrl>http://nrules.net</projectUrl>
<projectUrl>https://nrules.net</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NRules/NRules.media/master/Logo/Logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>Execution engine (runtime) for the NRules rules engine.</summary>
<description>NRules is an open source rules engine for .NET that is based on the Rete matching algorithm. NRules is an inference engine that, among other features, supports forward chaining, negative, existential and universal quantifiers. Rules are authored in C# using internal DSL.

This package installs the execution engine (runtime) for the NRules rules engine.</description>
<releaseNotes>https://github.com/NRules/NRules/releases/v$version$</releaseNotes>
<copyright>Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.</copyright>
<copyright>Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.</copyright>
<tags>rules engine inference rete business dsl</tags>
<dependencies>
<group targetFramework="net45">
Expand Down
4 changes: 2 additions & 2 deletions packages/NRules.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
<authors>Sergiy Nikolayev</authors>
<owners>Sergiy Nikolayev</owners>
<license type="expression">MIT</license>
<projectUrl>http://nrules.net</projectUrl>
<projectUrl>https://nrules.net</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NRules/NRules.media/master/Logo/Logo.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>NRules is an open source rules engine for .NET that is based on the Rete matching algorithm with rules authored in C# using internal DSL.</summary>
<description>NRules is an open source rules engine for .NET that is based on the Rete matching algorithm. NRules is an inference engine that, among other features, supports forward chaining, negative, existential and universal quantifiers. Rules are authored in C# using internal DSL.</description>
<releaseNotes>https://github.com/NRules/NRules/releases/v$version$</releaseNotes>
<copyright>Copyright 2012-2020 Sergiy Nikolayev. All rights reserved.</copyright>
<copyright>Copyright 2012-2021 Sergiy Nikolayev. All rights reserved.</copyright>
<tags>rules engine inference rete business dsl</tags>
<dependencies>
<dependency id="NRules.Runtime" version="[$version$]" />
Expand Down
Loading

0 comments on commit bb56e48

Please sign in to comment.