Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: open-feature/dotnet-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.7.0
Choose a base ref
...
head repository: open-feature/dotnet-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.8.0
Choose a head ref
  • 19 commits
  • 33 files changed
  • 7 contributors

Commits on Jul 3, 2025

  1. ci: update renovate configuration to include package rules for securi…

    …ty updates (#510)
    
    Signed-off-by: André Silva <[email protected]>
    
    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    This pull request updates the `renovate.json` configuration to enhance
    dependency management rules. The most notable change introduces a new
    `packageRules` section to handle security updates differently than other
    dependencies.
    
    Dependency management improvements:
    
    *
    [`renovate.json`](diffhunk://#diff-7b5c8955fc544a11b4b74eddb4115f9cc51c9cf162dbffa60d37eeed82a55a57L7-R17):
    Added a `packageRules` section to create pull requests for security
    updates without requiring dashboard approval. These updates will not be
    automatically merged, ensuring manual review.
    
    Signed-off-by: André Silva <[email protected]>
    askpt authored Jul 3, 2025
    Configuration menu
    Copy the full SHA
    fa1ad7e View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2025

  1. chore: remove redundant rule (now in parent)

    Signed-off-by: Todd Baert <[email protected]>
    toddbaert authored Jul 4, 2025
    Configuration menu
    Copy the full SHA
    929fa74 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2025

  1. chore(deps): update github/codeql-action digest to 181d5ee (#520)

    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    |
    [github/codeql-action](https://redirect.github.com/github/codeql-action)
    | action | digest | `39edc49` -> `181d5ee` |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - At any time (no schedule defined),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Enabled.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/open-feature/dotnet-sdk).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Jul 11, 2025
    Configuration menu
    Copy the full SHA
    40bec0d View commit details
    Browse the repository at this point in the history
  2. chore(deps): update spec digest to 224b26e (#521)

    This PR contains the following updates:
    
    | Package | Update | Change |
    |---|---|---|
    | spec | digest | `c37ac17` -> `224b26e` |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - At any time (no schedule defined),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Enabled.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/open-feature/dotnet-sdk).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Jul 11, 2025
    Configuration menu
    Copy the full SHA
    fbc2645 View commit details
    Browse the repository at this point in the history
  3. ci: add caching for NuGet packages in CI workflows (#522)

    Signed-off-by: André Silva <[email protected]>
    
    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    This pull request enhances the CI/CD workflows by adding caching for
    NuGet packages across multiple workflow files. This change aims to
    improve build performance by avoiding repeated downloads of
    dependencies.
    
    ### Workflow Improvements:
    
    *
    [`.github/workflows/ci.yml`](diffhunk://#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR39-R46):
    Added a step to cache NuGet packages in both the main CI job and another
    job within the same file. This uses the `actions/cache` action to store
    packages in `~/.nuget/packages` and leverages file hashing for cache
    keys.
    [[1]](diffhunk://#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR39-R46)
    [[2]](diffhunk://#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR82-R89)
    *
    [`.github/workflows/code-coverage.yml`](diffhunk://#diff-49708f979e226a1e7bd7a68d71b2e91aae8114dd3e9254d9830cd3b4d62d4303R37-R44):
    Introduced NuGet package caching to the code coverage workflow,
    improving efficiency during the `dotnet test` step.
    *
    [`.github/workflows/e2e.yml`](diffhunk://#diff-3e103440521ada06efd263ae09b259e5507e4b8f7408308dc227621ad9efa31eR32-R39):
    Added caching for NuGet packages in the end-to-end testing workflow,
    reducing setup time for dependencies.
    *
    [`.github/workflows/release.yml`](diffhunk://#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34R54-R61):
    Implemented NuGet package caching in the release workflow to optimize
    dependency installation during the `dotnet restore` step.
    
    ### Notes
    <!-- any additional notes for this PR -->
    
    This is similar to
    open-feature/dotnet-sdk-contrib#453
    
    ---------
    
    Signed-off-by: André Silva <[email protected]>
    askpt authored Jul 11, 2025
    Configuration menu
    Copy the full SHA
    f6ae8dd View commit details
    Browse the repository at this point in the history
  4. feat: Add Track method to IFeatureClient (#519)

    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    Adds Track method to `IFeatureClient` so developers dependent on this
    abstraction can track user interactions.
    
    ### Related Issues
    <!-- add here the GitHub issue that this PR resolves if applicable -->
    
    Fixes #518
    
    ### Notes
    <!-- any additional notes for this PR -->
    
    ### Follow-up Tasks
    <!-- anything that is related to this PR but not done here should be
    noted under this section -->
    <!-- if there is a need for a new issue, please link it here -->
    
    ### How to test
    <!-- if applicable, add testing instructions under this section -->
    
    Signed-off-by: Kyle Julian <[email protected]>
    kylejuliandev authored Jul 11, 2025
    Configuration menu
    Copy the full SHA
    2e70072 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2025

  1. chore: Add comparison to Value (#523)

    Signed-off-by: André Silva <[email protected]>
    
    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    This pull request introduces enhancements to the `Value` class in the
    `OpenFeature.Model` namespace, ensuring better equality handling, and
    updates dependencies to include `Microsoft.Bcl.HashCode`. The most
    significant changes include implementing equality comparison for
    `Value`, adding hash code generation, and updating project files to
    include the new dependency.
    
    ### Enhancements to `Value` class:
    
    *
    [`src/OpenFeature/Model/Value.cs`](diffhunk://#diff-336aacd3c42458899187108a2064648ae21e439b2b11e6ca7f25b7b7fef00609L9-R9):
    The `Value` class now implements `IEquatable<Value>` and includes
    methods for equality comparison (`Equals`, `==`, `!=`), hash code
    generation (`GetHashCode`), and internal helpers for comparing complex
    types like structures and lists. This ensures more robust and consistent
    equality checks.
    [[1]](diffhunk://#diff-336aacd3c42458899187108a2064648ae21e439b2b11e6ca7f25b7b7fef00609L9-R9)
    [[2]](diffhunk://#diff-336aacd3c42458899187108a2064648ae21e439b2b11e6ca7f25b7b7fef00609R187-R378)
    
    ### Dependency updates:
    
    *
    [`Directory.Packages.props`](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156L13-R25):
    Added `Microsoft.Bcl.HashCode` as a dependency for hash code generation.
    Other package references were reformatted for consistency.
    *
    [`src/OpenFeature/OpenFeature.csproj`](diffhunk://#diff-711ea17cbdebe419375c7684c8c39a1423d2bebcf8976ddd7bdd78deaab65b21R11):
    Included `Microsoft.Bcl.HashCode` for specific target frameworks
    (`net462` and `netstandard2.0`).
    
    ### Notes
    <!-- any additional notes for this PR -->
    This implementation is necessary for the comparison in the
    MultiProvider. See:
    #488 (comment)
    
    ---------
    
    Signed-off-by: André Silva <[email protected]>
    askpt authored Jul 14, 2025
    Configuration menu
    Copy the full SHA
    883f4f3 View commit details
    Browse the repository at this point in the history
  2. feat: Add Hook Dependency Injection extension method with Hook instan…

    …ce (#513)
    
    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    In #512 I needed to tweak the sample AspNetCore application to pass Hook
    options to the MetricsHook. I noticed that in order to pass the options
    I needed to use the delegate based approach, while discarding the
    `serviceProvider`, like:
    
    ```csharp
    featureBuilder.AddHostedFeatureLifecycle()
            .AddHook(_ => new MetricsHook(metricsHookOptions))
    ```
    
    It would be simpler and easier for devs to interact with a third
    overload that allows them to pass an instance of the hook that they want
    to interact with, like so:
    
    ```csharp
    featureBuilder.AddHostedFeatureLifecycle()
        .AddHook(new MetricsHook())
    ```
    
    ### Related Issues
    <!-- add here the GitHub issue that this PR resolves if applicable -->
    
    ### Notes
    <!-- any additional notes for this PR -->
    
    ### Follow-up Tasks
    <!-- anything that is related to this PR but not done here should be
    noted under this section -->
    <!-- if there is a need for a new issue, please link it here -->
    
    ### How to test
    <!-- if applicable, add testing instructions under this section -->
    
    ---------
    
    Signed-off-by: Kyle Julian <[email protected]>
    kylejuliandev authored Jul 14, 2025
    Configuration menu
    Copy the full SHA
    12396b7 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2025

  1. docs: remove curly brace from readme

    The curly brace breaks the Docusaurus complication.
    
    Signed-off-by: Michael Beemer <[email protected]>
    beeme1mr authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    8c92524 View commit details
    Browse the repository at this point in the history
  2. docs: fix anchor link in readme (#525)

    This is causing an issue when attempting to update the .NET SDK docs on
    openfeature.dev.
    
    
    https://github.com/open-feature/openfeature.dev/actions/runs/16301698184/job/46037647418?pr=1248
    
    Signed-off-by: Michael Beemer <[email protected]>
    beeme1mr authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    18705c7 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2025

  1. feat: Add Metric Hook Custom Attributes (#512)

    <!-- Please use this template for your pull request. -->
    <!-- Please use the sections that you need and delete other sections -->
    
    ## This PR
    <!-- add the description of the PR here -->
    
    Adds new `MetricsHookOptions` and `MetricsHookOptionsBuilder` to
    optionally configure custom attributes that can be tagged on the
    `feature_flag.evaluation_success_total` metric. Example usage:
    
    ```csharp
    var options = MetricsHookOptions.CreateBuilder()
        .WithCustomDimension("custom_dimension_key", "custom_dimension_value")
        .WithFlagEvaluationMetadata("boolean", s => s.GetBool("boolean"))
        .Build();
    
    OpenFeature.Api.Instance.AddHooks(new MetricsHook(options));
    ```
    
    Screenshot below shows the AspNetCore sample application tagging the
    `feature_flag.evaluation_success_total` counter with the specified
    dimensions.
    
    
    ![image](https://github.com/user-attachments/assets/e8cda7d8-404a-4d54-96a5-066188d5c18a)
    
    
    ### Related Issues
    <!-- add here the GitHub issue that this PR resolves if applicable -->
    
    Fixes #509
    Fixes #514
    
    ### Notes
    <!-- any additional notes for this PR -->
    
    ### Follow-up Tasks
    <!-- anything that is related to this PR but not done here should be
    noted under this section -->
    <!-- if there is a need for a new issue, please link it here -->
    
    ### How to test
    <!-- if applicable, add testing instructions under this section -->
    
    ---------
    
    Signed-off-by: Kyle Julian <[email protected]>
    kylejuliandev authored Jul 19, 2025
    Configuration menu
    Copy the full SHA
    8c05d1d View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2025

  1. chore(deps): update github/codeql-action digest to d6bbdef (#527)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Jul 21, 2025
    Configuration menu
    Copy the full SHA
    03d3b9e View commit details
    Browse the repository at this point in the history
  2. chore(deps): update spec digest to baec39b (#528)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Jul 21, 2025
    Configuration menu
    Copy the full SHA
    a0ae014 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2025

  1. feat: Support JSON Serialize for Value (#529)

    * feat: add ValueJsonConverter to support STJ JSON Serialize
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * test: add test case
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * style: apply dotnet-format
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * test: update test cases
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * test: update deserialize for int/Datetime
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * style: apply dotnet format
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * refactor: update DateTime handling
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * fix: fix build
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * test: update test case to cover nested Structure and beautify JSON test data
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * refactor: update double/int value serialize
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * include boundaries
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * update double test case data
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * test: Update StructureTests double test case
    
    Signed-off-by: Weihan Li <[email protected]>
    
    * refactor: simplify write number value for ValueJsonConverter
    
    Signed-off-by: Weihan Li <[email protected]>
    
    ---------
    
    Signed-off-by: Weihan Li <[email protected]>
    WeihanLi authored Jul 24, 2025
    Configuration menu
    Copy the full SHA
    6e521d2 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2025

  1. feat: Add TraceEnricherHookOptions Custom Attributes (#526)

    * Add TraceEnricherHookOptions to enrich feature_flag.evaluation event
    
    * Add unit tests
    * Update README
    * Add XML comments
    
    Signed-off-by: Kyle Julian <[email protected]>
    
    * Update Method name to be consistent with Tags found in Activity
    
    Signed-off-by: Kyle Julian <[email protected]>
    
    ---------
    
    Signed-off-by: Kyle Julian <[email protected]>
    kylejuliandev authored Jul 26, 2025
    Configuration menu
    Copy the full SHA
    5a91005 View commit details
    Browse the repository at this point in the history
  2. chore(deps): update github/codeql-action digest to 4e828ff (#532)

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Jul 26, 2025
    Configuration menu
    Copy the full SHA
    20d1f37 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2025

  1. refactor: Simplify Provider Repository (#515)

    * refactor: simplify initialization and shutdown methods with cancellation support
    
    Signed-off-by: André Silva <[email protected]>
    
    * refactor: change visibility of GetProvider and ShutdownAsync methods to internal
    
    Signed-off-by: André Silva <[email protected]>
    
    * fix: correct logger instance type in ProviderRepository
    
    Signed-off-by: André Silva <[email protected]>
    
    * fix: update preprocessor directives for compatibility with .NET Standard
    
    Signed-off-by: André Silva <[email protected]>
    
    * fix: update SetProviderAsync method to enforce non-null domain parameter
    
    Signed-off-by: André Silva <[email protected]>
    
    * fix: enhance documentation for GetProvider and FeatureClient constructor parameters
    
    Signed-off-by: André Silva <[email protected]>
    
    ---------
    
    Signed-off-by: André Silva <[email protected]>
    askpt authored Jul 28, 2025
    Configuration menu
    Copy the full SHA
    2547a57 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2025

  1. fix: update DI lifecycle to use container instead of static instance (#…

    …534)
    
    * feat: Update Api constructor visibility and adjust service registration
    
    Signed-off-by: André Silva <[email protected]>
    
    * feat: Enhance FeatureClient to use Api instance for provider access and context retrieval
    
    Signed-off-by: André Silva <[email protected]>
    
    * feat: Update Api to support singleton instance setup in Dependency Injection
    
    Signed-off-by: André Silva <[email protected]>
    
    * feat: Refactor FeatureClient constructor to prioritize API instance and improve provider access
    
    Signed-off-by: André Silva <[email protected]>
    
    ---------
    
    Signed-off-by: André Silva <[email protected]>
    askpt authored Jul 30, 2025
    Configuration menu
    Copy the full SHA
    1a3846d View commit details
    Browse the repository at this point in the history
  2. chore(main): release 2.8.0 (#511)

    * chore(main): release 2.8.0
    
    Signed-off-by: OpenFeature Bot <[email protected]>
    
    * Add missing release
    
    Signed-off-by: André Silva <[email protected]>
    
    ---------
    
    Signed-off-by: OpenFeature Bot <[email protected]>
    Signed-off-by: André Silva <[email protected]>
    Co-authored-by: André Silva <[email protected]>
    openfeaturebot and askpt authored Jul 30, 2025
    Configuration menu
    Copy the full SHA
    c0eb12a View commit details
    Browse the repository at this point in the history
Loading