All Versions
29
Latest Version
Avg Release Cycle
37 days
Latest Release
1234 days ago

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

    ๐Ÿ”„ 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:

  • 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

    ๐Ÿ”„ 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:

  • 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

    ๐Ÿ”„ 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:

  • 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

    ๐Ÿ”„ 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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 with IValidationContext interface
    • ChildValidatorAdaptor and IncludeRule 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 a ValidationContext
    • ๐Ÿ›  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:

  • v9.0.0-preview5

    May 23, 2020