Skip to content

- Release v5.2.0#18

Merged
NinjaRocks merged 4 commits intomasterfrom
release/v5.2.0
Mar 19, 2026
Merged

- Release v5.2.0#18
NinjaRocks merged 4 commits intomasterfrom
release/v5.2.0

Conversation

@NinjaRocks
Copy link
Member

feature-flag FeatureOne — Release Notes v5.2.0

Release Date: March 19, 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

Signed-off-by: CØDE N!NJΔ <najaf.shaikh@gmail.com>
@NinjaRocks NinjaRocks merged commit 2e08400 into master Mar 19, 2026
6 of 7 checks passed
@NinjaRocks NinjaRocks deleted the release/v5.2.0 branch March 19, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants