Skip to content

v5.2.0

Latest

Choose a tag to compare

@NinjaRocks NinjaRocks released this 19 Mar 00:37
· 1 commit to master since this release
2e08400

feature-flag FeatureOne — Release Notes v5.2.0

Release Date: March 18, 2026
Release Type: Minor
Packages: FeatureOne · FeatureOne.SQL · FeatureOne.File


What's New

RelationalCondition

A new built-in toggle condition — RelationalCondition — has been added to the core library. It enables claim-based feature gating using standard relational operators, making it possible to target users by tier, role, numeric level, or any string-comparable claim value.

Supported operators (RelationalOperator enum):

Operator Description
Equals Claim value equals the configured value
NotEquals Claim value does not equal the configured value
GreaterThan Claim value is lexicographically greater than the configured value
GreaterThanOrEqual Claim value is lexicographically greater than or equal to the configured value
LessThanOrEqual Claim value is lexicographically less than or equal to the configured value

Both the claim value and the configured value are trimmed of whitespace before comparison.

JSON toggle definition:

{
  "tier_feature": {
    "toggle": {
      "conditions": [{
        "type": "Relational",
        "claim": "tier",
        "operator": "GreaterThanOrEqual",
        "value": "gold"
      }]
    }
  }
}

C# toggle definition:

new Feature(
  "tier_feature",
  new Toggle(Operator.Any, new[]
  {
      new RelationalCondition
      {
          Claim    = "tier",
          Operator = RelationalOperator.GreaterThanOrEqual,
          Value    = "gold"
      }
  })
)

Framework and Package Updates

Change Detail
Added target framework net10.0
Removed target frameworks netstandard2.0, net8.0
Supported target frameworks netstandard2.1, net9.0, net10.0
Microsoft package upgrades All Microsoft packages upgraded to 10.0.5

Packages upgraded:

Package Version
Microsoft.Extensions.DependencyInjection.Abstractions 10.0.5
Microsoft.Extensions.Logging.Abstractions 10.0.5
System.Runtime.Caching 10.0.5
System.Text.Json 10.0.5

Test Coverage

Metric Coverage
Line coverage 98%+
Branch coverage 84%+
Total tests 174+

New tests added:

  • RelationalConditionTests — 20 unit tests covering all operators, null guards, whitespace trimming, and edge cases
  • RelationalConditionSQLTests — SQL storage pipeline tests for RelationalCondition deserialization and evaluation
  • E2E tests for RelationalCondition via the File storage backend

Breaking Changes

None. This release is fully backward compatible — all existing toggles, conditions, and storage providers continue to work without modification.


Upgrade Guide

Update the package version in your project:

NuGet\Install-Package FeatureOne -Version 5.2.0
NuGet\Install-Package FeatureOne.SQL -Version 5.2.0
NuGet\Install-Package FeatureOne.File -Version 5.2.0

If you are targeting net8.0 or netstandard2.0, upgrade to net9.0, net10.0, or netstandard2.1.


Full Changelog

# Change Type Package(s)
1 Added RelationalCondition with Equals, NotEquals, GreaterThan, GreaterThanOrEqual, LessThanOrEqual operators Feature FeatureOne
2 Registered RelationalCondition in ConditionDeserializer safe type registry Feature FeatureOne
3 Added net10.0 target framework Enhancement All
4 Removed netstandard2.0 and net8.0 target frameworks Cleanup All
5 Upgraded all Microsoft packages to 10.0.5 Dependency All
6 Added RelationalConditionTests (20 unit tests) Test FeatureOne
7 Added RelationalConditionSQLTests (4 unit tests) Test FeatureOne.SQL
8 Added E2E test TestForTierFeatureToBeEnabledForGoldAndAbove Test FeatureOne.File
9 Updated DeveloperGuide.md with Relational Condition section Docs All
10 Updated NuGet package icon to feature-flag.png Packaging All