Skip to content

Make precedence source ordered - #623

Merged
linglingye001 merged 4 commits into
mainfrom
linglingye/precedence-source-ordered
Sep 22, 2026
Merged

linglingye001 merged 4 commits into
mainfrom
linglingye/precedence-source-ordered

Conversation

@linglingye001

@linglingye001 linglingye001 commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

Why this PR?

Fix #621

ConfigurationFeatureDefinitionProvider always evaluates the Microsoft schema first, source order is never consulted when the same flag is split across schemas. A Microsoft-schema definition from the first provider beats a .NET-schema definition from every later provider.

Visible Changes

  • Lookup visits sources from highest to lowest precedence, checking Microsoft schema before .NET within each source.
  • Custom merging now selects the whole definition from one source for both schemas.
  • Preserved default behavior, case handling, deduplication, chaining, and root fallback.
  • Deduplicates cross-schema entries during feature enumeration.

Example

When custom merging is enabled:

Provider` 1: Microsoft schema → MyFlag = false
Provider 2: .NET schema → MyFlag = targeting filter

Winning schema map:
MyFlag → .NET

Result: Provider 2 wins and the targeting filter is parsed.

@linglingye001
linglingye001 merged commit 0c8a327 into main Sep 22, 2026
5 checks passed
Jagdish Kumawat (jagdish-kumawat) added a commit to Dewiride-Open-Source/ERP-AI-Pro that referenced this pull request Sep 27, 2026
…der FeatureManagement 4.8.0

Microsoft.FeatureManagement 4.8.0 (microsoft/FeatureManagement-Dotnet#623) visits configuration sources from the highest precedence down and checks both schemas within each, so a later source wins whichever schema it uses; 4.7.0 consulted the Microsoft schema of every source first. The test that pinned the old order now proves the later source wins in both schema orders. AddErpConfiguration keeps forcing the Microsoft schema on the store, the schema every other source uses; its comment and docs/configuration.md now give that reason.
Jagdish Kumawat (jagdish-kumawat) added a commit to Dewiride-Open-Source/ERP-AI-Pro that referenced this pull request Sep 27, 2026
* build(deps): Bump the microsoft group with 1 update

Bumps Microsoft.FeatureManagement from 4.7.0 to 4.8.0

---
updated-dependencies:
- dependency-name: Microsoft.FeatureManagement
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: microsoft
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): refresh the host lock files for Microsoft.FeatureManagement 4.8.0

Dependabot bumped the central pin in Directory.Packages.props but left the CentralTransitive entries of the three host lock files at 4.7.0, so every locked restore failed with NU1004. Regenerated with dotnet restore --force-evaluate.

* test(platform): prove feature flag precedence follows source order under FeatureManagement 4.8.0

Microsoft.FeatureManagement 4.8.0 (microsoft/FeatureManagement-Dotnet#623) visits configuration sources from the highest precedence down and checks both schemas within each, so a later source wins whichever schema it uses; 4.7.0 consulted the Microsoft schema of every source first. The test that pinned the old order now proves the later source wins in both schema orders. AddErpConfiguration keeps forcing the Microsoft schema on the store, the schema every other source uses; its comment and docs/configuration.md now give that reason.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jagdish Kumawat <jagdish.kumawat@dewiride.com>
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.

Microsoft-schema flag in appsettings.json silently shadows the same flag from Azure App Configuration (.NET schema)

2 participants