From e29a8b81e16f7a14d70e0296176042f082fd5153 Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Fri, 10 Mar 2023 21:50:13 +0500 Subject: [PATCH 1/7] Replaced all instances of full stack except from changelog file and code files --- .github/workflows/csharp.yml | 2 +- OptimizelySDK.DemoApp/README.md | 4 +- README.md | 50 +++++++++++++++---- .../040 - optimizelyconfig-csharp.md | 2 +- .../csharp-sdk/070 - event-batching-csharp.md | 2 +- .../csharp-sdk/190 - track-csharp.md | 2 +- 6 files changed, 46 insertions(+), 16 deletions(-) diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml index 0202c24f..55b1dce2 100644 --- a/.github/workflows/csharp.yml +++ b/.github/workflows/csharp.yml @@ -38,7 +38,7 @@ jobs: TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }} fullstack_production_suite: - name: Run Full Stack Compatibility Suite + name: Run Optimizely Feature Experimentation Compatibility Suite uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master with: FULLSTACK_TEST_REPO: ProdTesting diff --git a/OptimizelySDK.DemoApp/README.md b/OptimizelySDK.DemoApp/README.md index 1e3e6b06..48277962 100644 --- a/OptimizelySDK.DemoApp/README.md +++ b/OptimizelySDK.DemoApp/README.md @@ -1,6 +1,6 @@ # C# SDK Demo App -This demo uses the C# SDK, a part of Optimizely's Full Stack solution. It will walk you through: +This demo uses the C# SDK, a part of Optimizely's Feature Experimentation and Optimizely Full Stack (legacy) solution. It will walk you through: 1. How to bucket users into experiment's variation(s) 2. How to track conversion events @@ -40,7 +40,7 @@ Using the instructions below, you can run the app locally and mimic bucketing we To better understand this experiment, we recommend that you select a few different visitors on the "Select Visitor" page and bucket them into variations and simulate a conversion event by clicking the "Buy Now" button on the "Shop" page. Within a few seconds, you should see the results populate on the Optimizely results page. -The crux of this Full Stack experiment is bucketing users into variations and exposing them to different sorting functions. The SDK’s `Activate()` function will bucket users into a variation based on a user ID (internal id, user cookie, etc…). +The crux of this Optimizely Feature Experimentation experiment is bucketing users into variations and exposing them to different sorting functions. The SDK’s `Activate()` function will bucket users into a variation based on a user ID (internal id, user cookie, etc…). To actually test which sorting algorithm influences increased sales, we need to track the number of clicks on the Buy Now button. We can leverage the SDK's `Track()` function for that, passing it the event key which, in our case, is "add_to_cart" and the user ID. diff --git a/README.md b/README.md index 31cb90e0..e7726165 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,18 @@ [![NuGet](https://img.shields.io/nuget/v/Optimizely.SDK.svg?style=plastic)](https://www.nuget.org/packages/Optimizely.SDK/) [![Apache 2.0](https://img.shields.io/github/license/nebula-plugins/gradle-extra-configurations-plugin.svg)](http://www.apache.org/licenses/LICENSE-2.0) -This repository houses the .Net based C# SDK for use with Optimizely Full Stack and Optimizely Rollouts. +This repository houses the .Net based C# SDK for use with Optimizely Feature Experimentation and Optimizely Full Stack (legacy). -Optimizely Full Stack is A/B testing and feature flag management for product development teams. Experiment in any application. Make every feature on your roadmap an opportunity to learn. Learn more at https://www.optimizely.com/platform/full-stack/, or see the [documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). +Optimizely Feature Experimentation is an A/B testing and feature flag management for product development teams, letting you experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). + +Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feature-flagging/) for development teams. You can easily roll out and roll back features in any application without code deploys, mitigating risk for every feature on your roadmap. -Optimizely Rollouts is free feature flags for development teams. Easily roll out and roll back features in any application without code deploys. Mitigate risk for every feature on your roadmap. Learn more at https://www.optimizely.com/rollouts/, or see the [documentation](https://docs.developers.optimizely.com/experimentation/v3.1.0-full-stack/docs/introduction-to-rollouts). ## Getting Started -### Installing the SDK +Refer to the [Csharp SDK's developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/csharp-sdk) for detailed instructions on getting started with using the SDK. + +### Installing the Csharp SDK The SDK can be installed through [NuGet](https://www.nuget.org): @@ -30,11 +33,16 @@ Simply compile and run the Sample application to see it in use. Note that the way the Demo App stores data in memory is not recommended for production use and is merely illustrates how to use the SDK. -### Using the SDK -#### Documentation +### Feature Management Access + +To access the Feature Management configuration in the Optimizely dashboard, please contact your Optimizely account executive. + +## Use the Csharp SDK + +See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first Csharp project and use the SDK. -See the Optimizely Full Stack C# SDK [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/csharp-sdk) to learn how to set up your first Full Stack project and use the SDK. +## Development #### Initialization @@ -210,9 +218,7 @@ This option is used to specify whether to start the config manager on initializa This option is used to provide token for datafile belonging to a secure environment. -## Development - -### Unit tests +### Running all tests The sample project contains unit tests as well which can be run from the built-in Visual Studio Test Runner. @@ -226,3 +232,27 @@ Optimizely SDK uses third party software: [murmurhash-signed](https://www.nuget.org/packages/murmurhash-signed/), [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json/), and [NJsonSchema](https://www.nuget.org/packages/NJsonSchema/). + +### Other Optimzely SDKs + +- Agent - https://github.com/optimizely/agent + +- Android - https://github.com/optimizely/android-sdk + +- Flutter - https://github.com/optimizely/optimizely-flutter-sdk + +- Go - https://github.com/optimizely/go-sdk + +- Java - https://github.com/optimizely/java-sdk + +- JavaScript - https://github.com/optimizely/javascript-sdk + +- PHP - https://github.com/optimizely/php-sdk + +- Python - https://github.com/optimizely/python-sdk + +- React - https://github.com/optimizely/react-sdk + +- Ruby - https://github.com/optimizely/ruby-sdk + +- Swift - https://github.com/optimizely/swift-sdk \ No newline at end of file diff --git a/docs/readme-sync/sdk-reference-guides/csharp-sdk/040 - optimizelyconfig-csharp.md b/docs/readme-sync/sdk-reference-guides/csharp-sdk/040 - optimizelyconfig-csharp.md index c9df3951..0bbda239 100644 --- a/docs/readme-sync/sdk-reference-guides/csharp-sdk/040 - optimizelyconfig-csharp.md +++ b/docs/readme-sync/sdk-reference-guides/csharp-sdk/040 - optimizelyconfig-csharp.md @@ -10,7 +10,7 @@ updatedAt: "2020-01-28T21:53:11.290Z" "title": "Overview" } [/block] -Full Stack SDKs open a well-defined set of public APIs, hiding all implementation details. However, some clients may need access to project configuration data within the "datafile". +Optimizely Feature Experimentation SDKs open a well-defined set of public APIs, hiding all implementation details. However, some clients may need access to project configuration data within the "datafile". In this document, we extend our public APIs to define data models and access methods, which clients can use to access project configuration data. diff --git a/docs/readme-sync/sdk-reference-guides/csharp-sdk/070 - event-batching-csharp.md b/docs/readme-sync/sdk-reference-guides/csharp-sdk/070 - event-batching-csharp.md index f1539996..236c2222 100644 --- a/docs/readme-sync/sdk-reference-guides/csharp-sdk/070 - event-batching-csharp.md +++ b/docs/readme-sync/sdk-reference-guides/csharp-sdk/070 - event-batching-csharp.md @@ -5,7 +5,7 @@ hidden: false createdAt: "2019-09-12T13:44:04.059Z" updatedAt: "2019-12-13T00:25:39.892Z" --- -The [Optimizely Full Stack C# SDK](https://github.com/optimizely/csharp-sdk) now batches impression and conversion events into a single payload before sending it to Optimizely. This is achieved through a new SDK component called the event processor. +The [Optimizely Feature Experimentation C# SDK](https://github.com/optimizely/csharp-sdk) now batches impression and conversion events into a single payload before sending it to Optimizely. This is achieved through a new SDK component called the event processor. Event batching has the advantage of reducing the number of outbound requests to Optimizely depending on how you define, configure, and use the event processor. It means less network traffic for the same number of Impression and conversion events tracked. diff --git a/docs/readme-sync/sdk-reference-guides/csharp-sdk/190 - track-csharp.md b/docs/readme-sync/sdk-reference-guides/csharp-sdk/190 - track-csharp.md index 37a6bf73..ae006140 100644 --- a/docs/readme-sync/sdk-reference-guides/csharp-sdk/190 - track-csharp.md +++ b/docs/readme-sync/sdk-reference-guides/csharp-sdk/190 - track-csharp.md @@ -91,7 +91,7 @@ The table lists other other Optimizely functionality that may be triggered by us "h-0": "Functionality", "h-1": "Description", "0-0": "Conversions", - "0-1": "Calling this method records a conversion and attributes it to the variations that the user has seen.\n \nFull Stack 3.x supports retroactive metrics calculation. You can create [metrics](doc:choose-metrics) on this conversion event and add metrics to experiments even after the conversion has been tracked.\n\nFor more information, see the paragraph **Events are always on** in the introduction of [Events: Tracking clicks, pageviews, and other visitor actions](https://help.optimizely.com/Measure_success%3A_Track_visitor_behaviors/Events%3A_Tracking_clicks%2C_pageviews%2C_and_other_visitor_actions).\n\n**Important!** \n - This method won't track events when the specified event key is invalid.\n - Changing the traffic allocation of running experiments affects how conversions are recorded and variations are attributed to users.", + "0-1": "Calling this method records a conversion and attributes it to the variations that the user has seen.\n \nOptimizely Feature Experimentation 3.x supports retroactive metrics calculation. You can create [metrics](doc:choose-metrics) on this conversion event and add metrics to experiments even after the conversion has been tracked.\n\nFor more information, see the paragraph **Events are always on** in the introduction of [Events: Tracking clicks, pageviews, and other visitor actions](https://help.optimizely.com/Measure_success%3A_Track_visitor_behaviors/Events%3A_Tracking_clicks%2C_pageviews%2C_and_other_visitor_actions).\n\n**Important!** \n - This method won't track events when the specified event key is invalid.\n - Changing the traffic allocation of running experiments affects how conversions are recorded and variations are attributed to users.", "1-0": "Impressions", "1-1": "Track doesn't trigger impressions.", "2-0": "Notification Listeners", From 27094a0df23125181ce3f3b8c1adb0d989d7acbd Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Fri, 10 Mar 2023 22:23:19 +0500 Subject: [PATCH 2/7] fixes --- OptimizelySDK.DemoApp/README.md | 2 +- README.md | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/OptimizelySDK.DemoApp/README.md b/OptimizelySDK.DemoApp/README.md index 48277962..ccf50c72 100644 --- a/OptimizelySDK.DemoApp/README.md +++ b/OptimizelySDK.DemoApp/README.md @@ -40,7 +40,7 @@ Using the instructions below, you can run the app locally and mimic bucketing we To better understand this experiment, we recommend that you select a few different visitors on the "Select Visitor" page and bucket them into variations and simulate a conversion event by clicking the "Buy Now" button on the "Shop" page. Within a few seconds, you should see the results populate on the Optimizely results page. -The crux of this Optimizely Feature Experimentation experiment is bucketing users into variations and exposing them to different sorting functions. The SDK’s `Activate()` function will bucket users into a variation based on a user ID (internal id, user cookie, etc…). +The crux of this Optimizely Feature Experimentation experiment is bucketing users into variations and exposing them to different sorting functions. The SDK’s `Decide()` function will bucket users into a variation based on a user ID (internal id, user cookie, etc…). To actually test which sorting algorithm influences increased sales, we need to track the number of clicks on the Buy Now button. We can leverage the SDK's `Track()` function for that, passing it the event key which, in our case, is "add_to_cart" and the user ID. diff --git a/README.md b/README.md index e7726165..e8b3fd56 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,16 @@ This repository houses the .Net based C# SDK for use with Optimizely Feature Experimentation and Optimizely Full Stack (legacy). -Optimizely Feature Experimentation is an A/B testing and feature flag management for product development teams, letting you experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). +Optimizely Feature Experimentation is an A/B testing and feature management for product development teams, letting you experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). -Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feature-flagging/) for development teams. You can easily roll out and roll back features in any application without code deploys, mitigating risk for every feature on your roadmap. +Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feature-flagging/) for development teams. You can easily roll out and roll back features in any application without code deploys, mitigating risk for every feature on your roadmap. -## Getting Started +## Get Started Refer to the [Csharp SDK's developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/csharp-sdk) for detailed instructions on getting started with using the SDK. -### Installing the Csharp SDK +### Install the C# SDK The SDK can be installed through [NuGet](https://www.nuget.org): @@ -36,14 +36,12 @@ and is merely illustrates how to use the SDK. ### Feature Management Access -To access the Feature Management configuration in the Optimizely dashboard, please contact your Optimizely account executive. +To access the Feature Management configuration in the Optimizely dashboard, please contact your Optimizely customer success manager. ## Use the Csharp SDK See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first Csharp project and use the SDK. -## Development - #### Initialization Create the Optimizely Client, for example: @@ -218,11 +216,7 @@ This option is used to specify whether to start the config manager on initializa This option is used to provide token for datafile belonging to a secure environment. -### Running all tests - -The sample project contains unit tests as well which can be run from the built-in Visual Studio Test Runner. - -### Contributing +## SDK Development Please see [CONTRIBUTING](CONTRIBUTING.md). From 15b20f183a1925d18240e32cfb0c7f45c53f1d7f Mon Sep 17 00:00:00 2001 From: Muhammad Noman Date: Fri, 10 Mar 2023 22:32:25 +0500 Subject: [PATCH 3/7] Update README.md Co-authored-by: Griffin Cox <104227910+griffincox-optimizely@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8b3fd56..96a32e29 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ and is merely illustrates how to use the SDK. To access the Feature Management configuration in the Optimizely dashboard, please contact your Optimizely customer success manager. -## Use the Csharp SDK +## Use the C# SDK See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first Csharp project and use the SDK. From b5e814084544f4b65a01737ed1106566827b5a4c Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Sat, 11 Mar 2023 02:08:50 +0500 Subject: [PATCH 4/7] fixed --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 96a32e29..98533e56 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository houses the .Net based C# SDK for use with Optimizely Feature Experimentation and Optimizely Full Stack (legacy). -Optimizely Feature Experimentation is an A/B testing and feature management for product development teams, letting you experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). +Optimizely Feature Experimentation is an A/B testing and feature management tool for product development teams, letting you experiment at every step. Using Optimizely Feature Experimentation allows for every feature on your roadmap to be an opportunity to discover hidden insights. Learn more at [Optimizely.com](https://www.optimizely.com/products/experiment/feature-experimentation/), or see the [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/welcome). Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feature-flagging/) for development teams. You can easily roll out and roll back features in any application without code deploys, mitigating risk for every feature on your roadmap. @@ -42,7 +42,7 @@ To access the Feature Management configuration in the Optimizely dashboard, plea See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first Csharp project and use the SDK. -#### Initialization +### Initialization Create the Optimizely Client, for example: @@ -216,7 +216,7 @@ This option is used to specify whether to start the config manager on initializa This option is used to provide token for datafile belonging to a secure environment. -## SDK Development +## Contributing Please see [CONTRIBUTING](CONTRIBUTING.md). From 46c16336b93d669613b3da2dc3d072e644d496f7 Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Sat, 11 Mar 2023 03:08:54 +0500 Subject: [PATCH 5/7] resolved --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 98533e56..eb0da22c 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Optimizely Rollouts is [free feature flags](https://www.optimizely.com/free-feat ## Get Started -Refer to the [Csharp SDK's developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/csharp-sdk) for detailed instructions on getting started with using the SDK. +Refer to the [C# SDK's developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0.0-full-stack/docs/csharp-sdk) for detailed instructions on getting started with using the SDK. ### Install the C# SDK @@ -40,7 +40,7 @@ To access the Feature Management configuration in the Optimizely dashboard, plea ## Use the C# SDK -See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first Csharp project and use the SDK. +See the Optimizely Feature Experimentation [developer documentation](https://docs.developers.optimizely.com/experimentation/v4.0-full-stack/docs/csharp-sdk) to learn how to set up your first C# project and use the SDK. ### Initialization @@ -216,11 +216,13 @@ This option is used to specify whether to start the config manager on initializa This option is used to provide token for datafile belonging to a secure environment. -## Contributing +## SDK Development + +### Contributing Please see [CONTRIBUTING](CONTRIBUTING.md). -## Third Party Licenses +### Third Party Licenses Optimizely SDK uses third party software: [murmurhash-signed](https://www.nuget.org/packages/murmurhash-signed/), From 5449c90bee904f81935d2c58107a0e2bea49f028 Mon Sep 17 00:00:00 2001 From: Mike Chu Date: Tue, 14 Mar 2023 09:13:16 -0400 Subject: [PATCH 6/7] [FSSDK-8955] Do not lint markdown for now --- .github/workflows/csharp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml index 55b1dce2..3477e252 100644 --- a/.github/workflows/csharp.yml +++ b/.github/workflows/csharp.yml @@ -28,7 +28,7 @@ jobs: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: master VALIDATE_CSHARP: true - VALIDATE_MARKDOWN: true + VALIDATE_MARKDOWN: false integration_tests: name: Run Integration Tests From 5ed3318e1ca7cbaa0f06ec4c19398de66cbefacc Mon Sep 17 00:00:00 2001 From: Mike Chu Date: Tue, 14 Mar 2023 09:21:37 -0400 Subject: [PATCH 7/7] [FSSDK-8955] Remove VALIDATE_MARKDOWN --- .github/workflows/csharp.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml index 3477e252..85bae292 100644 --- a/.github/workflows/csharp.yml +++ b/.github/workflows/csharp.yml @@ -28,7 +28,6 @@ jobs: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: master VALIDATE_CSHARP: true - VALIDATE_MARKDOWN: false integration_tests: name: Run Integration Tests