Skip to content

Commit

Permalink
Merge branch 'main' into PythonFeatureManagementReleaseNotes
Browse files Browse the repository at this point in the history
  • Loading branch information
mrm9084 committed Nov 14, 2024
2 parents 7f08bd9 + e714036 commit b37673a
Show file tree
Hide file tree
Showing 13 changed files with 299 additions and 0 deletions.
90 changes: 90 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '29 4 * * 3'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
39 changes: 39 additions & 0 deletions releaseNotes/JavaScriptFeatureManagement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Microsoft Feature Management for JavaScript

[Source code][source_code] | [Package (npm)][package] | [Samples][samples]

## 2.0.0-preview.3 - Oct 24, 2024

### Enhancements

* Added validation for feature flag properties. [#17](https://github.com/microsoft/FeatureManagement-JavaScript/pull/17)

## 2.0.0-preview.2 - Oct 24, 2024

* No changes in this release.

## 2.0.0-preview.1 - Oct 15, 2024

### Enhancements

* Added support for 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).

* Added support for telemetry in feature flags. Telemetry is a powerful feature that allows you to track how your feature flags are being used. It provides insights into the effectiveness of your feature flags and helps you make data-driven decisions. Telemetry is particularly useful for feature experimentation (also known as A/B testing) and feature rollouts.

## 1.0.0 - Sep 26, 2024

This is the first stable release of the following features.
- Loading of feature flags from object and map.
- Feature flag evaluation with ambient context or user-provided context.
- Built-in feature filters [`Microsoft.TimeWindow`](https://github.com/microsoft/FeatureManagement/blob/main/Schema/FeatureFilters/Microsoft.TimeWindow.v1.0.0.schema.json) and [`Microsoft.Targeting`](https://github.com/microsoft/FeatureManagement/blob/main/Schema/FeatureFilters/Microsoft.Targeting.v1.0.0.schema.json).

## 1.0.0-preview.1 - May 17, 2024

Added support for the following features.
- Loading of feature flags from object and map.
- Feature flag status evaluation with or without context.
- Feature filters including built-in filters [`Microsoft.TimeWindow`](https://github.com/microsoft/FeatureManagement/blob/main/Schema/FeatureFilters/Microsoft.TimeWindow.v1.0.0.schema.json) and [`Microsoft.Targeting`](https://github.com/microsoft/FeatureManagement/blob/main/Schema/FeatureFilters/Microsoft.Targeting.v1.0.0.schema.json).

[package]: https://www.npmjs.com/package/@microsoft/feature-management
[samples]: https://github.com/microsoft/FeatureManagement-JavaScript/tree/main/examples
[source_code]: https://github.com/microsoft/FeatureManagement-JavaScript
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Microsoft JavaScript Feature Management for Application Insights in Browsers

[Source code][source_code] | [Package (npm)][package] | [Samples][samples]

## 2.0.0-preview.3 - Nov 8, 2024

* Updated `@microsoft/feature-management` dependency to `2.0.0-preview.3`. See the [release notes](./JavaScriptFeatureManagement.md) for more information on the changes.

## 2.0.0-preview.2 - Oct 24, 2024

### Bug Fix

* Fixed a bug that caused `TargetingId` in telemetry to be "undefined". [#59](https://github.com/microsoft/FeatureManagement-JavaScript/pull/59)

## 2.0.0-preview.1 - Oct 15, 2024

### Enhancements

* Added support for publishing telemetry to Application Insights.

* Introduced a `TrackEvent` API, allowing users to replace existing Application Insights `TrackEvent` calls to include targeting information in custom events sent to Application Insights. [#39](https://github.com/microsoft/FeatureManagement-JavaScript/pull/39)

[package]: https://www.npmjs.com/package/@microsoft/feature-management-applicationinsights-browser
[samples]: https://github.com/microsoft/FeatureManagement-JavaScript/tree/main/examples
[source_code]: https://github.com/microsoft/FeatureManagement-JavaScript
15 changes: 15 additions & 0 deletions releaseNotes/JavaScriptFeatureManagementApplicationInsightsNode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Microsoft JavaScript Feature Management for Application Insights in Node.js

[Source code][source_code] | [Package (npm)][package] | [Samples][samples]

## 2.0.0-preview.3 - Nov 8, 2024

### Enhancements

* Added support for publishing telemetry to Application Insights.

* Introduced a `TrackEvent` API, allowing users to replace existing Application Insights `TrackEvent` calls to include targeting information in custom events sent to Application Insights. [#64](https://github.com/microsoft/FeatureManagement-JavaScript/pull/64)

[package]: https://www.npmjs.com/package/@microsoft/feature-management-applicationinsights-node
[samples]: https://github.com/microsoft/FeatureManagement-JavaScript/tree/main/examples
[source_code]: https://github.com/microsoft/FeatureManagement-JavaScript
12 changes: 12 additions & 0 deletions releaseNotes/JavaScriptProvider.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

[Source code][source_code] | [Package (npm)][package] | [Samples][samples]

## 2.0.0-preview.1 - November 8, 2024

### Enhancements

* Added support for injecting additional telemetry metadata `FeatureFlagId`, `FeatureFlagReference`,`ETag` and `AllocationId` to feature flags if telemetry is enabled. [101](https://github.com/Azure/AppConfiguration-JavaScriptProvider/pull/101), [#111](https://github.com/Azure/AppConfiguration-JavaScriptProvider/pull/111)

## 1.1.2 - November 5, 2024

### Bug Fix

* Fixed a bug that caused `ReferenceError` of optional chaining when `process` is undefined. [#104](https://github.com/Azure/AppConfiguration-JavaScriptProvider/pull/104)

## 1.1.0 - August 13, 2024

### Enhancements
Expand Down
10 changes: 10 additions & 0 deletions releaseNotes/KubernetesProvider.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

[Image][image] | [Sample][sample]

## 2.1.0 - November 6, 2024

### Enhancements
* Added support for load balancing mode, which enables your workloads to distribute requests to App Configuration across all available replicas. This enhancement improves the scalability of applications that typically experience high request volumes to App Configuration, ensuring they remain within quota limits. Load balancing mode is disabled by default and can be activated by setting `loadBalancingEnabled` to `true`. [#55](https://github.com/Azure/AppConfiguration-KubernetesProvider/issues/55)
* Added support for monitoring all selected key-values. The target ConfigMaps and Secrets will be refreshed if any of key-values are updated. Watching the sentinel key for refresh helps ensure data integrity of configuration changes but it's now optional. [#40](https://github.com/Azure/AppConfiguration-KubernetesProvider/issues/40)

### Bug fixes
* Fixed a bug where ConfigMaps and Secrets may be regenerated even if there is no data change. [#75](https://github.com/Azure/AppConfiguration-KubernetesProvider/issues/75)
* Fixed a bug where key-values with no label are not loaded if the label filter is specified as empty string. [#76](https://github.com/Azure/AppConfiguration-KubernetesProvider/issues/76)

## 2.0.0 - September 11, 2024

### Breaking changes
Expand Down
27 changes: 27 additions & 0 deletions releaseNotes/Microsoft.Featuremanagement.AspNetCore.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

[Source code][source_code] | [Package (NuGet)][package] | [Samples][samples] | [Product documentation][docs]

## 4.0.0 - November 1, 2024

### 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](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#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.

``` HTML+Razor
<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](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#view).
* Updated `Microsoft.FeatureManagement` reference to `4.0.0`. See the [release notes](./Microsoft.Featuremanagement.md) 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.
## 4.0.0-preview5 - Oct 24, 2024
* Updated `Microsoft.FeatureManagement` reference to `4.0.0-preview5`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes.
## 4.0.0-preview4 - Jul 19, 2024
* Updated `Microsoft.FeatureManagement` reference to `4.0.0-preview4`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

[Source code][source_code] | [Package (NuGet)][package] | [Samples][samples] | [Product documentation][docs]

## Deprecated

This package has been deprecated and it's functionality is now available as a part of the [Microsoft.FeatureManagement.ApplicationInsights](https://github.com/Azure/AppConfiguration/blob/main/releaseNotes/Microsoft.Featuremanagement.Telemetry.ApplicationInsights.md) package.

## 4.0.0-preview3 - April 10, 2024

* Updated `Microsoft.FeatureManagement` reference to `4.0.0-preview3`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

[Source code][source_code] | [Package (NuGet)][package] | [Samples][samples] | [Product documentation][docs]

## 4.0.0 - November 1, 2024

### 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.

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

For more details on Application Insights Publishing, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#application-insights-telemetry-publisher)
## 4.0.0-preview5 - Oct 24, 2024

* Updated `Microsoft.FeatureManagement` reference to `4.0.0-preview5`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes.

## 4.0.0-preview4 - Jul 19, 2024

* Updated `Microsoft.FeatureManagement` reference to `4.0.0-preview4`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes.
Expand Down
49 changes: 49 additions & 0 deletions releaseNotes/Microsoft.Featuremanagement.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,55 @@

[Source code][source_code] | [Package (NuGet)][package] | [Samples][samples] | [Product documentation][docs]

## 4.0.0 - November 1, 2024

### 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.

``` C#
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](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#variants).

#### 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](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#variants-in-dependency-injection)

#### 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](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#telemetry).

#### Microsoft Feature Management Schema

Added support for variant feature flags defined using [Microsoft Feature Management schema](https://github.com/microsoft/FeatureManagement/blob/c5fab16dbf1450dce0bbfe7c4207da735ff31916/Schema/FeatureManagement.v2.0.0.schema.json). Variants and telemetry can be declared using [Microsoft Feature Flag schema v2](https://github.com/microsoft/FeatureManagement/blob/c5fab16dbf1450dce0bbfe7c4207da735ff31916/Schema/FeatureFlag.v2.0.0.schema.json). Here is a [Sample](https://github.com/microsoft/FeatureManagement-Dotnet/blob/f47e188babea0a91488d2e6a0b2ab4c9405d0794/examples/VariantAndTelemetryDemo/appsettings.json#L12).

#### 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.

## 4.0.0-preview5 - Oct 24, 2024

### 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.

## 4.0.0-preview4 - Jul 19, 2024

### Enhancements
Expand Down
3 changes: 3 additions & 0 deletions releaseNotes/MicrosoftAzureAppConfigurationAspNetCore.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Microsoft.Azure.AppConfiguration.AspNetCore
[Source code][source_code] | [Package (NuGet)][package]

## 8.1.0-preview - October 24th, 2024
* Updated `Microsoft.Extensions.Configuration.AzureAppConfiguration` reference to `8.1.0-preview`. See the [release notes](./MicrosoftExtensionsConfigurationAzureAppConfiguration.md) for more information on the changes.

## 8.0.0 - October 3rd, 2024
* Updated `Microsoft.Extensions.Configuration.AzureAppConfiguration` reference to `8.0.0`. See the [release notes](./MicrosoftExtensionsConfigurationAzureAppConfiguration.md) for more information on the changes.

Expand Down
3 changes: 3 additions & 0 deletions releaseNotes/MicrosoftAzureAppConfigurationFunctionsWorker.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Microsoft.Azure.AppConfiguration.Functions.Worker
[Source code][source_code] | [Package (NuGet)][package]

## 8.1.0-preview - October 24th, 2024
* Updated `Microsoft.Extensions.Configuration.AzureAppConfiguration` reference to `8.1.0-preview`. See the [release notes](./MicrosoftExtensionsConfigurationAzureAppConfiguration.md) for more information on the changes.

## 8.0.0 - October 3rd, 2024
* Updated `Microsoft.Extensions.Configuration.AzureAppConfiguration` reference to `8.0.0`. See the [release notes](./MicrosoftExtensionsConfigurationAzureAppConfiguration.md) for more information on the changes.

Expand Down
Loading

0 comments on commit b37673a

Please sign in to comment.