Changelog History
Page 1
-
v9.3.0 Changes
November 10, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.3.0
- ๐ Support for .NET 5 and ASP.NET Core 5
- ๐ Improvements to LanguageManager's lazy loading of resources.
- ๐ Deprecate IStringSource and its implementors. Use delegates instead.
- CustomizeValidatorAttribute now works in Razor pages (netcore 3.1 and net 5.0 only) (#1541)
- RuleSetForClientSideMessagesAttribute now works in Razor pages (netcore 3.1 and net 5.0 only) (#1544)
- ๐ Fixes to Spanish translations.
๐ Changes in 9.2.2
- ๐ Fix one of the inheritance validator overloads not working correctly (#1528)
๐ Changes 9.2.1
- โ Add non-generic extensibility point to inheritance validator
- โก๏ธ Updates to Persian translations (#1513)
- โ Added Bengali translations (#1517)
๐ Changes in 9.2.0
- โ Add inheritance validator (#1237) - see https://docs.fluentvalidation.net/en/latest/inheritance.html
- ๐ Various performance improvements
๐ Changes in 9.1.3
- ๐ Fix an issue with IncludeRulesNotInRuleSet not working correctly (#1493)
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.2.2 Changes
September 20, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.2.1
- ๐ Fix one of the inheritance validator overloads not working correctly (#1528)
๐ Changes 9.2.1
- โ Add non-generic extensibility point to inheritance validator
- โก๏ธ Updates to Persian translations (#1513)
- โ Added Bengali translations (#1517)
๐ Changes in 9.2.0
- โ Add inheritance validator (#1237) - see https://docs.fluentvalidation.net/en/latest/inheritance.html
- ๐ Various performance improvements
๐ Changes in 9.1.3
- ๐ Fix an issue with IncludeRulesNotInRuleSet not working correctly (#1493)
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.2.1 Changes
September 19, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes 9.2.1
- โ Add non-generic extensibility point to inheritance validator
- โก๏ธ Updates to Persian translations (#1513)
- โ Added Bengali translations (#1517)
๐ Changes in 9.2.0
- โ Add inheritance validator (#1237) - see https://docs.fluentvalidation.net/en/latest/inheritance.html
- ๐ Various performance improvements
๐ Changes in 9.1.3
- ๐ Fix an issue with IncludeRulesNotInRuleSet not working correctly (#1493)
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.2.0 Changes
August 26, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.2.0
- โ Add inheritance validator (#1237) - see https://docs.fluentvalidation.net/en/latest/inheritance.html
- ๐ Various performance improvements
๐ Changes in 9.1.3
- ๐ Fix an issue with IncludeRulesNotInRuleSet not working correctly (#1493)
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.1.3 Changes
August 19, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.1.3
- ๐ Fix an issue with IncludeRulesNotInRuleSet not working correctly (#1493)
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.1.2 Changes
August 12, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.1.2
- ๐ Make the ValidationContext.ThrowOnFailures getter public.
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.1.1 Changes
August 08, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.1.1
- โก๏ธ Update incorrect wording in
CascadeMode.StopOnFirstFailure
deprecation warning.
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
- โก๏ธ Update incorrect wording in
-
v9.1.0 Changes
August 08, 2020๐ Release notes
โฌ๏ธ Please read the upgrade guide if you are moving from 8.x to 9.x
๐ Changes in 9.1.0
- โ Add new Validate extension methods that allow options to be configured using a strategy (#1467)
- ๐ Introduce CascadeMode.Stop and deprecate CascadeMode.StopOnFirstFailure to resolve confusion/abiguity about setting the cascade mode at validator-level (#1437)
- ๐ป RaiseValidationException can be overridden to customize the exception throwing process (#1162)
- ๐ Make ruleset separator character splitting consistent (#1424)
- โ Transform now works with RuleForEach (#1450)
- Introduce constants for rulesets (#1435)
- ๐ Resolve issue when attempting to use asynchronous conditions in a synchornous validaiton run (#1438)
- โ Added asynchronous versions of the TestHelper methods (#1423)
Example of using the new validation strategy:
// Validate specific rulesetsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet"); // Can also force rules not in a ruleset to be runopt.IncludeRulesNotInRuleSet(); });// Validate specific propertiesvalidator.Validate(instance, opt =\> { opt.IncludeProperties("Forename", "Surname"); // oropt.IncludeProperties(x =\> x.Surname, x.Forename); });// Throw exceptions on failurevalidator.Validate(instance, opt =\> { opt.ThrowOnFailures(); });// Combine various optionsvalidator.Validate(instance, opt =\> { opt.IncludeRuleSets("MyRuleSet", "SomeOtherRuleSet").IncludeRulesNotInRuleSet(); opt.ThrowOnFailures(); });
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.0.0 Changes
July 06, 2020๐ Release notes
๐ FluentValidation 9 is a major release and includes several breaking changes. Please read the upgrade guide for full details
๐ Changes in 9.0.0
- ASP.NET core auto-validation can now be completely disabled while preserving clientside integration
- Types can now be filtered/skipped when auto-registering with the container
- ๐ง Service lifetime is now configurable when auto-registering with the container
๐ Changes in 9.0-preview5
- โ Remove
IValidator.Validate(object)
overload to improve typesafety (use a context if you need to preserve this behaviour) - Replace non-generic
ValidationContext
class withIValidationContext
interface ChildValidatorAdaptor
andIncludeRule
now require a generic type parameter indicating the root type being validated- Expression accessors for comparison properties are now cached where possible
{ComparisonProperty}
placeholder now passes through the same logic as the{PropertyName}
placeholder for consistency
๐ Changes in 9.0-preview4
{CollectionIndex}
placeholder can now be accessed in child validators- โ Additional
ValidationException
constructor that allows customising the default message. ScalePrecisionValidator
algorithm now more consistent with SQL server (#1356)- โ Add Icelandic translations of default messages (#1362)
- โ Additional
When
predicate overload that takes aValidationContext
- ๐ Fixes to range clientside validators when using datetimes (#1371)
- โฌ๏ธ Drop unsupported .NET Core versions from platform list
๐ Changes in 9.0-preview3
- ASP.NET Core validator provider is now public
- Ensure ASP.NET Core providers aren't registered twice
- SoureLink integration
- โ Additional overload of
SetValidator
that receives property value in callback PropertyRule.ApplySharedCondition
is now public- โ Remove lowercase placeholders from
ScalePrecisionValidator
๐ Changes in 9.0-preview2
Transform
can now be used to transform a property value to another type prior to validation occurring- โ Added
WithMessageArgument
to test helper extensions - โ Added Slovenian translations of default error messages.
- ๐ Fixes/better handling of the non-generic overloads of
AbstractValidator.Validate
- โ Removed the deprecated
FluentValidation.Internal.Comparer
TrackingCollection
has been marked as internal- โก๏ธ Updated to latest version of Microsoft.NETFramework.ReferenceAssemblies for building net4x targets on non-windows platforms.
๐ Changes in 9.0-preview1
- โ Removed support for netstandard1.1, netstandard1.6, net45 (Supported platforms are now netstandard2, net461, netcoreapp2.1, netcoreapp3.0, netcoreapp3.1)
- โ Removed WithLocalizedMessage (WithMessage that takes a callback is the replacement)
- โ Removed ResourceName from ValidationFailure
- โ Removed ResourceName and ResourceType from IStringSource.
- โ Removed SetCollectionValidator which was deprecated in 8.0
- โ Additional overload of OnAnyFailure that can receive a collection of validation failures
- โ Remove DisplayAttribute integration and reference to DataAnnotations.
- 0๏ธโฃ Default email validation mode now uses the same logic as ASP.NET Core. Previous regex behaviour is opt-in.
- ComparisonProperty placeholder is now formatted like PropertyName.
- โ TestHelper syntax improvements
- 0๏ธโฃ
Equal
/NotEqual
now perform ordinal comparisons on string properties by default - Severity can be set with a callback
- ๐ PropertyValidator.ShouldValidateAsync reanamed to ShouldValidateAsynchronously to remove confusion where the naming suggested this was an async method
- โ Removed various methods from MessageFormatter that were deprecated in 8.x
- PropertyValidatorContext.Instance renamed to InstanceToValidate for consistency with ValidationContext.
- โ Removed DelegatingValidator which was deprecated in 8.x.
Downloads
Binaries can be downloaded from nuget:
- ๐ฆ FluentValidation - Main package
- ๐ฆ FluentValidation.AspNetCore - ASP.NET Core integration
-
v9.0.0-preview5
May 23, 2020