Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency microsoft.featuremanagement to 4.0.0 #283

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 25, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
Microsoft.FeatureManagement 4.0.0-preview -> 4.0.0 age adoption passing confidence

Release Notes

microsoft/FeatureManagement-Dotnet (Microsoft.FeatureManagement)

v4.0.0

Compare Source

4.0.0 - November 1, 2024

Microsoft.FeatureManagement Updates

The packages associated with this release are

Microsoft.FeatureManagement

Enhancements
Variant Feature Flags

A variant feature flag is an enhanced feature flag that supports multiple states or variations. While it can still be toggled on or off, it also allows for different configurations, ranging from simple primitives to complex JSON objects. Variant feature flags are particularly useful for feature rollouts, configuration rollouts, and feature experimentation (also known as A/B testing).

The new IVariantFeatureManager has been introduced as the successor to the existing IFeatureManager. It retains all the functionalities of IFeatureManager while adding new GetVariantAsync methods and supporting CancellationToken for all methods.

IVariantFeatureManager featureManager;
...
Variant variant = await featureManager.GetVariantAsync(MyFeatureFlags.HelpText, CancellationToken.None);
model.Text = variant.Configuration.Value;

Note: If reading variant flags from App Configuration, version 8.0.0 or above for the Microsoft.Extensions.Configuration.AzureAppConfiguration or Microsoft.Azure.AppConfiguration.AspNetCore package is required.

For more details on Variants, see here.

Variant Service Provider

Variant feature flags can be used in conjunction with dependency injection to surface different implementations of a service for different users. This is accomplished by using the Variant Service Provider.

For more details on Variant Service Provider, see here

Telemetry

Telemetry provides observability into flag evaluations, offering insights into which users received specific flag results. This enables more powerful metric analysis, such as experimentation.

For more details on Telemetry, see here.

Microsoft Feature Management Schema

Added support for variant feature flags defined using Microsoft Feature Management schema. Variants and telemetry can be declared using Microsoft Feature Flag schema v2. Here is a Sample.

Performance Optimizations

The performance of the feature flag state evaluation has been improved by up to 20%, with a memory reduction of up to 30% for .NET 8 applications compared to the version 3.5.0 release.

Microsoft.FeatureManagement.AspNetCore

Enhancements
  • Adjusted the .WithTargeting() builder method to automatically add HttpContextAccessor if it's not already added.

  • Added TargetingHttpContextMiddleware which persists targeting context in the current activity. This is used when setting up Telemetry.

  • Added support for variants in FeatureTagHelper. This allows MVC views to use the <feature> tag to conditionally render content based on whether a specific variant of a feature is assigned.

    <feature name="FeatureX" variant="Alpha">
      <p>This can only be seen if variant 'Alpha' of 'FeatureX' is assigned.</p>
    </feature>

    For more details on ASP.NET views and variants, see here.

  • Updated Microsoft.FeatureManagement reference to 4.0.0. See the release notes for more information on the changes.

  • Added support for .NET 9 as a target framework.

Breaking Change
  • The FeatureTagHelper constructor now requires an IVariantFeatureManager to support new variant functionality. While this class is typically not instantiated directly, any direct instantiation will need to be updated.
  • Removed .NET 7 as a target framework as .NET 7 is out of support.

Microsoft.FeatureManagement.Telemetry.ApplicationInsights

Enhancements
  • Added support for Application Insights telemetry. To publish feature flag evaluation data and tag outgoing events with targeting information, register the Application Insights telemetry publisher as shown below.

    builder.Services.AddFeatureManagement()
        .AddApplicationInsightsTelemetry();

    For more details on Application Insights Publishing, see here

v4.0.0-preview5

Compare Source

4.0.0-preview5 - Oct 24, 2024

Microsoft.FeatureManagement Updates

The packages associated with this release are

Microsoft.FeatureManagement

Enhancements
  • Added support for injecting additional telemetry fields on feature evaluation events if telemetry is enabled.
    • DefaultWhenEnabled reflects what the DefaultWhenEnabled variant on the flag is.
    • VariantAssignmentPercentage shows what percentage of users will be allocated the given Variant for the given Reason.

Microsoft.FeatureManagement.AspNetCore

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview5.

Microsoft.FeatureManagement.Telemetry.ApplicationInsights

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview5.

v4.0.0-preview4

Compare Source

Microsoft.FeatureManagement Updates

The packages associated with this release are

Microsoft.FeatureManagement

Enhancements
  • The feature flag telemetry pipeline is now integrated with .NET Acitivity instrumentation. Feature manager now has an AcitvitySource called "Microsoft.FeatureManagement". If telemetry is enabled for a feature flag, whenever the feature flag is evaluated, feature manager will start an Activity and add an ActivityEvent with tags containing feature evaluation information. #​455
Breaking Changes
  • If you were using earlier preview versions of this package and configuration files to define variant feature flags, they are no longer supported in the .NET Feature Management schema. Instead, please use the Microsoft Feature Management schema to define variant feature flags. #​421.

  • AddTelemetryPublisher API and ITelemetryPublisher interface were removed. The feature flag telemetry pipeline is now integrated with .NET Acitivity instrumentation. #​455

Microsoft.FeatureManagement.AspNetCore

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview4.

Microsoft.FeatureManagement.Telemetry.ApplicationInsights

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview4.
Enhancements
  • Introduced a new API AddApplicationInsightsTelemetryPublisher to register a feature flag telemetry publisher for Application Insights. #​455

    builder.Services.AddFeatureManagement()
                    .WithTargeting()
                    .AddApplicationInsightsTelemetryPublisher();

Breaking Changes

  • The TargetingTelemetryInitializer type has been moved to this package from the now-deprecated Microsoft.FeatureManagement.Telemetry.ApplicationInsights.AspNetCore package. This change simplifies the utilization of feature flag telemetry.

  • The type ApplicationInsightsTelemetryPublisher has been removed as its functionality has been replaced with the new API AddApplicationInsightsTelemetryPublisher for publishing feature flag telemetry to Application Insights. #​455

v4.0.0-preview3

Compare Source

Microsoft.FeatureManagement Updates

The packages associated with this release are

Microsoft.FeatureManagement

Enhancements
  • Added support for variant feature flags defined using Microsoft Feature Management schema. Variants and telemetry can be declared using Microsoft Feature Flag schema v2. The Microsoft Feature Management schema is designed to be language agnostic, enabling you to apply a consistent feature management configuration across Microsoft feature management libraries of different programming languages.

Microsoft.FeatureManagement.AspNetCore

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview3.

Microsoft.FeatureManagement.Telemetry.ApplicationInsights

Breaking Changes
  • Updated the namespace for ApplicationInsightsTelemetryPublisher to Microsoft.FeatureManagement.Telemetry. In the future, developers using any of our offered telemetry publishers will no longer need to specify the service specific namespaces like using Microsoft.FeatureManagement.Telemetry.ApplicationInsights.

  • Updated the namespace for TrackEvent extension method of TelemetryClient to Microsoft.ApplicationInsights. The previous directive using Microsoft.FeatureManagement.Telemetry.ApplicationInsights is no longer required when calling the TrackEvent method.

Microsoft.FeatureManagement.Telemetry.ApplicationInsights.AspNetCore

  • Updated Microsoft.FeatureManagement reference to 4.0.0-preview3.

v4.0.0-preview2

Compare Source

Microsoft.FeatureManagement Updates

The packages associated with this release are

Microsoft.FeatureManagement

Enhancements
  • Added support for variant feature flag-based service provider in dependency injection. It allows different service implementations to be injected automatically for different targeted audiences based on their variant assignment. (#​39). See more details here.
  • Added a TargetingContext property to the EvaluationEvent. This allows feature evaluation events to accurately represent what the targeting context was at the time of feature evaluation. (#​409)

Microsoft.FeatureManagement.AspNetCore

Enhancements
  • Introduced a new ASP.NET Core middleware called TargetingHttpContextMiddleware. It makes targeting information available from HttpContext on each request. (#​409)
  • Added support for .NET 8 target framework. (#​364)

Microsoft.FeatureManagement.Telemetry.ApplicationInsights

Enhancements
  • Added a TargetingId property to the feature evaluation events sent to Application Insights. The TargetingId is the identifier of a targeted user during feature evaluation. This new property allows you to correlate feature evaluation events with other telemetry data your application sends to Application Insights, as long as they share the same TargetingId. (#​409)

Microsoft.FeatureManagement.Telemetry.ApplicationInsights.AspNetCore

Enhancements
  • Introduced a telemetry initializer named TargetingTelemetryInitializer. It automatically adds targeting information to telemetry data your application sends to Application Insights. This can be used to correlate your telemetry data with feature evaluation events based on the targeting information during your telemetry analysis. (#​409)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested review from a team as code owners September 25, 2024 14:43
@renovate renovate bot added the renovate label Sep 25, 2024
@renovate renovate bot changed the title chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview4 chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview4 - autoclosed Sep 25, 2024
@renovate renovate bot closed this Sep 25, 2024
@renovate renovate bot deleted the renovate/featuremanagement-dotnet-monorepo branch September 25, 2024 16:44
@renovate renovate bot changed the title chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview4 - autoclosed chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview4 Sep 26, 2024
@renovate renovate bot reopened this Sep 26, 2024
@renovate renovate bot restored the renovate/featuremanagement-dotnet-monorepo branch September 26, 2024 22:32
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch from f92095c to 6408766 Compare September 26, 2024 22:32
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch 5 times, most recently from 7fa9950 to 3422312 Compare October 9, 2024 17:48
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch from 3422312 to c7073f5 Compare October 14, 2024 23:17
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch 9 times, most recently from 24899d1 to 3706a7c Compare October 18, 2024 14:32
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch 2 times, most recently from 5e01348 to 30eaa66 Compare October 24, 2024 20:06
@renovate renovate bot changed the title chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview4 chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview5 Oct 24, 2024
@renovate renovate bot force-pushed the renovate/featuremanagement-dotnet-monorepo branch from 30eaa66 to a211fc8 Compare November 1, 2024 18:03
@renovate renovate bot changed the title chore(deps): update dependency microsoft.featuremanagement to 4.0.0-preview5 chore(deps): update dependency microsoft.featuremanagement to 4.0.0 Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants