From 4fb1a817085329c9d6b1fd53b3203414f9b55045 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Fri, 5 Apr 2024 15:39:18 -0700 Subject: [PATCH 01/18] ci: build contract tests with net6.0 (#336) --- contract-tests/TestService.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contract-tests/TestService.csproj b/contract-tests/TestService.csproj index e361feaf..fa0b556c 100644 --- a/contract-tests/TestService.csproj +++ b/contract-tests/TestService.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net6.0 $(TESTFRAMEWORK) portable ContractTestService From 99d32a009ba0c36e89d7ab910bfd4063726fb726 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Wed, 10 Apr 2024 12:27:27 -0700 Subject: [PATCH 02/18] ci: add hook error contract test support (#337) --- contract-tests/Representations.cs | 8 ++++++++ contract-tests/SdkClientEntity.cs | 2 +- contract-tests/TestHook.cs | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/contract-tests/Representations.cs b/contract-tests/Representations.cs index 7511465f..8e775bf6 100644 --- a/contract-tests/Representations.cs +++ b/contract-tests/Representations.cs @@ -44,11 +44,19 @@ public class HookData public Dictionary BeforeEvaluation { get; set; } public Dictionary AfterEvaluation { get; set; } } + + public class HookErrors + { + public string BeforeEvaluation { get; set; } + public string AfterEvaluation { get; set; } + } + public class HookConfig { public string Name { get; set; } public Uri CallbackUri { get; set; } public HookData Data { get; set; } + public HookErrors Errors { get; set; } } public class SdkHookParams diff --git a/contract-tests/SdkClientEntity.cs b/contract-tests/SdkClientEntity.cs index 698a20de..2c1ca66f 100644 --- a/contract-tests/SdkClientEntity.cs +++ b/contract-tests/SdkClientEntity.cs @@ -366,7 +366,7 @@ private static Configuration BuildSdkConfig(SdkConfigParams sdkParams, ILogAdapt if (sdkParams.Hooks != null) { var hooks = sdkParams.Hooks.Hooks.Select(hook => - new TestHook(hook.Name, new CallbackService(hook.CallbackUri), hook.Data?.BeforeEvaluation, hook.Data?.AfterEvaluation) + new TestHook(hook.Name, new CallbackService(hook.CallbackUri), hook.Data?.BeforeEvaluation, hook.Data?.AfterEvaluation, hook.Errors?.BeforeEvaluation, hook.Errors?.AfterEvaluation) ); builder.Hooks(Components.Hooks(hooks)); diff --git a/contract-tests/TestHook.cs b/contract-tests/TestHook.cs index 979b26fd..b186eff4 100644 --- a/contract-tests/TestHook.cs +++ b/contract-tests/TestHook.cs @@ -14,15 +14,25 @@ public class TestHook: Hook private readonly Dictionary _before; private readonly Dictionary _after; - public TestHook(string name, CallbackService service, Dictionary before, Dictionary after) : base(name) + private readonly string _beforeError; + private readonly string _afterError; + + public TestHook(string name, CallbackService service, Dictionary before, Dictionary after, string beforeError, string afterError) : base(name) { _service = service; _before = before; _after = after; + _beforeError = beforeError; + _afterError = afterError; } public override SeriesData BeforeEvaluation(EvaluationSeriesContext context, SeriesData data) { + if (_beforeError != null) + { + throw new Exception(_beforeError); + } + _service.Post("", new EvaluationHookParams() { EvaluationSeriesContext = context, @@ -43,6 +53,11 @@ public override SeriesData BeforeEvaluation(EvaluationSeriesContext context, Ser public override SeriesData AfterEvaluation(EvaluationSeriesContext context, SeriesData data, EvaluationDetail detail) { + if (_afterError != null) + { + throw new Exception(_afterError); + } + _service.Post("", new EvaluationHookParams() { EvaluationSeriesContext = context, From e3bc4e0889e63e488476cacf726b3b541d174b94 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Thu, 11 Apr 2024 11:59:56 -0700 Subject: [PATCH 03/18] ci: switch to Github Actions (#335) This switches the SDK to use github actions for CI, in preparation of conversion to Release Please. --- .circleci/config.yml | 167 ------------------ .github/actions/build-docs/action.yml | 17 ++ .github/actions/ci/action.yml | 72 ++++++++ .github/workflows/ci.yml | 34 ++++ .github/workflows/lint-pr-title.yml | 12 ++ docfx.json | 48 +++++ docs-src/README.md | 1 - docs-src/index.md | 4 - .../namespaces/LaunchDarkly.Sdk.Server.md | 2 +- docs-src/namespaces/LaunchDarkly.Sdk.md | 2 +- index.md | 27 +++ .../LaunchDarkly.ServerSdk.csproj | 2 - toc.yml | 2 + 13 files changed, 214 insertions(+), 176 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/actions/build-docs/action.yml create mode 100644 .github/actions/ci/action.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/lint-pr-title.yml create mode 100644 docfx.json delete mode 100644 docs-src/index.md create mode 100644 index.md create mode 100644 toc.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index c837bbeb..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,167 +0,0 @@ -version: 2.1 - -workflows: - version: 2 - test: - jobs: - - build-all - - test-netcore-linux: - name: .NET 6.0 - Linux - docker-image: mcr.microsoft.com/dotnet/sdk:6.0-focal - build-target-framework: net6.0 - test-target-framework: net6.0 - requires: - - build-all - - test-windows: - name: .NET Framework 4.6.2 - Windows - build-target-framework: net462 - test-target-framework: net462 - requires: - - build-all - - test-windows: - name: .NET Framework 4.7.1 - Windows - build-target-framework: net462 - test-target-framework: net471 - requires: - - build-all - -orbs: - win: circleci/windows@2.4.0 - -jobs: - build-all: - docker: - - image: mcr.microsoft.com/dotnet/sdk:6.0-focal - environment: - ASPNETCORE_SUPPRESSSTATUSMESSAGES: true - steps: - - checkout - - restore_cache: - keys: - - deps-sdk-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }} - # For these two-step builds, we're caching the NuGet dependencies twice: - # 1. Here, where we're only building the SDK itself and not the test project, we cache the - # packages with a key like "deps-sdk-xxxx" where "xxxx" only changes if the SDK project - # file changes. - # 2. In the test-netcore job, we are loading dependencies for the test project which might - # vary depending on which framework we're building the test project with. So we cache the - # dependencies there with a key like "deps-netcoreapp3.1-xxxx-yyyy" where the "yyyy" part - # will change if the project file for the test project changes. - - run: - name: restore dependencies - command: dotnet restore src/LaunchDarkly.ServerSdk - - save_cache: - key: deps-sdk-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }} - paths: - - /root/.nuget/packages - - run: - name: build - command: dotnet build src/LaunchDarkly.ServerSdk - - persist_to_workspace: - root: src/LaunchDarkly.ServerSdk - paths: - - bin - - obj - - test-netcore-linux: - parameters: - docker-image: - type: string - build-target-framework: - type: string - test-target-framework: - type: string - docker: - - image: <> - environment: - ASPNETCORE_SUPPRESSSTATUSMESSAGES: true - BUILDFRAMEWORKS: <> - TESTFRAMEWORK: <> - TEST_HARNESS_PARAMS: -junit /tmp/circle-reports/contract-tests-junit.xml - steps: - - run: - name: install packages - command: apt -q update && apt install -y make - - checkout - - attach_workspace: - at: src/LaunchDarkly.ServerSdk - - restore_cache: - keys: - - deps-<>-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }}-{{ checksum "test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj" }} - - run: - name: restore LaunchDarkly.ServerSdk.Tests - command: dotnet restore test/LaunchDarkly.ServerSdk.Tests - - save_cache: - key: deps--<>-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }}-{{ checksum "test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj" }} - paths: - - /root/.nuget/packages - - run: mkdir -p /tmp/circle-reports - - run: - name: run tests - command: dotnet test test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj - - - run: make build-contract-tests - - run: - command: make start-contract-test-service - background: true - - run: make run-contract-tests - - - store_test_results: - path: /tmp/circle-reports - - test-windows: - parameters: - build-target-framework: - type: string - test-target-framework: - type: string - executor: - name: win/default - shell: powershell.exe - environment: - BUILDFRAMEWORKS: <> - TESTFRAMEWORK: <> - - steps: - - checkout - - attach_workspace: - at: src/LaunchDarkly.ServerSdk - - restore_cache: - keys: - - deps-<>-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }}-{{ checksum "test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj" }} - - run: - name: install project dependencies - command: dotnet restore test/LaunchDarkly.ServerSdk.Tests - - save_cache: - key: deps-<>-{{ checksum "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" }}-{{ checksum "test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj" }} - paths: - - C:\Users\circleci\.nuget\packages - - run: New-Item -Path "circle-reports" -ItemType "directory" - - run: - name: run tests - command: dotnet test test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj - - # sdk-test-harness is not yet running well in Windows, but these would be the steps: - # - run: - # name: build contract tests - # command: | - # cd contract-tests - # dotnet build TestService.csproj - # - run: - # name: start contract test service - # command: | - # cd contract-tests - # dotnet bin/Debug/$env:TESTFRAMEWORK/ContractTestService.dll - # background: true - # - run: - # name: run contract tests - # command: | - # Invoke-WebRequest -Uri ` - # https://github.com/launchdarkly/sdk-test-harness/releases/download/v1.1.2/sdk-test-harness_Windows_x86_64.zip ` - # -OutFile sdk-test-harness.zip - # Expand-Archive -Path sdk-test-harness.zip - # .\sdk-test-harness\sdk-test-harness.exe -url http://localhost:8000 ` - # -debug -stop-service-at-end -junit ./circle-reports/contract-tests-junit.xml - - - store_test_results: - path: circle-reports diff --git a/.github/actions/build-docs/action.yml b/.github/actions/build-docs/action.yml new file mode 100644 index 00000000..30d8e44e --- /dev/null +++ b/.github/actions/build-docs/action.yml @@ -0,0 +1,17 @@ +name: Build Documentation +description: 'Build Documentation.' + +runs: + using: composite + steps: + - name: Install docfx + shell: bash + run: dotnet tool update -g docfx + - name: Run docfx metadata + shell: bash + run: docfx metadata + - name: Run docfx build + shell: bash + # Note: in the docfx.json file, the 'Configuration' property is set to Debug so that we don't require + # signing to happen just to build docs. + run: docfx build diff --git a/.github/actions/ci/action.yml b/.github/actions/ci/action.yml new file mode 100644 index 00000000..69de49d5 --- /dev/null +++ b/.github/actions/ci/action.yml @@ -0,0 +1,72 @@ +name: CI +description: Runs CI for the .NET Server SDK +inputs: + run_tests: + description: 'If true, run unit tests, otherwise skip them.' + required: false + default: 'true' + run_contract_tests: + description: 'If true, run contract tests, otherwise skip them.' + required: false + default: 'true' + build_docs: + description: 'If true, build the documentation, otherwise do not.' + required: false + default: 'false' + aws_role_arn: + description: 'The ARN of the role to assume for downloading secrets, used for building docs.' + required: false + default: '' + token: + description: 'Github token, used for contract tests' + required: false + default: '' + +runs: + using: composite + steps: + - name: Setup dotnet build tools + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.0 + + - name: Restore Dependencies + shell: bash + run: dotnet restore src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + + - name: Build for NetStandard2.0 + shell: bash + run: dotnet build -p:Configuration=debug -p:TargetFramework=netstandard2.0 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + + - name: Build for Net6 + shell: bash + run: dotnet build -p:Configuration=debug -p:TargetFramework=net6.0 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + + - name: Build for Net462 + shell: bash + run: dotnet build -p:Configuration=debug -p:TargetFramework=net462 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + + - name: Run Unit Tests for Net6 + if: ${{ inputs.run_tests == 'true' }} + shell: bash + run: | + dotnet restore test/LaunchDarkly.ServerSdk.Tests + dotnet test --framework=net6.0 test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj + + - name: Build Contract Tests + if: ${{ inputs.run_contract_tests == 'true' }} + shell: bash + run: dotnet build /p:Configuration=debug contract-tests/TestService.csproj + + - name: Launch Contract Tests + if: ${{ inputs.run_contract_tests == 'true' }} + id: launch-contract-tests + shell: bash + run: dotnet contract-tests/bin/debug/net6.0/ContractTestService.dll > test-service.log 2>&1 & disown + + - name: Run Contract Tests + if: ${{ inputs.run_contract_tests == 'true' }} + uses: launchdarkly/gh-actions/actions/contract-tests@contract-tests-v1.0.0 + with: + test_service_port: 8000 + token: ${{ inputs.token }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..0db96126 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,34 @@ +name: CI +on: + push: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' # Do not need to run CI for markdown changes. + pull_request: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' + +jobs: + build-and-test: + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/ci + with: + run_tests: true + run_contract_tests: ${{ matrix.os != 'windows-latest' }} + token: ${{ secrets.GITHUB_TOKEN }} + + build-docs: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/build-docs diff --git a/.github/workflows/lint-pr-title.yml b/.github/workflows/lint-pr-title.yml new file mode 100644 index 00000000..4ba79c13 --- /dev/null +++ b/.github/workflows/lint-pr-title.yml @@ -0,0 +1,12 @@ +name: Lint PR title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + lint-pr-title: + uses: launchdarkly/gh-actions/.github/workflows/lint-pr-title.yml@main diff --git a/docfx.json b/docfx.json new file mode 100644 index 00000000..cc59d5c3 --- /dev/null +++ b/docfx.json @@ -0,0 +1,48 @@ +{ + "metadata": [ + { + "src": [ + { + "src": "./src", + "files": [ + "**/*.csproj", + "**/bin/**/**LaunchDarkly**.dll" + ] + } + ], + "dest": "./api", + "properties" : { + "Configuration": "Debug" + }, + } + ], + "build": { + "content": [ + { + "files": [ + "**/*.{md,yml}" + ], + "exclude": [ + "docs/**" + ] + } + ], + "resource": [ + { + "files": [ + "images/**" + ] + } + ], + "output": "docs", + "template": [ + "default" + ], + "globalMetadata": { + "_appName": "LaunchDarkly Dotnet Server SDK", + "_appTitle": "LaunchDarkly Dotnet Server SDK", + "_enableSearch": true, + "pdf": false + } + } +} diff --git a/docs-src/README.md b/docs-src/README.md index cddf9d1e..e84f544e 100644 --- a/docs-src/README.md +++ b/docs-src/README.md @@ -8,7 +8,6 @@ The HTML documentation also includes documentation comments from `LaunchDarkly.C The `docs-src` subdirectory contains additional Markdown content that is included in the documentation build, as follows: -* `index.md`: This text appears on the landing page of the documentation. * `namespaces/.md`: A file that is used as the description of a specific namespace. The first line is the summary, which will appear on both the landing page and the API page for the namespace; the rest of the file is the full description, which will appear on the API page for the namespace. Markdown text can include hyperlinks to namespaces, types, etc. using the syntax ``. diff --git a/docs-src/index.md b/docs-src/index.md deleted file mode 100644 index 2a2b4cee..00000000 --- a/docs-src/index.md +++ /dev/null @@ -1,4 +0,0 @@ - -This site contains the full API reference for the [`LaunchDarkly.ServerSdk`](https://www.nuget.org/packages/LaunchDarkly.ServerSdk) package, as well as the `LaunchDarkly.CommonSdk` package that is included automatically as a dependency of the SDK. - -For source code, see the [GitHub repository](https://github.com/launchdarkly/dotnet-server-sdk). The [developer notes](https://github.com/launchdarkly/dotnet-server-sdk/blob/main/CONTRIBUTING.md) there include links to other repositories used in the SDK. diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Server.md b/docs-src/namespaces/LaunchDarkly.Sdk.Server.md index d1ccd90c..2897025d 100644 --- a/docs-src/namespaces/LaunchDarkly.Sdk.Server.md +++ b/docs-src/namespaces/LaunchDarkly.Sdk.Server.md @@ -1,3 +1,3 @@ The main namespace for the LaunchDarkly server-side .NET SDK. -You will most often use **** (the SDK client) and **** (configuration options for the client), as well as the **** type from . +You will most often use **** (the SDK client) and **** (configuration options for the client), as well as the **** type from . diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.md b/docs-src/namespaces/LaunchDarkly.Sdk.md index e80c63e3..937a18ea 100644 --- a/docs-src/namespaces/LaunchDarkly.Sdk.md +++ b/docs-src/namespaces/LaunchDarkly.Sdk.md @@ -1,5 +1,5 @@ The base namespace for all LaunchDarkly .NET-based SDKs, containing common types. -Types in this namespace are part of the overall LaunchDarkly model, shared by both server-side and client-side SDKs. The one you will use most often is ****. +Types in this namespace are part of the overall LaunchDarkly model, shared by both server-side and client-side SDKs. The one you will use most often is ****. The NuGet package containing these types is [`LaunchDarkly.CommonSdk`](https://www.nuget.org/packages/LaunchDarkly.CommonSdk). Normally you should not need to reference that package directly; it is loaded automatically as a dependency of the main SDK package. diff --git a/index.md b/index.md new file mode 100644 index 00000000..9e070cc1 --- /dev/null +++ b/index.md @@ -0,0 +1,27 @@ +--- +_layout: landing +--- + +# LaunchDarkly Server-Side SDK for .NET + +For first time users, visit our [LaunchDarkly Docs](https://docs.launchdarkly.com/sdk/server-side/dotnet) page. Within these docs, the [LDClient](api/LaunchDarkly.Sdk.Server.LdClient.html) and the [ContextBuilder](api/LaunchDarkly.Sdk.ContextBuilder.html) are good starting points to explore from. + + +This site contains the full API reference for the [`LaunchDarkly.ServerSdk`](https://www.nuget.org/packages/LaunchDarkly.ServerSdk) package, as well as the `LaunchDarkly.CommonSdk` package that is included automatically as a dependency of the SDK. + +For source code, see the [GitHub repository](https://github.com/launchdarkly/dotnet-server-sdk). The [developer notes](https://github.com/launchdarkly/dotnet-server-sdk/blob/main/CONTRIBUTING.md) there include links to other repositories used in the SDK. + + +## Namespaces + +**[LaunchDarkly.Sdk](docs-src/namespaces/LaunchDarkly.Sdk.html):** The base namespace for all LaunchDarkly .NET-based SDKs, containing common types. + +**[LaunchDarkly.Sdk.Server](docs-src/namespaces/LaunchDarkly.Sdk.Server.html):** The main namespace for the LaunchDarkly server-side .NET SDK. + +**[LaunchDarkly.Sdk.Json](docs-src/namespaces/LaunchDarkly.Sdk.Json.html):** Helper classes and methods for interoperability with JSON. + +**[LaunchDarkly.Sdk.Server.Integrations](docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.html):** Tools for configuring how the SDK connects to LaunchDarkly, or to other software components. + +**[LaunchDarkly.Sdk.Server.Interfaces](docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.html):** Interfaces and types that are part of the public API, but not needed for basic use of the SDK. + +**[LaunchDarkly.Sdk.Server.Subsystem](docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.html):** Interfaces for implementation of custom LaunchDarkly components. diff --git a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj b/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj index a7eb9efd..97478195 100644 --- a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj +++ b/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj @@ -18,8 +18,6 @@ LaunchDarkly LaunchDarkly LaunchDarkly - LaunchDarkly - LaunchDarkly Copyright 2020 LaunchDarkly Apache-2.0 https://github.com/launchdarkly/dotnet-server-sdk diff --git a/toc.yml b/toc.yml new file mode 100644 index 00000000..842c6b36 --- /dev/null +++ b/toc.yml @@ -0,0 +1,2 @@ +- name: API Documentation + href: api/ From 3c6cdc90dd2d5d57a96509f90809352aaf4b7c48 Mon Sep 17 00:00:00 2001 From: Casey Waldren Date: Thu, 11 Apr 2024 15:46:38 -0700 Subject: [PATCH 04/18] ci: add release-please configuration and workflow (#338) Adds release please configuration and associated workflows. --- .github/actions/ci/action.yml | 4 -- .github/actions/publish-docs/action.yml | 15 +++++ .github/workflows/publish-docs.yml | 28 +++++++++ .github/workflows/publish.yml | 63 +++++++++++++++++++ .github/workflows/release-please.yml | 38 +++++++++++ .release-please-manifest.json | 3 + release-please-config.json | 15 +++++ .../LaunchDarkly.ServerSdk.csproj | 2 + 8 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 .github/actions/publish-docs/action.yml create mode 100644 .github/workflows/publish-docs.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/release-please.yml create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.github/actions/ci/action.yml b/.github/actions/ci/action.yml index 69de49d5..1236f2cd 100644 --- a/.github/actions/ci/action.yml +++ b/.github/actions/ci/action.yml @@ -9,10 +9,6 @@ inputs: description: 'If true, run contract tests, otherwise skip them.' required: false default: 'true' - build_docs: - description: 'If true, build the documentation, otherwise do not.' - required: false - default: 'false' aws_role_arn: description: 'The ARN of the role to assume for downloading secrets, used for building docs.' required: false diff --git a/.github/actions/publish-docs/action.yml b/.github/actions/publish-docs/action.yml new file mode 100644 index 00000000..c5f24ba4 --- /dev/null +++ b/.github/actions/publish-docs/action.yml @@ -0,0 +1,15 @@ +name: Publish Documentation +description: 'Publish the documentation to Github pages' +inputs: + token: + description: 'Token to use for publishing.' + required: true + +runs: + using: composite + steps: + - uses: launchdarkly/gh-actions/actions/publish-pages@publish-pages-v1.0.1 + name: 'Publish to Github pages' + with: + docs_path: docs + github_token: ${{ inputs.token }} diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 00000000..e92242d8 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,28 @@ +on: + workflow_dispatch: + workflow_call: + +name: Publish Docs +jobs: + build-publish: + runs-on: ubuntu-latest + permissions: + contents: write # Needed in this case to write github pages. + steps: + - uses: actions/checkout@v4 + - id: build + name: Build and Test + uses: ./.github/actions/ci + with: + run_tests: true + run_contract_tests: false + + - id: build-docs + name: Build Documentation + uses: ./.github/actions/build-docs + + - id: publish + name: Publish Documentation + uses: ./.github/actions/publish-docs + with: + token: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..e1863057 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,63 @@ +name: Publish Package +on: + workflow_dispatch: + inputs: + run_tests: + description: 'If true, run unit tests, otherwise skip them.' + required: false + type: boolean + default: true + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true + workflow_call: + inputs: + run_tests: + description: 'If true, run unit tests, otherwise skip them.' + required: false + type: boolean + default: true + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true + +jobs: + build: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - uses: actions/checkout@v4 + - name: CI check + uses: ./.github/actions/ci + with: + run_tests: ${{ inputs.run_tests }} + run_contract_tests: false + + - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.0.1 + name: Get secrets + with: + aws_assume_role: ${{ vars.AWS_ROLE_ARN }} + ssm_parameter_pairs: '/production/common/releasing/digicert/host = DIGICERT_HOST, + /production/common/releasing/digicert/api_key = DIGICERT_API_KEY, + /production/common/releasing/digicert/client_cert_file_b64 = DIGICERT_CLIENT_CERT_FILE_B64, + /production/common/releasing/digicert/client_cert_password = DIGICERT_CLIENT_CERT_PASSWORD, + /production/common/releasing/digicert/code_signing_cert_sha1_hash = DIGICERT_CODE_SIGNING_CERT_SHA1_HASH' + s3_path_pairs: 'launchdarkly-releaser/dotnet/LaunchDarkly.ServerSdk.snk = LaunchDarkly.ServerSdk.snk' + + - name: Release build + uses: ./.github/actions/build + + - name: Sign DLLs + uses: ./.github/actions/launchdarkly/gh-actions/actions/sign-dlls@sign-dlls-v1.0.0 + with: + build_configuration_path: 'src/LaunchDarkly.ServerSdk/bin/Release/' + dll_name: 'LaunchDarkly.ServerSdk.dll' + + - name: Publish Nupkg + uses: ./.github/actions/publish + with: + dry_run: ${{ inputs.dry_run }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..b5f5dc25 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,38 @@ +name: Release Please +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + release-please: + runs-on: ubuntu-latest + + permissions: + id-token: write # Needed if using OIDC to get release secrets. + contents: write # Contents and pull-requests are for release-please to make releases. + pull-requests: write + + outputs: + releases_created: ${{ steps.release.outputs.releases_created }} + + steps: + - uses: google-github-actions/release-please-action@v4 + id: release + with: + token: ${{ secrets.GITHUB_TOKEN }} + target-branch: ${{ github.ref_name }} + + publish-sdk: + needs: release-please + uses: ./.github/workflows/publish.yml + if: ${{ needs.release-please.outputs.releases_created == 'true' }} + with: + run_tests: true + dry_run: false + + publish-docs: + needs: release-please + uses: ./.github/workflows/publish-docs.yml + if: ${{ needs.release-please.outputs.releases_created == 'true' }} diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..8d48393b --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "8.3.0" +} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..20cbfc44 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,15 @@ +{ + "bootstrap-sha": "e3bc4e0889e63e488476cacf726b3b541d174b94", + "packages": { + ".": { + "release-type": "simple", + "bump-minor-pre-major": true, + "versioning": "default", + "include-v-in-tag": false, + "include-component-in-tag": false, + "extra-files": [ + "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" + ] + } + } +} diff --git a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj b/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj index 97478195..91f3b906 100644 --- a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj +++ b/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj @@ -1,6 +1,8 @@  + 8.3.0 + diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs b/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs new file mode 100644 index 00000000..7a275a29 --- /dev/null +++ b/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs @@ -0,0 +1,45 @@ +using LaunchDarkly.Sdk.Server.Hooks; +using Xunit; + +namespace LaunchDarkly.Sdk.Server.Integrations.OpenTelemetry +{ + public class TestTracingHook + { + [Fact] + public void CanConstructTracingHook() + { + var hook = TracingHook.Default(); + Assert.NotNull(hook); + Assert.Equal("LaunchDarkly Tracing Hook", hook.Metadata.Name); + } + + [Fact] + public void CanRetrieveActivitySourceName() + { + Assert.NotEmpty(TracingHook.ActivitySourceName); + } + + [Theory] + [InlineData(false, false)] + [InlineData(false, true)] + [InlineData(true, false)] + [InlineData(true, true)] + public void ConfigurationOptionsDoNotThrowExceptions(bool includeVariant, bool createSpans) + { + var hook = TracingHook.Builder() + .IncludeVariant(includeVariant) + .CreateActivities(createSpans) + .Build(); + var context = new EvaluationSeriesContext("foo", Context.New("bar"), LdValue.Null, "testMethod"); + var data = hook.BeforeEvaluation(context, new SeriesDataBuilder().Build()); + hook.AfterEvaluation(context, data, new EvaluationDetail()); + } + + [Fact] + public void CallingDisposeDoesNotThrowException() + { + var hook = TracingHook.Default(); + hook.Dispose(); + } + } +} diff --git a/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj b/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj index 7641cadd..35ab3856 100644 --- a/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj +++ b/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj @@ -24,6 +24,10 @@ + + + + diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs b/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs index d63c1fcb..7064faa5 100644 --- a/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs +++ b/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs @@ -2,11 +2,15 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Collections.ObjectModel; +using System.Diagnostics; using System.Linq; using LaunchDarkly.Sdk.Server.Hooks; using LaunchDarkly.Sdk.Server.Integrations; +using LaunchDarkly.Sdk.Server.Integrations.OpenTelemetry; using LaunchDarkly.Sdk.Server.Interfaces; using LaunchDarkly.Sdk.Server.Subsystems; +using OpenTelemetry.Trace; +using OpenTelemetry.Resources; using LaunchDarkly.TestHelpers; using Xunit; using Xunit.Abstractions; @@ -264,7 +268,158 @@ public void ClientExecutesConfiguredHooks() } } } + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookCreatesRootSpans(bool createSpans) + { + + ICollection exportedItems = new Collection(); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource(TracingHook.ActivitySourceName) + .AddInMemoryExporter(exportedItems) + .Build(); + + var config = BasicConfig() + .Hooks(Components.Hooks(new[] { TracingHook.Builder().CreateActivities(createSpans).Build() })) + .Build(); + + + using (var client = new LdClient(config)) + { + client.BoolVariation("feature-key", Context.New("foo"), true); + client.StringVariation("feature-key", Context.New("foo"), "default"); + } + + var items = exportedItems.ToList(); + + if (createSpans) + { + // If we're creating spans, then we should have two Activities, with the correct operation names. + // To check that they are root spans, check that the parent is null. + Assert.Equal(2, items.Count); + Assert.Equal("LdClient.BoolVariation", items[0].OperationName); + Assert.Equal("LdClient.StringVariation", items[1].OperationName); + Assert.True(items.All(i => i.Parent == null)); + } + else + { + // Otherwise, there should be no Activities. + Assert.Empty(exportedItems); + } + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookCreatesChildSpans(bool createSpans) + { + + ICollection exportedItems = new Collection(); + + var testSource = new ActivitySource("test-source", "1.0.0"); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource("test-source") + .AddSource(TracingHook.ActivitySourceName) + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) + + .AddInMemoryExporter(exportedItems) + .Build(); + + var config = BasicConfig() + .Hooks(Components.Hooks(new[] { TracingHook.Builder().CreateActivities(createSpans).Build() })) + .Build(); + + + var rootActivity = testSource.StartActivity("root-activity"); + using (var client = new LdClient(config)) + { + client.BoolVariation("feature-key", Context.New("foo"), true); + client.StringVariation("feature-key", Context.New("foo"), "default"); + } + + rootActivity.Stop(); + + var items = exportedItems.ToList(); + + if (createSpans) + { + // If we're creating spans, since there is an existing root span, we should see the children parented + // to it. + Assert.Equal(3, items.Count); + Assert.Equal("LdClient.BoolVariation", items[0].OperationName); + Assert.Equal("LdClient.StringVariation", items[1].OperationName); + Assert.Equal("root-activity", items[2].OperationName); + Assert.Equal(items[2].SpanId, items[0].ParentSpanId); + } + else + { + // Otherwise, there should only be the root span that was already created. + Assert.Single(items); + Assert.Equal("root-activity", items[0].OperationName); + Assert.Null(items[0].Parent); + } + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookIncludesVariant(bool includeVariant) + { + ICollection exportedItems = new Collection(); + + var testSource = new ActivitySource("test-source", "1.0.0"); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource("test-source") + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) + .AddInMemoryExporter(exportedItems) + .Build(); + + var config = BasicConfig() + .Hooks(Components.Hooks(new[] { TracingHook.Builder().IncludeVariant(includeVariant).Build() })) + .Build(); + + + var rootActivity = testSource.StartActivity("root-activity"); + using (var client = new LdClient(config)) + { + client.BoolVariation("feature-key", Context.New("foo"), true); + client.StringVariation("feature-key", Context.New("foo"), "default"); + } + + rootActivity.Stop(); + + var items = exportedItems.ToList(); + + Assert.Single(items); + Assert.Equal("root-activity", items[0].OperationName); + + if (includeVariant) + { + // The idea is to check that the span has two events attached to it, and those events contain the feature + // flag variants. It's awkward to check because we don't know the exact order of the events or those + // events' tags. + var events = items[0].Events; + Assert.Single(events.Where(e => + e.Tags.Contains(new KeyValuePair("feature_flag.variant", "true")))); + Assert.Single(events.Where(e => + e.Tags.Contains(new KeyValuePair("feature_flag.variant", "\"default\"")))); + } + else + { + // If not including the variant, then we shouldn't see any variant tag on any events. + Assert.All(items, i => i.Events.All(e => e.Tags.All(kvp => kvp.Key != "feature_flag.variant"))); + } } } } From 4e458e5ee5774020478abc7b4c32d2a507042c0a Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Thu, 18 Apr 2024 15:45:39 -0500 Subject: [PATCH 07/18] feat: Adds LaunchDarkly.ServerSdk.Telemetry with a TracingHook implementation for recording evaluation events using the System.Diagnostic.Activity API. --- .github/actions/build-docs/action.yml | 24 +- .github/actions/build-release/action.yml | 6 +- .github/actions/ci/action.yml | 48 +--- .github/actions/contract-tests/action.yml | 36 +++ .github/actions/full-release/action.yml | 71 ++++++ .github/actions/publish-docs/action.yml | 5 +- .github/actions/publish-package/action.yml | 5 +- .github/workflows/publish-docs.yml | 42 +++- .github/workflows/publish.yml | 59 +++-- .github/workflows/release-please.yml | 51 +++-- .github/workflows/sdk-server-ci.yml | 38 ++++ .github/workflows/{ci.yml => telemetry.yml} | 15 +- .release-please-manifest.json | 3 +- LaunchDarkly.ServerSdk.sln | 32 ++- .../contract-tests}/BigSegmentStoreFixture.cs | 0 .../CallbackRepresentations.cs | 0 .../server/contract-tests}/CallbackService.cs | 0 .../sdk/server/contract-tests}/README.md | 0 .../server/contract-tests}/Representations.cs | 0 .../server/contract-tests}/SdkClientEntity.cs | 0 .../sdk/server/contract-tests}/TestHook.cs | 0 .../sdk/server/contract-tests}/TestService.cs | 0 .../server/contract-tests}/TestService.csproj | 2 +- .../server/contract-tests}/TestService.sln | 0 docfx.json => packagess/sdk/server/docfx.json | 0 .../sdk/server/docs-src}/README.md | 0 .../namespaces/LaunchDarkly.Sdk.Json.md | 0 .../LaunchDarkly.Sdk.Server.Integrations.md | 0 .../LaunchDarkly.Sdk.Server.Interfaces.md | 0 .../LaunchDarkly.Sdk.Server.Subsystems.md | 0 .../namespaces/LaunchDarkly.Sdk.Server.md | 0 .../docs-src}/namespaces/LaunchDarkly.Sdk.md | 0 .../sdk/server/src}/Components.cs | 0 .../sdk/server/src}/Configuration.cs | 0 .../sdk/server/src}/ConfigurationBuilder.cs | 0 .../sdk/server/src}/DataModel.cs | 0 .../sdk/server/src}/FeatureFlagsState.cs | 0 .../sdk/server/src}/FlagsStateOption.cs | 0 .../src}/Hooks/EvaluationSeriesContext.cs | 0 .../sdk/server/src}/Hooks/Hook.cs | 0 .../sdk/server/src}/Hooks/Method.cs | 0 .../server/src}/Hooks/SeriesDataBuilder.cs | 0 .../sdk/server/src}/ILdClientExtensions.cs | 0 .../BigSegmentsConfigurationBuilder.cs | 0 .../Integrations/EventProcessorBuilder.cs | 0 .../sdk/server/src}/Integrations/FileData.cs | 0 .../Integrations/FileDataSourceBuilder.cs | 0 .../server/src}/Integrations/FileDataTypes.cs | 0 .../Integrations/HookConfigurationBuilder.cs | 0 .../Integrations/HttpConfigurationBuilder.cs | 0 .../LoggingConfigurationBuilder.cs | 0 .../PersistentDataStoreBuilder.cs | 0 .../Integrations/PollingDataSourceBuilder.cs | 0 .../Integrations/ServiceEndpointsBuilder.cs | 0 .../StreamingDataSourceBuilder.cs | 0 .../sdk/server/src}/Integrations/TestData.cs | 0 .../src}/Integrations/WrapperInfoBuilder.cs | 0 .../src}/Interfaces/BigSegmentStoreStatus.cs | 0 .../src}/Interfaces/DataSourceStatus.cs | 0 .../server/src}/Interfaces/DataStoreStatus.cs | 0 .../IBigSegmentStoreStatusProvider.cs | 0 .../Interfaces/IDataSourceStatusProvider.cs | 0 .../Interfaces/IDataStoreStatusProvider.cs | 0 .../server/src}/Interfaces/IFlagTracker.cs | 0 .../sdk/server/src}/Interfaces/ILdClient.cs | 0 .../src}/Interfaces/ServiceEndpoints.cs | 0 .../sdk/server/src}/Interfaces/WrapperInfo.cs | 0 .../BigSegmentStoreStatusProviderImpl.cs | 0 .../BigSegments/BigSegmentStoreWrapper.cs | 0 .../BigSegments/BigSegmentsInternalTypes.cs | 0 .../Internal/BigSegments/MembershipBuilder.cs | 0 .../Internal/BigSegments/NamespaceReadme.md | 0 .../server/src}/Internal/ComponentsImpl.cs | 0 .../src}/Internal/DataModelDependencies.cs | 0 .../DataSources/DataSourceOutageTracker.cs | 0 .../DataSourceStatusProviderImpl.cs | 0 .../DataSources/DataSourceUpdatesImpl.cs | 0 .../Internal/DataSources/FeatureRequestor.cs | 0 .../Internal/DataSources/FileDataSource.cs | 0 .../Internal/DataSources/FlagFileParser.cs | 0 .../Internal/DataSources/FlagFileReader.cs | 0 .../Internal/DataSources/IFeatureRequestor.cs | 0 .../Internal/DataSources/NamespaceReadme.md | 0 .../Internal/DataSources/PollingDataSource.cs | 0 .../DataSources/StreamProcessorEvents.cs | 0 .../DataSources/StreamingDataSource.cs | 0 .../DataStores/DataStoreCacheConfig.cs | 0 .../Internal/DataStores/DataStoreSorter.cs | 0 .../DataStores/DataStoreStatusProviderImpl.cs | 0 .../DataStores/DataStoreUpdatesImpl.cs | 0 .../Internal/DataStores/InMemoryDataStore.cs | 0 .../Internal/DataStores/NamespaceReadme.md | 0 .../PersistentDataStoreStatusManager.cs | 0 .../DataStores/PersistentStoreAsyncAdapter.cs | 0 .../DataStores/PersistentStoreWrapper.cs | 0 .../src}/Internal/Evaluation/Bucketing.cs | 0 .../src}/Internal/Evaluation/Evaluator.cs | 0 .../Internal/Evaluation/EvaluatorClause.cs | 0 .../Internal/Evaluation/EvaluatorSegment.cs | 0 .../Internal/Evaluation/EvaluatorTarget.cs | 0 .../Internal/Evaluation/EvaluatorTypes.cs | 0 .../Internal/Evaluation/NamespaceReadme.md | 0 .../Events/DefaultContextDeduplicator.cs | 0 .../Events/DefaultEventProcessorWrapper.cs | 0 .../src}/Internal/Events/EventFactory.cs | 0 .../src}/Internal/Events/NamespaceReadme.md | 0 .../Internal/Events/ServerDiagnosticStore.cs | 0 .../server/src}/Internal/FlagTrackerImpl.cs | 0 .../src}/Internal/Hooks/Executor/Executor.cs | 0 .../Internal/Hooks/Executor/NoopExecutor.cs | 0 .../Hooks/Interfaces/IHookExecutor.cs | 0 .../Hooks/Interfaces/IStageExecutor.cs | 0 .../Internal/Hooks/Series/EvaluationSeries.cs | 0 .../sdk/server/src}/Internal/LRUCacheSet.cs | 0 .../sdk/server/src}/Internal/LogNames.cs | 0 .../sdk/server/src}/Internal/Model/Clause.cs | 0 .../server/src}/Internal/Model/FeatureFlag.cs | 0 .../src}/Internal/Model/NamespaceReadme.md | 0 .../server/src}/Internal/Model/Operator.cs | 0 .../sdk/server/src}/Internal/Model/Segment.cs | 0 .../src}/Internal/Model/SemanticVersion.cs | 0 .../src}/Internal/Model/Serialization.cs | 0 .../server/src}/Internal/NamespaceReadme.md | 0 .../server/src}/Internal/StandardEndpoints.cs | 0 .../server/src}/LaunchDarkly.ServerSdk.csproj | 3 +- .../sdk/server/src}/LdClient.cs | 0 .../sdk/server/src}/Migrations/IMigration.cs | 0 .../sdk/server/src}/Migrations/Migration.cs | 0 .../src}/Migrations/MigrationBuilder.cs | 0 .../src}/Migrations/MigrationExecution.cs | 0 .../src}/Migrations/MigrationExecutionMode.cs | 0 .../server/src}/Migrations/MigrationMethod.cs | 0 .../src}/Migrations/MigrationOpTracker.cs | 0 .../src}/Migrations/MigrationOperation.cs | 0 .../server/src}/Migrations/MigrationOrigin.cs | 0 .../server/src}/Migrations/MigrationResult.cs | 0 .../src}/Migrations/MigrationSerialOrder.cs | 0 .../server/src}/Migrations/MigrationStage.cs | 0 .../src}/Migrations/MigrationVariation.cs | 0 .../src}/Migrations/MigrationWriteResult.cs | 0 .../sdk/server/src}/NuGet/config.install.xdt | 0 .../server/src}/NuGet/config.uninstall.xdt | 0 .../server/src}/Properties/AssemblyInfo.cs | 0 .../src}/Subsystems/BigSegmentStoreTypes.cs | 0 .../Subsystems/BigSegmentsConfiguration.cs | 0 .../server/src}/Subsystems/DataStoreTypes.cs | 0 .../src}/Subsystems/EventProcessorTypes.cs | 0 .../src}/Subsystems/HookConfiguration.cs | 0 .../src}/Subsystems/HttpConfiguration.cs | 0 .../src}/Subsystems/IBigSegmentStore.cs | 0 .../src}/Subsystems/IComponentConfigurer.cs | 0 .../sdk/server/src}/Subsystems/IDataSource.cs | 0 .../src}/Subsystems/IDataSourceUpdates.cs | 0 .../sdk/server/src}/Subsystems/IDataStore.cs | 0 .../src}/Subsystems/IDataStoreUpdates.cs | 0 .../src}/Subsystems/IDiagnosticDescription.cs | 0 .../server/src}/Subsystems/IEventProcessor.cs | 0 .../src}/Subsystems/IPersistentDataStore.cs | 0 .../Subsystems/IPersistentDataStoreAsync.cs | 0 .../server/src}/Subsystems/LdClientContext.cs | 0 .../src}/Subsystems/LoggingConfiguration.cs | 0 .../sdk/server/src}/app.config | 0 .../sdk/server/test}/AssertHelpers.cs | 0 .../sdk/server/test}/BaseTest.cs | 0 .../sdk/server/test}/ConfigurationTest.cs | 0 .../sdk/server/test}/DataModelTest.cs | 0 .../sdk/server/test}/FeatureFlagsStateTest.cs | 0 .../test}/Hooks/EvaluationSeriesTest.cs | 0 .../sdk/server/test}/Hooks/HookTest.cs | 0 .../server/test}/ILdClientExtensionsTests.cs | 0 .../BigSegmentsConfigurationBuilderTest.cs | 0 .../Integrations/EventProcessorBuilderTest.cs | 0 .../Integrations/FileDataSourceBuilderTest.cs | 0 .../HttpConfigurationBuilderTest.cs | 0 .../LoggingConfigurationBuilderTest.cs | 0 .../PollingDataSourceBuilderTest.cs | 0 .../ServiceEndpointsBuilderTest.cs | 0 .../StreamingDataSourceBuilderTest.cs | 0 .../server/test}/Integrations/TestDataTest.cs | 0 .../Integrations/TestDataWithClientTest.cs | 0 .../BigSegmentsStatusProviderImplTest.cs | 0 .../BigSegmentsStoreWrapperTest.cs | 0 .../BigSegments/MembershipBuilderTest.cs | 0 .../DataSources/DataModelDependenciesTest.cs | 0 .../DataSourceStatusProviderImplTest.cs | 0 .../DataSources/DataSourceUpdatesImplTest.cs | 0 .../DataSources/FileDataSourceTest.cs | 0 .../DataSources/FlagFileDataMergerTest.cs | 0 .../DataSources/PollingDataSourceTest.cs | 0 .../DataSources/StreamProcessorEventsTest.cs | 0 .../DataSources/StreamingDataSourceTest.cs | 0 .../DataStores/DataStoreSorterTest.cs | 0 .../DataStoreStatusProviderImplTest.cs | 0 .../Internal/DataStores/DataStoreTestBase.cs | 0 .../Internal/DataStores/DataStoreTestTypes.cs | 0 .../DataStores/DataStoreUpdatesImplTest.cs | 0 .../DataStores/InMemoryDataStoreTest.cs | 0 .../PersistentStoreWrapperTestAsync.cs | 0 .../PersistentStoreWrapperTestBase.cs | 0 .../PersistentStoreWrapperTestSync.cs | 0 .../Internal/Evaluation/BucketingTest.cs | 0 .../Evaluation/EvaluatorBigSegmentTest.cs | 0 .../Evaluation/EvaluatorClauseTest.cs | 0 .../Internal/Evaluation/EvaluatorFlagTest.cs | 0 .../Evaluation/EvaluatorPrerequisitesTest.cs | 0 .../Internal/Evaluation/EvaluatorRuleTest.cs | 0 .../Evaluation/EvaluatorSegmentMatchTest.cs | 0 .../Evaluation/EvaluatorTargetTest.cs | 0 .../Internal/Evaluation/EvaluatorTestUtil.cs | 0 .../RolloutRandomizationConsistencyTest.cs | 0 .../Events/ServerDiagnosticStoreTest.cs | 0 .../test}/Internal/FlagTrackerImplTest.cs | 0 .../server/test}/Internal/LRUCacheSetTest.cs | 0 .../test}/Internal/Model/DataSetBuilder.cs | 0 .../Internal/Model/FeatureFlagBuilder.cs | 0 .../test}/Internal/Model/OperatorTest.cs | 0 .../test}/Internal/Model/SegmentBuilder.cs | 0 .../Internal/Model/SemanticVersionTest.cs | 0 .../test}/LaunchDarkly.ServerSdk.Tests.csproj | 6 +- .../server/test}/LdClientBigSegmentsTest.cs | 0 .../test}/LdClientDiagnosticEventTest.cs | 0 .../sdk/server/test}/LdClientEndToEndTest.cs | 0 .../server/test}/LdClientEvaluationTest.cs | 0 .../sdk/server/test}/LdClientEventTest.cs | 0 .../test}/LdClientExternalUpdatesOnlyTest.cs | 0 .../sdk/server/test}/LdClientHooksTest.cs | 162 -------------- .../sdk/server/test}/LdClientListenersTest.cs | 0 .../sdk/server/test}/LdClientOfflineTest.cs | 0 .../test}/LdClientServiceEndpointsTest.cs | 0 .../sdk/server/test}/LdClientTest.cs | 0 .../Migrations/BasicMigrationExecutor.cs | 0 .../test}/Migrations/MigrationBuilderTest.cs | 0 .../Migrations/MigrationOpTrackerTest.cs | 0 .../test}/Migrations/MigrationStageTest.cs | 0 .../server/test}/Migrations/MigrationTest.cs | 0 .../sdk/server/test}/MockComponents.cs | 0 .../sdk/server/test}/MockResponses.cs | 0 .../test}/TestFiles/all-properties.json | 0 .../server/test}/TestFiles/all-properties.yml | 0 .../sdk/server/test}/TestFiles/bad-file.txt | 0 .../sdk/server/test}/TestFiles/flag-only.json | 0 .../server/test}/TestFiles/segment-only.json | 0 .../sdk/server/test}/TestHttpUtils.cs | 0 .../sdk/server/test}/TestLoggingHelpers.cs | 0 .../sdk/server/test}/TestUtils.cs | 0 .../sdk/server/test}/VariationMethodsDesc.cs | 0 packagess/telemetry/docfx.json | 48 ++++ .../LaunchDarkly.ServerSdk.Telemetry.csproj | 56 +++++ .../telemetry/src/Telemetry}/TracingHook.cs | 2 +- ...nchDarkly.ServerSdk.Telemetry.Tests.csproj | 40 ++++ .../test/Telemetry/TracingHookTests.cs | 211 ++++++++++++++++++ release-please-config.json | 14 +- .../Integrations/OpenTelemetry/TracingHook.cs | 45 ---- 253 files changed, 709 insertions(+), 315 deletions(-) create mode 100644 .github/actions/contract-tests/action.yml create mode 100644 .github/actions/full-release/action.yml create mode 100644 .github/workflows/sdk-server-ci.yml rename .github/workflows/{ci.yml => telemetry.yml} (63%) rename {contract-tests => packagess/sdk/server/contract-tests}/BigSegmentStoreFixture.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/CallbackRepresentations.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/CallbackService.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/README.md (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/Representations.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/SdkClientEntity.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/TestHook.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/TestService.cs (100%) rename {contract-tests => packagess/sdk/server/contract-tests}/TestService.csproj (91%) rename {contract-tests => packagess/sdk/server/contract-tests}/TestService.sln (100%) rename docfx.json => packagess/sdk/server/docfx.json (100%) rename {docs-src => packagess/sdk/server/docs-src}/README.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.Json.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.Server.Integrations.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.Server.md (100%) rename {docs-src => packagess/sdk/server/docs-src}/namespaces/LaunchDarkly.Sdk.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Components.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Configuration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/ConfigurationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/DataModel.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/FeatureFlagsState.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/FlagsStateOption.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Hooks/EvaluationSeriesContext.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Hooks/Hook.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Hooks/Method.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Hooks/SeriesDataBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/ILdClientExtensions.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/BigSegmentsConfigurationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/EventProcessorBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/FileData.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/FileDataSourceBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/FileDataTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/HookConfigurationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/HttpConfigurationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/LoggingConfigurationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/PersistentDataStoreBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/PollingDataSourceBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/ServiceEndpointsBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/StreamingDataSourceBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/TestData.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Integrations/WrapperInfoBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/BigSegmentStoreStatus.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/DataSourceStatus.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/DataStoreStatus.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/IBigSegmentStoreStatusProvider.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/IDataSourceStatusProvider.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/IDataStoreStatusProvider.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/IFlagTracker.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/ILdClient.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/ServiceEndpoints.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Interfaces/WrapperInfo.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/BigSegments/BigSegmentStoreWrapper.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/BigSegments/BigSegmentsInternalTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/BigSegments/MembershipBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/BigSegments/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/ComponentsImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataModelDependencies.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/DataSourceOutageTracker.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/DataSourceStatusProviderImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/DataSourceUpdatesImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/FeatureRequestor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/FileDataSource.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/FlagFileParser.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/FlagFileReader.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/IFeatureRequestor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/PollingDataSource.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/StreamProcessorEvents.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataSources/StreamingDataSource.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/DataStoreCacheConfig.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/DataStoreSorter.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/DataStoreStatusProviderImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/DataStoreUpdatesImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/InMemoryDataStore.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/PersistentDataStoreStatusManager.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/PersistentStoreAsyncAdapter.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/DataStores/PersistentStoreWrapper.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/Bucketing.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/Evaluator.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/EvaluatorClause.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/EvaluatorSegment.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/EvaluatorTarget.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/EvaluatorTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Evaluation/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Events/DefaultContextDeduplicator.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Events/DefaultEventProcessorWrapper.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Events/EventFactory.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Events/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Events/ServerDiagnosticStore.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/FlagTrackerImpl.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Hooks/Executor/Executor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Hooks/Executor/NoopExecutor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Hooks/Interfaces/IHookExecutor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Hooks/Interfaces/IStageExecutor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Hooks/Series/EvaluationSeries.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/LRUCacheSet.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/LogNames.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/Clause.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/FeatureFlag.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/Operator.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/Segment.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/SemanticVersion.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/Model/Serialization.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/NamespaceReadme.md (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Internal/StandardEndpoints.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/LaunchDarkly.ServerSdk.csproj (97%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/LdClient.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/IMigration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/Migration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationBuilder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationExecution.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationExecutionMode.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationMethod.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationOpTracker.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationOperation.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationOrigin.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationResult.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationSerialOrder.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationStage.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationVariation.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Migrations/MigrationWriteResult.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/NuGet/config.install.xdt (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/NuGet/config.uninstall.xdt (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Properties/AssemblyInfo.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/BigSegmentStoreTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/BigSegmentsConfiguration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/DataStoreTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/EventProcessorTypes.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/HookConfiguration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/HttpConfiguration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IBigSegmentStore.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IComponentConfigurer.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IDataSource.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IDataSourceUpdates.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IDataStore.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IDataStoreUpdates.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IDiagnosticDescription.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IEventProcessor.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IPersistentDataStore.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/IPersistentDataStoreAsync.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/LdClientContext.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/Subsystems/LoggingConfiguration.cs (100%) rename {src/LaunchDarkly.ServerSdk => packagess/sdk/server/src}/app.config (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/AssertHelpers.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/BaseTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/ConfigurationTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/DataModelTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/FeatureFlagsStateTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Hooks/EvaluationSeriesTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Hooks/HookTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/ILdClientExtensionsTests.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/BigSegmentsConfigurationBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/EventProcessorBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/FileDataSourceBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/HttpConfigurationBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/LoggingConfigurationBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/PollingDataSourceBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/ServiceEndpointsBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/StreamingDataSourceBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/TestDataTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Integrations/TestDataWithClientTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/BigSegments/MembershipBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/DataModelDependenciesTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/DataSourceStatusProviderImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/DataSourceUpdatesImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/FileDataSourceTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/FlagFileDataMergerTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/PollingDataSourceTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/StreamProcessorEventsTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataSources/StreamingDataSourceTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/DataStoreSorterTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/DataStoreStatusProviderImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/DataStoreTestBase.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/DataStoreTestTypes.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/DataStoreUpdatesImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/InMemoryDataStoreTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/PersistentStoreWrapperTestAsync.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/PersistentStoreWrapperTestBase.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/DataStores/PersistentStoreWrapperTestSync.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/BucketingTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorBigSegmentTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorClauseTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorFlagTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorPrerequisitesTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorRuleTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorSegmentMatchTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorTargetTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/EvaluatorTestUtil.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Events/ServerDiagnosticStoreTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/FlagTrackerImplTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/LRUCacheSetTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Model/DataSetBuilder.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Model/FeatureFlagBuilder.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Model/OperatorTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Model/SegmentBuilder.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Internal/Model/SemanticVersionTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LaunchDarkly.ServerSdk.Tests.csproj (88%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientBigSegmentsTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientDiagnosticEventTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientEndToEndTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientEvaluationTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientEventTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientExternalUpdatesOnlyTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientHooksTest.cs (61%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientListenersTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientOfflineTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientServiceEndpointsTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/LdClientTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Migrations/BasicMigrationExecutor.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Migrations/MigrationBuilderTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Migrations/MigrationOpTrackerTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Migrations/MigrationStageTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/Migrations/MigrationTest.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/MockComponents.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/MockResponses.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestFiles/all-properties.json (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestFiles/all-properties.yml (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestFiles/bad-file.txt (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestFiles/flag-only.json (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestFiles/segment-only.json (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestHttpUtils.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestLoggingHelpers.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/TestUtils.cs (100%) rename {test/LaunchDarkly.ServerSdk.Tests => packagess/sdk/server/test}/VariationMethodsDesc.cs (100%) create mode 100644 packagess/telemetry/docfx.json create mode 100644 packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj rename {src/LaunchDarkly.ServerSdk/Integrations/OpenTelemetry => packagess/telemetry/src/Telemetry}/TracingHook.cs (99%) create mode 100644 packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj create mode 100644 packagess/telemetry/test/Telemetry/TracingHookTests.cs delete mode 100644 test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs diff --git a/.github/actions/build-docs/action.yml b/.github/actions/build-docs/action.yml index 30d8e44e..5ab732f2 100644 --- a/.github/actions/build-docs/action.yml +++ b/.github/actions/build-docs/action.yml @@ -1,17 +1,27 @@ name: Build Documentation description: 'Build Documentation.' +inputs: + workspace_path: + description: 'Path to the workspace.' + required: true runs: using: composite steps: + - name: Setup dotnet build tools + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.0 - name: Install docfx shell: bash run: dotnet tool update -g docfx - - name: Run docfx metadata - shell: bash - run: docfx metadata - - name: Run docfx build + + # Note: in the docfx.json file, the 'Configuration' property is set to Debug so that we don't require + # signing to happen just to build docs. + - name: Build docs shell: bash - # Note: in the docfx.json file, the 'Configuration' property is set to Debug so that we don't require - # signing to happen just to build docs. - run: docfx build + run: | + pushd ${{ inputs.workspace_path }} + docfx metadata + docfx build + popd diff --git a/.github/actions/build-release/action.yml b/.github/actions/build-release/action.yml index bf47cbb0..4400e1a5 100644 --- a/.github/actions/build-release/action.yml +++ b/.github/actions/build-release/action.yml @@ -1,5 +1,9 @@ name: Build Action description: 'Dotnet Server SDK Build action.' +inputs: + project_file: + description: 'Path to the project file.' + required: true runs: using: composite @@ -15,4 +19,4 @@ runs: - name: Build shell: bash - run: dotnet build /p:Configuration=Release src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + run: dotnet build /p:Configuration=Release ${{ inputs.project_file }} diff --git a/.github/actions/ci/action.yml b/.github/actions/ci/action.yml index 1236f2cd..bbd175d2 100644 --- a/.github/actions/ci/action.yml +++ b/.github/actions/ci/action.yml @@ -1,22 +1,16 @@ name: CI description: Runs CI for the .NET Server SDK inputs: - run_tests: - description: 'If true, run unit tests, otherwise skip them.' + project_file: + description: 'Path to the project file.' + required: true + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' required: false - default: 'true' - run_contract_tests: - description: 'If true, run contract tests, otherwise skip them.' - required: false - default: 'true' aws_role_arn: description: 'The ARN of the role to assume for downloading secrets, used for building docs.' required: false default: '' - token: - description: 'Github token, used for contract tests' - required: false - default: '' runs: using: composite @@ -28,41 +22,23 @@ runs: - name: Restore Dependencies shell: bash - run: dotnet restore src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + run: dotnet restore ${{ inputs.project_file }} - name: Build for NetStandard2.0 shell: bash - run: dotnet build -p:Configuration=debug -p:TargetFramework=netstandard2.0 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + run: dotnet build -p:Configuration=debug -p:TargetFramework=netstandard2.0 ${{ inputs.project_file }} - name: Build for Net6 shell: bash - run: dotnet build -p:Configuration=debug -p:TargetFramework=net6.0 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + run: dotnet build -p:Configuration=debug -p:TargetFramework=net6.0 ${{ inputs.project_file }} - name: Build for Net462 shell: bash - run: dotnet build -p:Configuration=debug -p:TargetFramework=net462 src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + run: dotnet build -p:Configuration=debug -p:TargetFramework=net462 ${{ inputs.project_file }} - name: Run Unit Tests for Net6 - if: ${{ inputs.run_tests == 'true' }} + if: ${{ inputs.test_project_file != '' }} shell: bash run: | - dotnet restore test/LaunchDarkly.ServerSdk.Tests - dotnet test --framework=net6.0 test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj - - - name: Build Contract Tests - if: ${{ inputs.run_contract_tests == 'true' }} - shell: bash - run: dotnet build /p:Configuration=debug contract-tests/TestService.csproj - - - name: Launch Contract Tests - if: ${{ inputs.run_contract_tests == 'true' }} - id: launch-contract-tests - shell: bash - run: dotnet contract-tests/bin/debug/net6.0/ContractTestService.dll > test-service.log 2>&1 & disown - - - name: Run Contract Tests - if: ${{ inputs.run_contract_tests == 'true' }} - uses: launchdarkly/gh-actions/actions/contract-tests@contract-tests-v1.0.0 - with: - test_service_port: 8000 - token: ${{ inputs.token }} + dotnet restore ${{ inputs.test_project_file }} + dotnet test --framework=net6.0 ${{ inputs.test_project_file }} diff --git a/.github/actions/contract-tests/action.yml b/.github/actions/contract-tests/action.yml new file mode 100644 index 00000000..7750a2cc --- /dev/null +++ b/.github/actions/contract-tests/action.yml @@ -0,0 +1,36 @@ +name: Contract Tests +description: Runs CI for the .NET Server SDK +inputs: + service_project_file: + description: 'Path to the contract test service project file.' + required: true + service_dll_file: + description: 'Path where compiled dll will be found.' + required: true + token: + description: 'Github token, used for contract tests' + required: false + default: '' + +runs: + using: composite + steps: + - name: Setup dotnet build tools + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.0 + + - name: Build Contract Tests + shell: bash + run: dotnet build /p:Configuration=debug ${{ inputs.service_project_file }} + + - name: Launch Contract Tests + id: launch-contract-tests + shell: bash + run: dotnet ${{ inputs.service_dll_file }} > test-service.log 2>&1 & disown + + - name: Run Contract Tests + uses: launchdarkly/gh-actions/actions/contract-tests@contract-tests-v1.0.0 + with: + test_service_port: 8000 + token: ${{ inputs.token }} diff --git a/.github/actions/full-release/action.yml b/.github/actions/full-release/action.yml new file mode 100644 index 00000000..7ea3d67c --- /dev/null +++ b/.github/actions/full-release/action.yml @@ -0,0 +1,71 @@ +name: Build, Test, and Publish +description: 'Execute the full release process for a workspace.' +inputs: + workspace_path: + description: 'Path to the workspace being released.' + required: true + project_file: + description: 'Path to the project file.' + required: true + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' + required: false + build_output_path: + description: 'Build output path.' + required: true + dll_name: + description: 'Build output dll name.' + required: true + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true + +runs: + using: composite + steps: + - uses: actions/checkout@v4 + - name: CI check + uses: ./.github/actions/ci + with: + project_file: ${{ inputs.project_file }} + test_project_file: ${{ inputs.test_project_file }} + run_contract_tests: false + + - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.1.0 + name: Get secrets + with: + aws_assume_role: ${{ vars.AWS_ROLE_ARN }} + ssm_parameter_pairs: '/production/common/releasing/digicert/host = DIGICERT_HOST, + /production/common/releasing/digicert/api_key = DIGICERT_API_KEY, + /production/common/releasing/digicert/client_cert_file_b64 = DIGICERT_CLIENT_CERT_FILE_B64, + /production/common/releasing/digicert/client_cert_password = DIGICERT_CLIENT_CERT_PASSWORD, + /production/common/releasing/digicert/code_signing_cert_sha1_hash = DIGICERT_CODE_SIGNING_CERT_SHA1_HASH' + s3_path_pairs: 'launchdarkly-releaser/dotnet/LaunchDarkly.snk = LaunchDarkly.snk' + + - name: Release build + uses: ./.github/actions/build-release + with: + project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj + + - name: Sign DLLs + uses: launchdarkly/gh-actions/actions/sign-dlls@sign-dlls-v1.0.0 + with: + build_output_path: ${{ inputs.build_output_path }} + dll_name: ${{ inputs.dll_name }} + + - name: Publish Nupkg + uses: ./.github/actions/publish-package + with: + dry_run: ${{ inputs.dry_run }} + + - name: Build Documentation + uses: ./.github/actions/build-docs + with: + workspace_path: ${{ inputs.workspace_path }} + + - name: Publish Documentation + uses: ./.github/actions/publish-docs + with: + workspace_path: ${{ inputs.workspace_path }} + token: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/actions/publish-docs/action.yml b/.github/actions/publish-docs/action.yml index c5f24ba4..b6896c33 100644 --- a/.github/actions/publish-docs/action.yml +++ b/.github/actions/publish-docs/action.yml @@ -1,6 +1,9 @@ name: Publish Documentation description: 'Publish the documentation to Github pages' inputs: + workspace_path: + description: 'Path to the workspace being released.' + required: true token: description: 'Token to use for publishing.' required: true @@ -11,5 +14,5 @@ runs: - uses: launchdarkly/gh-actions/actions/publish-pages@publish-pages-v1.0.1 name: 'Publish to Github pages' with: - docs_path: docs + docs_path: ${{ inputs.workspace_path }}/docs github_token: ${{ inputs.token }} diff --git a/.github/actions/publish-package/action.yml b/.github/actions/publish-package/action.yml index 150d354e..92ea6b11 100644 --- a/.github/actions/publish-package/action.yml +++ b/.github/actions/publish-package/action.yml @@ -1,6 +1,9 @@ name: Publish Package description: 'Packs DLLs into unsigned Nuget package and publishes to Nuget.' inputs: + project_file: + description: 'Path to the project file.' + required: true dry_run: description: 'Is this a dry run. If so no package will be published.' required: true @@ -12,7 +15,7 @@ runs: shell: bash run: | dotnet restore - dotnet pack --no-build --output nupkgs --configuration Release src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj + dotnet pack --no-build --output nupkgs --configuration Release ${{ inputs.project_file }} - name: Publish Package if: ${{ inputs.dry_run == 'false' }} diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index e92242d8..36be90a7 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -1,6 +1,40 @@ on: workflow_dispatch: + inputs: + workspace_path: + description: 'Path to the workspace being released.' + required: true + type: string + project_file: + description: 'Path to the project file.' + required: true + type: string + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' + required: false + type: string + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true workflow_call: + inputs: + workspace_path: + description: 'Path to the workspace being released.' + required: true + type: string + project_file: + description: 'Path to the project file.' + required: true + type: string + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' + required: false + type: string + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true name: Publish Docs jobs: @@ -14,15 +48,19 @@ jobs: name: Build and Test uses: ./.github/actions/ci with: - run_tests: true - run_contract_tests: false + project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj + test_project_file: packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj + token: ${{ secrets.GITHUB_TOKEN }} - id: build-docs name: Build Documentation uses: ./.github/actions/build-docs + with: + workspace_path: ${{ inputs.workspace_path }} - id: publish name: Publish Documentation uses: ./.github/actions/publish-docs with: + workspace_path: ${{ inputs.workspace_path }} token: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 90253edf..9370c60c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -2,22 +2,52 @@ name: Publish Package on: workflow_dispatch: inputs: - run_tests: - description: 'If true, run unit tests, otherwise skip them.' + workspace_path: + description: 'Path to the workspace being released.' + required: true + type: string + project_file: + description: 'Path to the project file.' + required: true + type: string + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' required: false - type: boolean - default: true + type: string + build_output_path: + description: 'Build output path.' + required: true + type: string + dll_name: + description: 'Build output dll name.' + required: true + type: string dry_run: description: 'Is this a dry run. If so no package will be published.' - type: boolean required: true + type: boolean workflow_call: inputs: - run_tests: - description: 'If true, run unit tests, otherwise skip them.' + workspace_path: + description: 'Path to the workspace being released.' + required: true + type: string + project_file: + description: 'Path to the project file.' + required: true + type: string + test_project_file: + description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' required: false - type: boolean - default: true + type: string + build_output_path: + description: 'Build output path.' + required: true + type: string + dll_name: + description: 'Build output dll name.' + required: true + type: string dry_run: description: 'Is this a dry run. If so no package will be published.' type: boolean @@ -34,8 +64,8 @@ jobs: - name: CI check uses: ./.github/actions/ci with: - run_tests: ${{ inputs.run_tests }} - run_contract_tests: false + project_file: ${{ inputs.project_file }} + test_project_file: ${{ inputs.test_project_file }} - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.1.0 name: Get secrets @@ -50,14 +80,17 @@ jobs: - name: Release build uses: ./.github/actions/build-release + with: + project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj - name: Sign DLLs uses: launchdarkly/gh-actions/actions/sign-dlls@sign-dlls-v1.0.0 with: - build_configuration_path: 'src/LaunchDarkly.ServerSdk/bin/Release/' - dll_name: 'LaunchDarkly.ServerSdk.dll' + build_output_path: ${{ inputs.build_output_path }} + dll_name: ${{ inputs.dll_name }} - name: Publish Nupkg uses: ./.github/actions/publish-package with: + project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj dry_run: ${{ inputs.dry_run }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index b5f5dc25..cae3bd48 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -9,13 +9,9 @@ jobs: release-please: runs-on: ubuntu-latest - permissions: - id-token: write # Needed if using OIDC to get release secrets. - contents: write # Contents and pull-requests are for release-please to make releases. - pull-requests: write - outputs: - releases_created: ${{ steps.release.outputs.releases_created }} + package-sdk-server-released: ${{ steps.release.outputs['packagess/sdk/server--release_created'] }} + package-sdk-server-telemetry-released: ${{ steps.release.outputs['packagess/telemetry--release_created'] }} steps: - uses: google-github-actions/release-please-action@v4 @@ -24,15 +20,40 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} target-branch: ${{ github.ref_name }} - publish-sdk: + release-sdk-server: + runs-on: ubuntu-latest needs: release-please - uses: ./.github/workflows/publish.yml - if: ${{ needs.release-please.outputs.releases_created == 'true' }} - with: - run_tests: true - dry_run: false + permissions: + id-token: write + contents: write + pull-requests: write + if: ${{ needs.release-please.outputs.package-sdk-server-released == 'true'}} + steps: + - uses: ./.github/workflows/full-release.yml + with: + workspace_path: 'packagess/sdk/server' + project_file: 'packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj' + test_project_file: 'packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj' + build_output_path: 'packagess/sdk/server/src/bin/Release/' + dll_name: 'LaunchDarkly.ServerSdk.dll' + run_tests: true + dry_run: false - publish-docs: + release-telemetry: + runs-on: ubuntu-latest needs: release-please - uses: ./.github/workflows/publish-docs.yml - if: ${{ needs.release-please.outputs.releases_created == 'true' }} + permissions: + id-token: write + contents: write + pull-requests: write + if: ${{ needs.release-please.outputs.package-sdk-server-telemetry-released == 'true'}} + steps: + - uses: ./.github/workflows/full-release.yml + with: + workspace_path: 'packagess/telemetry' + project_file: 'packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj' + test_project_file: 'packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj' + build_output_path: 'packagess/telemetry/src/bin/Release/' + dll_name: 'LaunchDarkly.ServerSdk.Telemetry.dll' + run_tests: true + dry_run: false diff --git a/.github/workflows/sdk-server-ci.yml b/.github/workflows/sdk-server-ci.yml new file mode 100644 index 00000000..51672718 --- /dev/null +++ b/.github/workflows/sdk-server-ci.yml @@ -0,0 +1,38 @@ +name: Server SDK CI +on: + push: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' # Do not need to run CI for markdown changes. + pull_request: + branches: [main, 'feat/**'] + paths-ignore: + - '**.md' + +jobs: + build-and-test: + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/ci + with: + project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj + test_project_file: packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj + token: ${{ secrets.GITHUB_TOKEN }} + + # Running contract tests on windows is currently cumbersome. + # Once that has been addressed, then running contract tests on windows should be considered. + - uses: ./.github/actions/contract-tests + if: ${{ matrix.os != 'windows-latest' }} + with: + service_project_file: packagess/sdk/server/contract-tests/TestService.csproj + service_dll_file: packagess/sdk/server/contract-tests/bin/debug/net6.0/ContractTestService.dll + token: ${{ secrets.GITHUB_TOKEN }} + + - uses: ./.github/actions/build-docs + with: + workspace_path: packagess/sdk/server diff --git a/.github/workflows/ci.yml b/.github/workflows/telemetry.yml similarity index 63% rename from .github/workflows/ci.yml rename to .github/workflows/telemetry.yml index 0db96126..bb5d8f19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/telemetry.yml @@ -20,15 +20,10 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/ci with: - run_tests: true - run_contract_tests: ${{ matrix.os != 'windows-latest' }} + project_file: packages/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj + test_project_file: packages/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj token: ${{ secrets.GITHUB_TOKEN }} - build-docs: - runs-on: ubuntu-latest - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/build-docs + - uses: ./.github/actions/build-docs + with: + workspace_path: packagess/telemetry diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8d48393b..56c2f8b0 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,4 @@ { - ".": "8.3.0" + "packagess/sdk/server": "8.3.0", + "packagess/telemetry": "0.1.0" } diff --git a/LaunchDarkly.ServerSdk.sln b/LaunchDarkly.ServerSdk.sln index 50e0d23e..f7fccda3 100644 --- a/LaunchDarkly.ServerSdk.sln +++ b/LaunchDarkly.ServerSdk.sln @@ -3,9 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26730.16 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk", "src\LaunchDarkly.ServerSdk\LaunchDarkly.ServerSdk.csproj", "{38F73E78-9CEB-4285-B569-034FBD9273D4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packagess", "packagess", "{E562CB1C-C0F4-475D-A741-C677F31DDE32}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LaunchDarkly.ServerSdk.Tests", "test\LaunchDarkly.ServerSdk.Tests\LaunchDarkly.ServerSdk.Tests.csproj", "{A8D5ACCF-AADD-4D7C-A768-B98EF014A951}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk", "sdk", "{69C82937-8CA8-4FF8-944B-79F5BE0BB765}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "server", "server", "{68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk", "packagess\sdk\server\src\LaunchDarkly.ServerSdk.csproj", "{3B9D9789-6F89-4842-9DD5-61AF8C046E5D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk.Tests", "packagess\sdk\server\test\LaunchDarkly.ServerSdk.Tests.csproj", "{0DD72959-DB80-4C30-B397-806F94969DB7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +19,14 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {38F73E78-9CEB-4285-B569-034FBD9273D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38F73E78-9CEB-4285-B569-034FBD9273D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38F73E78-9CEB-4285-B569-034FBD9273D4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38F73E78-9CEB-4285-B569-034FBD9273D4}.Release|Any CPU.Build.0 = Release|Any CPU - {A8D5ACCF-AADD-4D7C-A768-B98EF014A951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A8D5ACCF-AADD-4D7C-A768-B98EF014A951}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A8D5ACCF-AADD-4D7C-A768-B98EF014A951}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A8D5ACCF-AADD-4D7C-A768-B98EF014A951}.Release|Any CPU.Build.0 = Release|Any CPU + {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Release|Any CPU.Build.0 = Release|Any CPU + {0DD72959-DB80-4C30-B397-806F94969DB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DD72959-DB80-4C30-B397-806F94969DB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DD72959-DB80-4C30-B397-806F94969DB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DD72959-DB80-4C30-B397-806F94969DB7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -28,4 +34,10 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D7F58FE1-D8E9-46EB-AE7F-4B5A388418AC} EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {69C82937-8CA8-4FF8-944B-79F5BE0BB765} = {E562CB1C-C0F4-475D-A741-C677F31DDE32} + {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} = {69C82937-8CA8-4FF8-944B-79F5BE0BB765} + {3B9D9789-6F89-4842-9DD5-61AF8C046E5D} = {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} + {0DD72959-DB80-4C30-B397-806F94969DB7} = {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} + EndGlobalSection EndGlobal diff --git a/contract-tests/BigSegmentStoreFixture.cs b/packagess/sdk/server/contract-tests/BigSegmentStoreFixture.cs similarity index 100% rename from contract-tests/BigSegmentStoreFixture.cs rename to packagess/sdk/server/contract-tests/BigSegmentStoreFixture.cs diff --git a/contract-tests/CallbackRepresentations.cs b/packagess/sdk/server/contract-tests/CallbackRepresentations.cs similarity index 100% rename from contract-tests/CallbackRepresentations.cs rename to packagess/sdk/server/contract-tests/CallbackRepresentations.cs diff --git a/contract-tests/CallbackService.cs b/packagess/sdk/server/contract-tests/CallbackService.cs similarity index 100% rename from contract-tests/CallbackService.cs rename to packagess/sdk/server/contract-tests/CallbackService.cs diff --git a/contract-tests/README.md b/packagess/sdk/server/contract-tests/README.md similarity index 100% rename from contract-tests/README.md rename to packagess/sdk/server/contract-tests/README.md diff --git a/contract-tests/Representations.cs b/packagess/sdk/server/contract-tests/Representations.cs similarity index 100% rename from contract-tests/Representations.cs rename to packagess/sdk/server/contract-tests/Representations.cs diff --git a/contract-tests/SdkClientEntity.cs b/packagess/sdk/server/contract-tests/SdkClientEntity.cs similarity index 100% rename from contract-tests/SdkClientEntity.cs rename to packagess/sdk/server/contract-tests/SdkClientEntity.cs diff --git a/contract-tests/TestHook.cs b/packagess/sdk/server/contract-tests/TestHook.cs similarity index 100% rename from contract-tests/TestHook.cs rename to packagess/sdk/server/contract-tests/TestHook.cs diff --git a/contract-tests/TestService.cs b/packagess/sdk/server/contract-tests/TestService.cs similarity index 100% rename from contract-tests/TestService.cs rename to packagess/sdk/server/contract-tests/TestService.cs diff --git a/contract-tests/TestService.csproj b/packagess/sdk/server/contract-tests/TestService.csproj similarity index 91% rename from contract-tests/TestService.csproj rename to packagess/sdk/server/contract-tests/TestService.csproj index fa0b556c..ee910a50 100644 --- a/contract-tests/TestService.csproj +++ b/packagess/sdk/server/contract-tests/TestService.csproj @@ -20,7 +20,7 @@ - + diff --git a/contract-tests/TestService.sln b/packagess/sdk/server/contract-tests/TestService.sln similarity index 100% rename from contract-tests/TestService.sln rename to packagess/sdk/server/contract-tests/TestService.sln diff --git a/docfx.json b/packagess/sdk/server/docfx.json similarity index 100% rename from docfx.json rename to packagess/sdk/server/docfx.json diff --git a/docs-src/README.md b/packagess/sdk/server/docs-src/README.md similarity index 100% rename from docs-src/README.md rename to packagess/sdk/server/docs-src/README.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Json.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.Json.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.Server.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.Server.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md diff --git a/docs-src/namespaces/LaunchDarkly.Sdk.md b/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md similarity index 100% rename from docs-src/namespaces/LaunchDarkly.Sdk.md rename to packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md diff --git a/src/LaunchDarkly.ServerSdk/Components.cs b/packagess/sdk/server/src/Components.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Components.cs rename to packagess/sdk/server/src/Components.cs diff --git a/src/LaunchDarkly.ServerSdk/Configuration.cs b/packagess/sdk/server/src/Configuration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Configuration.cs rename to packagess/sdk/server/src/Configuration.cs diff --git a/src/LaunchDarkly.ServerSdk/ConfigurationBuilder.cs b/packagess/sdk/server/src/ConfigurationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/ConfigurationBuilder.cs rename to packagess/sdk/server/src/ConfigurationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/DataModel.cs b/packagess/sdk/server/src/DataModel.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/DataModel.cs rename to packagess/sdk/server/src/DataModel.cs diff --git a/src/LaunchDarkly.ServerSdk/FeatureFlagsState.cs b/packagess/sdk/server/src/FeatureFlagsState.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/FeatureFlagsState.cs rename to packagess/sdk/server/src/FeatureFlagsState.cs diff --git a/src/LaunchDarkly.ServerSdk/FlagsStateOption.cs b/packagess/sdk/server/src/FlagsStateOption.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/FlagsStateOption.cs rename to packagess/sdk/server/src/FlagsStateOption.cs diff --git a/src/LaunchDarkly.ServerSdk/Hooks/EvaluationSeriesContext.cs b/packagess/sdk/server/src/Hooks/EvaluationSeriesContext.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Hooks/EvaluationSeriesContext.cs rename to packagess/sdk/server/src/Hooks/EvaluationSeriesContext.cs diff --git a/src/LaunchDarkly.ServerSdk/Hooks/Hook.cs b/packagess/sdk/server/src/Hooks/Hook.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Hooks/Hook.cs rename to packagess/sdk/server/src/Hooks/Hook.cs diff --git a/src/LaunchDarkly.ServerSdk/Hooks/Method.cs b/packagess/sdk/server/src/Hooks/Method.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Hooks/Method.cs rename to packagess/sdk/server/src/Hooks/Method.cs diff --git a/src/LaunchDarkly.ServerSdk/Hooks/SeriesDataBuilder.cs b/packagess/sdk/server/src/Hooks/SeriesDataBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Hooks/SeriesDataBuilder.cs rename to packagess/sdk/server/src/Hooks/SeriesDataBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/ILdClientExtensions.cs b/packagess/sdk/server/src/ILdClientExtensions.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/ILdClientExtensions.cs rename to packagess/sdk/server/src/ILdClientExtensions.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/BigSegmentsConfigurationBuilder.cs b/packagess/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/BigSegmentsConfigurationBuilder.cs rename to packagess/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/EventProcessorBuilder.cs b/packagess/sdk/server/src/Integrations/EventProcessorBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/EventProcessorBuilder.cs rename to packagess/sdk/server/src/Integrations/EventProcessorBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/FileData.cs b/packagess/sdk/server/src/Integrations/FileData.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/FileData.cs rename to packagess/sdk/server/src/Integrations/FileData.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/FileDataSourceBuilder.cs b/packagess/sdk/server/src/Integrations/FileDataSourceBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/FileDataSourceBuilder.cs rename to packagess/sdk/server/src/Integrations/FileDataSourceBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/FileDataTypes.cs b/packagess/sdk/server/src/Integrations/FileDataTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/FileDataTypes.cs rename to packagess/sdk/server/src/Integrations/FileDataTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/HookConfigurationBuilder.cs b/packagess/sdk/server/src/Integrations/HookConfigurationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/HookConfigurationBuilder.cs rename to packagess/sdk/server/src/Integrations/HookConfigurationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/HttpConfigurationBuilder.cs b/packagess/sdk/server/src/Integrations/HttpConfigurationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/HttpConfigurationBuilder.cs rename to packagess/sdk/server/src/Integrations/HttpConfigurationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/LoggingConfigurationBuilder.cs b/packagess/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/LoggingConfigurationBuilder.cs rename to packagess/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/PersistentDataStoreBuilder.cs b/packagess/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/PersistentDataStoreBuilder.cs rename to packagess/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/PollingDataSourceBuilder.cs b/packagess/sdk/server/src/Integrations/PollingDataSourceBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/PollingDataSourceBuilder.cs rename to packagess/sdk/server/src/Integrations/PollingDataSourceBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/ServiceEndpointsBuilder.cs b/packagess/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/ServiceEndpointsBuilder.cs rename to packagess/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/StreamingDataSourceBuilder.cs b/packagess/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/StreamingDataSourceBuilder.cs rename to packagess/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/TestData.cs b/packagess/sdk/server/src/Integrations/TestData.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/TestData.cs rename to packagess/sdk/server/src/Integrations/TestData.cs diff --git a/src/LaunchDarkly.ServerSdk/Integrations/WrapperInfoBuilder.cs b/packagess/sdk/server/src/Integrations/WrapperInfoBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Integrations/WrapperInfoBuilder.cs rename to packagess/sdk/server/src/Integrations/WrapperInfoBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/BigSegmentStoreStatus.cs b/packagess/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/BigSegmentStoreStatus.cs rename to packagess/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/DataSourceStatus.cs b/packagess/sdk/server/src/Interfaces/DataSourceStatus.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/DataSourceStatus.cs rename to packagess/sdk/server/src/Interfaces/DataSourceStatus.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/DataStoreStatus.cs b/packagess/sdk/server/src/Interfaces/DataStoreStatus.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/DataStoreStatus.cs rename to packagess/sdk/server/src/Interfaces/DataStoreStatus.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/IBigSegmentStoreStatusProvider.cs b/packagess/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/IBigSegmentStoreStatusProvider.cs rename to packagess/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/IDataSourceStatusProvider.cs b/packagess/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/IDataSourceStatusProvider.cs rename to packagess/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/IDataStoreStatusProvider.cs b/packagess/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/IDataStoreStatusProvider.cs rename to packagess/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/IFlagTracker.cs b/packagess/sdk/server/src/Interfaces/IFlagTracker.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/IFlagTracker.cs rename to packagess/sdk/server/src/Interfaces/IFlagTracker.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/ILdClient.cs b/packagess/sdk/server/src/Interfaces/ILdClient.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/ILdClient.cs rename to packagess/sdk/server/src/Interfaces/ILdClient.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/ServiceEndpoints.cs b/packagess/sdk/server/src/Interfaces/ServiceEndpoints.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/ServiceEndpoints.cs rename to packagess/sdk/server/src/Interfaces/ServiceEndpoints.cs diff --git a/src/LaunchDarkly.ServerSdk/Interfaces/WrapperInfo.cs b/packagess/sdk/server/src/Interfaces/WrapperInfo.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Interfaces/WrapperInfo.cs rename to packagess/sdk/server/src/Interfaces/WrapperInfo.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs b/packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs rename to packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentStoreWrapper.cs b/packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentStoreWrapper.cs rename to packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentsInternalTypes.cs b/packagess/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/BigSegments/BigSegmentsInternalTypes.cs rename to packagess/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/BigSegments/MembershipBuilder.cs b/packagess/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/BigSegments/MembershipBuilder.cs rename to packagess/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/BigSegments/NamespaceReadme.md b/packagess/sdk/server/src/Internal/BigSegments/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/BigSegments/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/BigSegments/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/ComponentsImpl.cs b/packagess/sdk/server/src/Internal/ComponentsImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/ComponentsImpl.cs rename to packagess/sdk/server/src/Internal/ComponentsImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataModelDependencies.cs b/packagess/sdk/server/src/Internal/DataModelDependencies.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataModelDependencies.cs rename to packagess/sdk/server/src/Internal/DataModelDependencies.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceOutageTracker.cs b/packagess/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceOutageTracker.cs rename to packagess/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceStatusProviderImpl.cs b/packagess/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceStatusProviderImpl.cs rename to packagess/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceUpdatesImpl.cs b/packagess/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/DataSourceUpdatesImpl.cs rename to packagess/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/FeatureRequestor.cs b/packagess/sdk/server/src/Internal/DataSources/FeatureRequestor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/FeatureRequestor.cs rename to packagess/sdk/server/src/Internal/DataSources/FeatureRequestor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/FileDataSource.cs b/packagess/sdk/server/src/Internal/DataSources/FileDataSource.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/FileDataSource.cs rename to packagess/sdk/server/src/Internal/DataSources/FileDataSource.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/FlagFileParser.cs b/packagess/sdk/server/src/Internal/DataSources/FlagFileParser.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/FlagFileParser.cs rename to packagess/sdk/server/src/Internal/DataSources/FlagFileParser.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/FlagFileReader.cs b/packagess/sdk/server/src/Internal/DataSources/FlagFileReader.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/FlagFileReader.cs rename to packagess/sdk/server/src/Internal/DataSources/FlagFileReader.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/IFeatureRequestor.cs b/packagess/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/IFeatureRequestor.cs rename to packagess/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/NamespaceReadme.md b/packagess/sdk/server/src/Internal/DataSources/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/DataSources/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/PollingDataSource.cs b/packagess/sdk/server/src/Internal/DataSources/PollingDataSource.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/PollingDataSource.cs rename to packagess/sdk/server/src/Internal/DataSources/PollingDataSource.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/StreamProcessorEvents.cs b/packagess/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/StreamProcessorEvents.cs rename to packagess/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataSources/StreamingDataSource.cs b/packagess/sdk/server/src/Internal/DataSources/StreamingDataSource.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataSources/StreamingDataSource.cs rename to packagess/sdk/server/src/Internal/DataSources/StreamingDataSource.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreCacheConfig.cs b/packagess/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreCacheConfig.cs rename to packagess/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreSorter.cs b/packagess/sdk/server/src/Internal/DataStores/DataStoreSorter.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreSorter.cs rename to packagess/sdk/server/src/Internal/DataStores/DataStoreSorter.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreStatusProviderImpl.cs b/packagess/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreStatusProviderImpl.cs rename to packagess/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreUpdatesImpl.cs b/packagess/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/DataStoreUpdatesImpl.cs rename to packagess/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/InMemoryDataStore.cs b/packagess/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/InMemoryDataStore.cs rename to packagess/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/NamespaceReadme.md b/packagess/sdk/server/src/Internal/DataStores/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/DataStores/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentDataStoreStatusManager.cs b/packagess/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentDataStoreStatusManager.cs rename to packagess/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentStoreAsyncAdapter.cs b/packagess/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentStoreAsyncAdapter.cs rename to packagess/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentStoreWrapper.cs b/packagess/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/DataStores/PersistentStoreWrapper.cs rename to packagess/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/Bucketing.cs b/packagess/sdk/server/src/Internal/Evaluation/Bucketing.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/Bucketing.cs rename to packagess/sdk/server/src/Internal/Evaluation/Bucketing.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/Evaluator.cs b/packagess/sdk/server/src/Internal/Evaluation/Evaluator.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/Evaluator.cs rename to packagess/sdk/server/src/Internal/Evaluation/Evaluator.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorClause.cs b/packagess/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorClause.cs rename to packagess/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorSegment.cs b/packagess/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorSegment.cs rename to packagess/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorTarget.cs b/packagess/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorTarget.cs rename to packagess/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorTypes.cs b/packagess/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/EvaluatorTypes.cs rename to packagess/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Evaluation/NamespaceReadme.md b/packagess/sdk/server/src/Internal/Evaluation/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Evaluation/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/Evaluation/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/Events/DefaultContextDeduplicator.cs b/packagess/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Events/DefaultContextDeduplicator.cs rename to packagess/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Events/DefaultEventProcessorWrapper.cs b/packagess/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Events/DefaultEventProcessorWrapper.cs rename to packagess/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Events/EventFactory.cs b/packagess/sdk/server/src/Internal/Events/EventFactory.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Events/EventFactory.cs rename to packagess/sdk/server/src/Internal/Events/EventFactory.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Events/NamespaceReadme.md b/packagess/sdk/server/src/Internal/Events/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Events/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/Events/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/Events/ServerDiagnosticStore.cs b/packagess/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Events/ServerDiagnosticStore.cs rename to packagess/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/FlagTrackerImpl.cs b/packagess/sdk/server/src/Internal/FlagTrackerImpl.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/FlagTrackerImpl.cs rename to packagess/sdk/server/src/Internal/FlagTrackerImpl.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Hooks/Executor/Executor.cs b/packagess/sdk/server/src/Internal/Hooks/Executor/Executor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Hooks/Executor/Executor.cs rename to packagess/sdk/server/src/Internal/Hooks/Executor/Executor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Hooks/Executor/NoopExecutor.cs b/packagess/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Hooks/Executor/NoopExecutor.cs rename to packagess/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Hooks/Interfaces/IHookExecutor.cs b/packagess/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Hooks/Interfaces/IHookExecutor.cs rename to packagess/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Hooks/Interfaces/IStageExecutor.cs b/packagess/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Hooks/Interfaces/IStageExecutor.cs rename to packagess/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Hooks/Series/EvaluationSeries.cs b/packagess/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Hooks/Series/EvaluationSeries.cs rename to packagess/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/LRUCacheSet.cs b/packagess/sdk/server/src/Internal/LRUCacheSet.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/LRUCacheSet.cs rename to packagess/sdk/server/src/Internal/LRUCacheSet.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/LogNames.cs b/packagess/sdk/server/src/Internal/LogNames.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/LogNames.cs rename to packagess/sdk/server/src/Internal/LogNames.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/Clause.cs b/packagess/sdk/server/src/Internal/Model/Clause.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/Clause.cs rename to packagess/sdk/server/src/Internal/Model/Clause.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/FeatureFlag.cs b/packagess/sdk/server/src/Internal/Model/FeatureFlag.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/FeatureFlag.cs rename to packagess/sdk/server/src/Internal/Model/FeatureFlag.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/NamespaceReadme.md b/packagess/sdk/server/src/Internal/Model/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/Model/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/Operator.cs b/packagess/sdk/server/src/Internal/Model/Operator.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/Operator.cs rename to packagess/sdk/server/src/Internal/Model/Operator.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/Segment.cs b/packagess/sdk/server/src/Internal/Model/Segment.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/Segment.cs rename to packagess/sdk/server/src/Internal/Model/Segment.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/SemanticVersion.cs b/packagess/sdk/server/src/Internal/Model/SemanticVersion.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/SemanticVersion.cs rename to packagess/sdk/server/src/Internal/Model/SemanticVersion.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/Model/Serialization.cs b/packagess/sdk/server/src/Internal/Model/Serialization.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/Model/Serialization.cs rename to packagess/sdk/server/src/Internal/Model/Serialization.cs diff --git a/src/LaunchDarkly.ServerSdk/Internal/NamespaceReadme.md b/packagess/sdk/server/src/Internal/NamespaceReadme.md similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/NamespaceReadme.md rename to packagess/sdk/server/src/Internal/NamespaceReadme.md diff --git a/src/LaunchDarkly.ServerSdk/Internal/StandardEndpoints.cs b/packagess/sdk/server/src/Internal/StandardEndpoints.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Internal/StandardEndpoints.cs rename to packagess/sdk/server/src/Internal/StandardEndpoints.cs diff --git a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj b/packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj similarity index 97% rename from src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj rename to packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj index f4ac1c5d..211d3bbf 100644 --- a/src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj +++ b/packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj @@ -48,11 +48,10 @@ - - + ../../LaunchDarkly.snk true diff --git a/src/LaunchDarkly.ServerSdk/LdClient.cs b/packagess/sdk/server/src/LdClient.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/LdClient.cs rename to packagess/sdk/server/src/LdClient.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/IMigration.cs b/packagess/sdk/server/src/Migrations/IMigration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/IMigration.cs rename to packagess/sdk/server/src/Migrations/IMigration.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/Migration.cs b/packagess/sdk/server/src/Migrations/Migration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/Migration.cs rename to packagess/sdk/server/src/Migrations/Migration.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationBuilder.cs b/packagess/sdk/server/src/Migrations/MigrationBuilder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationBuilder.cs rename to packagess/sdk/server/src/Migrations/MigrationBuilder.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationExecution.cs b/packagess/sdk/server/src/Migrations/MigrationExecution.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationExecution.cs rename to packagess/sdk/server/src/Migrations/MigrationExecution.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationExecutionMode.cs b/packagess/sdk/server/src/Migrations/MigrationExecutionMode.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationExecutionMode.cs rename to packagess/sdk/server/src/Migrations/MigrationExecutionMode.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationMethod.cs b/packagess/sdk/server/src/Migrations/MigrationMethod.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationMethod.cs rename to packagess/sdk/server/src/Migrations/MigrationMethod.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationOpTracker.cs b/packagess/sdk/server/src/Migrations/MigrationOpTracker.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationOpTracker.cs rename to packagess/sdk/server/src/Migrations/MigrationOpTracker.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationOperation.cs b/packagess/sdk/server/src/Migrations/MigrationOperation.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationOperation.cs rename to packagess/sdk/server/src/Migrations/MigrationOperation.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationOrigin.cs b/packagess/sdk/server/src/Migrations/MigrationOrigin.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationOrigin.cs rename to packagess/sdk/server/src/Migrations/MigrationOrigin.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationResult.cs b/packagess/sdk/server/src/Migrations/MigrationResult.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationResult.cs rename to packagess/sdk/server/src/Migrations/MigrationResult.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationSerialOrder.cs b/packagess/sdk/server/src/Migrations/MigrationSerialOrder.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationSerialOrder.cs rename to packagess/sdk/server/src/Migrations/MigrationSerialOrder.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationStage.cs b/packagess/sdk/server/src/Migrations/MigrationStage.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationStage.cs rename to packagess/sdk/server/src/Migrations/MigrationStage.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationVariation.cs b/packagess/sdk/server/src/Migrations/MigrationVariation.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationVariation.cs rename to packagess/sdk/server/src/Migrations/MigrationVariation.cs diff --git a/src/LaunchDarkly.ServerSdk/Migrations/MigrationWriteResult.cs b/packagess/sdk/server/src/Migrations/MigrationWriteResult.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Migrations/MigrationWriteResult.cs rename to packagess/sdk/server/src/Migrations/MigrationWriteResult.cs diff --git a/src/LaunchDarkly.ServerSdk/NuGet/config.install.xdt b/packagess/sdk/server/src/NuGet/config.install.xdt similarity index 100% rename from src/LaunchDarkly.ServerSdk/NuGet/config.install.xdt rename to packagess/sdk/server/src/NuGet/config.install.xdt diff --git a/src/LaunchDarkly.ServerSdk/NuGet/config.uninstall.xdt b/packagess/sdk/server/src/NuGet/config.uninstall.xdt similarity index 100% rename from src/LaunchDarkly.ServerSdk/NuGet/config.uninstall.xdt rename to packagess/sdk/server/src/NuGet/config.uninstall.xdt diff --git a/src/LaunchDarkly.ServerSdk/Properties/AssemblyInfo.cs b/packagess/sdk/server/src/Properties/AssemblyInfo.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Properties/AssemblyInfo.cs rename to packagess/sdk/server/src/Properties/AssemblyInfo.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/BigSegmentStoreTypes.cs b/packagess/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/BigSegmentStoreTypes.cs rename to packagess/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/BigSegmentsConfiguration.cs b/packagess/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/BigSegmentsConfiguration.cs rename to packagess/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/DataStoreTypes.cs b/packagess/sdk/server/src/Subsystems/DataStoreTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/DataStoreTypes.cs rename to packagess/sdk/server/src/Subsystems/DataStoreTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/EventProcessorTypes.cs b/packagess/sdk/server/src/Subsystems/EventProcessorTypes.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/EventProcessorTypes.cs rename to packagess/sdk/server/src/Subsystems/EventProcessorTypes.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/HookConfiguration.cs b/packagess/sdk/server/src/Subsystems/HookConfiguration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/HookConfiguration.cs rename to packagess/sdk/server/src/Subsystems/HookConfiguration.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/HttpConfiguration.cs b/packagess/sdk/server/src/Subsystems/HttpConfiguration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/HttpConfiguration.cs rename to packagess/sdk/server/src/Subsystems/HttpConfiguration.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IBigSegmentStore.cs b/packagess/sdk/server/src/Subsystems/IBigSegmentStore.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IBigSegmentStore.cs rename to packagess/sdk/server/src/Subsystems/IBigSegmentStore.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IComponentConfigurer.cs b/packagess/sdk/server/src/Subsystems/IComponentConfigurer.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IComponentConfigurer.cs rename to packagess/sdk/server/src/Subsystems/IComponentConfigurer.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IDataSource.cs b/packagess/sdk/server/src/Subsystems/IDataSource.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IDataSource.cs rename to packagess/sdk/server/src/Subsystems/IDataSource.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IDataSourceUpdates.cs b/packagess/sdk/server/src/Subsystems/IDataSourceUpdates.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IDataSourceUpdates.cs rename to packagess/sdk/server/src/Subsystems/IDataSourceUpdates.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IDataStore.cs b/packagess/sdk/server/src/Subsystems/IDataStore.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IDataStore.cs rename to packagess/sdk/server/src/Subsystems/IDataStore.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IDataStoreUpdates.cs b/packagess/sdk/server/src/Subsystems/IDataStoreUpdates.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IDataStoreUpdates.cs rename to packagess/sdk/server/src/Subsystems/IDataStoreUpdates.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IDiagnosticDescription.cs b/packagess/sdk/server/src/Subsystems/IDiagnosticDescription.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IDiagnosticDescription.cs rename to packagess/sdk/server/src/Subsystems/IDiagnosticDescription.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IEventProcessor.cs b/packagess/sdk/server/src/Subsystems/IEventProcessor.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IEventProcessor.cs rename to packagess/sdk/server/src/Subsystems/IEventProcessor.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IPersistentDataStore.cs b/packagess/sdk/server/src/Subsystems/IPersistentDataStore.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IPersistentDataStore.cs rename to packagess/sdk/server/src/Subsystems/IPersistentDataStore.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/IPersistentDataStoreAsync.cs b/packagess/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/IPersistentDataStoreAsync.cs rename to packagess/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/LdClientContext.cs b/packagess/sdk/server/src/Subsystems/LdClientContext.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/LdClientContext.cs rename to packagess/sdk/server/src/Subsystems/LdClientContext.cs diff --git a/src/LaunchDarkly.ServerSdk/Subsystems/LoggingConfiguration.cs b/packagess/sdk/server/src/Subsystems/LoggingConfiguration.cs similarity index 100% rename from src/LaunchDarkly.ServerSdk/Subsystems/LoggingConfiguration.cs rename to packagess/sdk/server/src/Subsystems/LoggingConfiguration.cs diff --git a/src/LaunchDarkly.ServerSdk/app.config b/packagess/sdk/server/src/app.config similarity index 100% rename from src/LaunchDarkly.ServerSdk/app.config rename to packagess/sdk/server/src/app.config diff --git a/test/LaunchDarkly.ServerSdk.Tests/AssertHelpers.cs b/packagess/sdk/server/test/AssertHelpers.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/AssertHelpers.cs rename to packagess/sdk/server/test/AssertHelpers.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/BaseTest.cs b/packagess/sdk/server/test/BaseTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/BaseTest.cs rename to packagess/sdk/server/test/BaseTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/ConfigurationTest.cs b/packagess/sdk/server/test/ConfigurationTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/ConfigurationTest.cs rename to packagess/sdk/server/test/ConfigurationTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/DataModelTest.cs b/packagess/sdk/server/test/DataModelTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/DataModelTest.cs rename to packagess/sdk/server/test/DataModelTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/FeatureFlagsStateTest.cs b/packagess/sdk/server/test/FeatureFlagsStateTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/FeatureFlagsStateTest.cs rename to packagess/sdk/server/test/FeatureFlagsStateTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Hooks/EvaluationSeriesTest.cs b/packagess/sdk/server/test/Hooks/EvaluationSeriesTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Hooks/EvaluationSeriesTest.cs rename to packagess/sdk/server/test/Hooks/EvaluationSeriesTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Hooks/HookTest.cs b/packagess/sdk/server/test/Hooks/HookTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Hooks/HookTest.cs rename to packagess/sdk/server/test/Hooks/HookTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/ILdClientExtensionsTests.cs b/packagess/sdk/server/test/ILdClientExtensionsTests.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/ILdClientExtensionsTests.cs rename to packagess/sdk/server/test/ILdClientExtensionsTests.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/BigSegmentsConfigurationBuilderTest.cs b/packagess/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/BigSegmentsConfigurationBuilderTest.cs rename to packagess/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/EventProcessorBuilderTest.cs b/packagess/sdk/server/test/Integrations/EventProcessorBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/EventProcessorBuilderTest.cs rename to packagess/sdk/server/test/Integrations/EventProcessorBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/FileDataSourceBuilderTest.cs b/packagess/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/FileDataSourceBuilderTest.cs rename to packagess/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/HttpConfigurationBuilderTest.cs b/packagess/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/HttpConfigurationBuilderTest.cs rename to packagess/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/LoggingConfigurationBuilderTest.cs b/packagess/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/LoggingConfigurationBuilderTest.cs rename to packagess/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/PollingDataSourceBuilderTest.cs b/packagess/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/PollingDataSourceBuilderTest.cs rename to packagess/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/ServiceEndpointsBuilderTest.cs b/packagess/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/ServiceEndpointsBuilderTest.cs rename to packagess/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/StreamingDataSourceBuilderTest.cs b/packagess/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/StreamingDataSourceBuilderTest.cs rename to packagess/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/TestDataTest.cs b/packagess/sdk/server/test/Integrations/TestDataTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/TestDataTest.cs rename to packagess/sdk/server/test/Integrations/TestDataTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/TestDataWithClientTest.cs b/packagess/sdk/server/test/Integrations/TestDataWithClientTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Integrations/TestDataWithClientTest.cs rename to packagess/sdk/server/test/Integrations/TestDataWithClientTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs b/packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs rename to packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs b/packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs rename to packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/MembershipBuilderTest.cs b/packagess/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/BigSegments/MembershipBuilderTest.cs rename to packagess/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataModelDependenciesTest.cs b/packagess/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataModelDependenciesTest.cs rename to packagess/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataSourceStatusProviderImplTest.cs b/packagess/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataSourceStatusProviderImplTest.cs rename to packagess/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataSourceUpdatesImplTest.cs b/packagess/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/DataSourceUpdatesImplTest.cs rename to packagess/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/FileDataSourceTest.cs b/packagess/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/FileDataSourceTest.cs rename to packagess/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/FlagFileDataMergerTest.cs b/packagess/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/FlagFileDataMergerTest.cs rename to packagess/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/PollingDataSourceTest.cs b/packagess/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/PollingDataSourceTest.cs rename to packagess/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/StreamProcessorEventsTest.cs b/packagess/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/StreamProcessorEventsTest.cs rename to packagess/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/StreamingDataSourceTest.cs b/packagess/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataSources/StreamingDataSourceTest.cs rename to packagess/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreSorterTest.cs b/packagess/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreSorterTest.cs rename to packagess/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreStatusProviderImplTest.cs b/packagess/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreStatusProviderImplTest.cs rename to packagess/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreTestBase.cs b/packagess/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreTestBase.cs rename to packagess/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreTestTypes.cs b/packagess/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreTestTypes.cs rename to packagess/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreUpdatesImplTest.cs b/packagess/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/DataStoreUpdatesImplTest.cs rename to packagess/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/InMemoryDataStoreTest.cs b/packagess/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/InMemoryDataStoreTest.cs rename to packagess/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestAsync.cs b/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestAsync.cs rename to packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestBase.cs b/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestBase.cs rename to packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestSync.cs b/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/DataStores/PersistentStoreWrapperTestSync.cs rename to packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/BucketingTest.cs b/packagess/sdk/server/test/Internal/Evaluation/BucketingTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/BucketingTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/BucketingTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorBigSegmentTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorBigSegmentTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorClauseTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorClauseTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorFlagTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorFlagTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorPrerequisitesTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorPrerequisitesTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorRuleTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorRuleTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorSegmentMatchTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorSegmentMatchTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorTargetTest.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorTargetTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorTestUtil.cs b/packagess/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/EvaluatorTestUtil.cs rename to packagess/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs b/packagess/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs rename to packagess/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Events/ServerDiagnosticStoreTest.cs b/packagess/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Events/ServerDiagnosticStoreTest.cs rename to packagess/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/FlagTrackerImplTest.cs b/packagess/sdk/server/test/Internal/FlagTrackerImplTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/FlagTrackerImplTest.cs rename to packagess/sdk/server/test/Internal/FlagTrackerImplTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/LRUCacheSetTest.cs b/packagess/sdk/server/test/Internal/LRUCacheSetTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/LRUCacheSetTest.cs rename to packagess/sdk/server/test/Internal/LRUCacheSetTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Model/DataSetBuilder.cs b/packagess/sdk/server/test/Internal/Model/DataSetBuilder.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Model/DataSetBuilder.cs rename to packagess/sdk/server/test/Internal/Model/DataSetBuilder.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Model/FeatureFlagBuilder.cs b/packagess/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Model/FeatureFlagBuilder.cs rename to packagess/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Model/OperatorTest.cs b/packagess/sdk/server/test/Internal/Model/OperatorTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Model/OperatorTest.cs rename to packagess/sdk/server/test/Internal/Model/OperatorTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Model/SegmentBuilder.cs b/packagess/sdk/server/test/Internal/Model/SegmentBuilder.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Model/SegmentBuilder.cs rename to packagess/sdk/server/test/Internal/Model/SegmentBuilder.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Internal/Model/SemanticVersionTest.cs b/packagess/sdk/server/test/Internal/Model/SemanticVersionTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Internal/Model/SemanticVersionTest.cs rename to packagess/sdk/server/test/Internal/Model/SemanticVersionTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj b/packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj similarity index 88% rename from test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj rename to packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj index 35ab3856..08e77baa 100644 --- a/test/LaunchDarkly.ServerSdk.Tests/LaunchDarkly.ServerSdk.Tests.csproj +++ b/packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj @@ -14,7 +14,7 @@ - + @@ -24,10 +24,6 @@ - - - - diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientBigSegmentsTest.cs b/packagess/sdk/server/test/LdClientBigSegmentsTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientBigSegmentsTest.cs rename to packagess/sdk/server/test/LdClientBigSegmentsTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientDiagnosticEventTest.cs b/packagess/sdk/server/test/LdClientDiagnosticEventTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientDiagnosticEventTest.cs rename to packagess/sdk/server/test/LdClientDiagnosticEventTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientEndToEndTest.cs b/packagess/sdk/server/test/LdClientEndToEndTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientEndToEndTest.cs rename to packagess/sdk/server/test/LdClientEndToEndTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientEvaluationTest.cs b/packagess/sdk/server/test/LdClientEvaluationTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientEvaluationTest.cs rename to packagess/sdk/server/test/LdClientEvaluationTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientEventTest.cs b/packagess/sdk/server/test/LdClientEventTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientEventTest.cs rename to packagess/sdk/server/test/LdClientEventTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientExternalUpdatesOnlyTest.cs b/packagess/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientExternalUpdatesOnlyTest.cs rename to packagess/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs b/packagess/sdk/server/test/LdClientHooksTest.cs similarity index 61% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs rename to packagess/sdk/server/test/LdClientHooksTest.cs index 7064faa5..9600bced 100644 --- a/test/LaunchDarkly.ServerSdk.Tests/LdClientHooksTest.cs +++ b/packagess/sdk/server/test/LdClientHooksTest.cs @@ -1,17 +1,8 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Collections.ObjectModel; -using System.Diagnostics; using System.Linq; using LaunchDarkly.Sdk.Server.Hooks; -using LaunchDarkly.Sdk.Server.Integrations; -using LaunchDarkly.Sdk.Server.Integrations.OpenTelemetry; -using LaunchDarkly.Sdk.Server.Interfaces; -using LaunchDarkly.Sdk.Server.Subsystems; -using OpenTelemetry.Trace; -using OpenTelemetry.Resources; -using LaunchDarkly.TestHelpers; using Xunit; using Xunit.Abstractions; @@ -192,7 +183,6 @@ private Dictionary GenerateVariationMethods(Context context, strin }; } - [Fact] public void ClientExecutesConfiguredHooks() { @@ -269,157 +259,5 @@ public void ClientExecutesConfiguredHooks() } } } - - [Theory] - [InlineData(true)] - [InlineData(false)] - public void TracingHookCreatesRootSpans(bool createSpans) - { - - ICollection exportedItems = new Collection(); - - var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() - .AddSource(TracingHook.ActivitySourceName) - .AddInMemoryExporter(exportedItems) - .Build(); - - var config = BasicConfig() - .Hooks(Components.Hooks(new[] { TracingHook.Builder().CreateActivities(createSpans).Build() })) - .Build(); - - - using (var client = new LdClient(config)) - { - client.BoolVariation("feature-key", Context.New("foo"), true); - client.StringVariation("feature-key", Context.New("foo"), "default"); - } - - var items = exportedItems.ToList(); - - if (createSpans) - { - // If we're creating spans, then we should have two Activities, with the correct operation names. - // To check that they are root spans, check that the parent is null. - Assert.Equal(2, items.Count); - Assert.Equal("LdClient.BoolVariation", items[0].OperationName); - Assert.Equal("LdClient.StringVariation", items[1].OperationName); - Assert.True(items.All(i => i.Parent == null)); - } - else - { - // Otherwise, there should be no Activities. - Assert.Empty(exportedItems); - } - } - - [Theory] - [InlineData(true)] - [InlineData(false)] - public void TracingHookCreatesChildSpans(bool createSpans) - { - - ICollection exportedItems = new Collection(); - - var testSource = new ActivitySource("test-source", "1.0.0"); - - var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() - .AddSource("test-source") - .AddSource(TracingHook.ActivitySourceName) - .SetResourceBuilder( - ResourceBuilder.CreateDefault() - .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) - - .AddInMemoryExporter(exportedItems) - .Build(); - - var config = BasicConfig() - .Hooks(Components.Hooks(new[] { TracingHook.Builder().CreateActivities(createSpans).Build() })) - .Build(); - - - var rootActivity = testSource.StartActivity("root-activity"); - using (var client = new LdClient(config)) - { - client.BoolVariation("feature-key", Context.New("foo"), true); - client.StringVariation("feature-key", Context.New("foo"), "default"); - } - - rootActivity.Stop(); - - var items = exportedItems.ToList(); - - if (createSpans) - { - // If we're creating spans, since there is an existing root span, we should see the children parented - // to it. - Assert.Equal(3, items.Count); - Assert.Equal("LdClient.BoolVariation", items[0].OperationName); - Assert.Equal("LdClient.StringVariation", items[1].OperationName); - Assert.Equal("root-activity", items[2].OperationName); - Assert.Equal(items[2].SpanId, items[0].ParentSpanId); - } - else - { - // Otherwise, there should only be the root span that was already created. - Assert.Single(items); - Assert.Equal("root-activity", items[0].OperationName); - Assert.Null(items[0].Parent); - } - } - - [Theory] - [InlineData(true)] - [InlineData(false)] - public void TracingHookIncludesVariant(bool includeVariant) - { - ICollection exportedItems = new Collection(); - - var testSource = new ActivitySource("test-source", "1.0.0"); - - var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() - .AddSource("test-source") - .SetResourceBuilder( - ResourceBuilder.CreateDefault() - .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) - - .AddInMemoryExporter(exportedItems) - .Build(); - - var config = BasicConfig() - .Hooks(Components.Hooks(new[] { TracingHook.Builder().IncludeVariant(includeVariant).Build() })) - .Build(); - - - var rootActivity = testSource.StartActivity("root-activity"); - using (var client = new LdClient(config)) - { - client.BoolVariation("feature-key", Context.New("foo"), true); - client.StringVariation("feature-key", Context.New("foo"), "default"); - } - - rootActivity.Stop(); - - var items = exportedItems.ToList(); - - Assert.Single(items); - Assert.Equal("root-activity", items[0].OperationName); - - if (includeVariant) - { - // The idea is to check that the span has two events attached to it, and those events contain the feature - // flag variants. It's awkward to check because we don't know the exact order of the events or those - // events' tags. - var events = items[0].Events; - Assert.Single(events.Where(e => - e.Tags.Contains(new KeyValuePair("feature_flag.variant", "true")))); - Assert.Single(events.Where(e => - e.Tags.Contains(new KeyValuePair("feature_flag.variant", "\"default\"")))); - } - else - { - // If not including the variant, then we shouldn't see any variant tag on any events. - Assert.All(items, i => i.Events.All(e => e.Tags.All(kvp => kvp.Key != "feature_flag.variant"))); - } - } } } diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientListenersTest.cs b/packagess/sdk/server/test/LdClientListenersTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientListenersTest.cs rename to packagess/sdk/server/test/LdClientListenersTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientOfflineTest.cs b/packagess/sdk/server/test/LdClientOfflineTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientOfflineTest.cs rename to packagess/sdk/server/test/LdClientOfflineTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientServiceEndpointsTest.cs b/packagess/sdk/server/test/LdClientServiceEndpointsTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientServiceEndpointsTest.cs rename to packagess/sdk/server/test/LdClientServiceEndpointsTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/LdClientTest.cs b/packagess/sdk/server/test/LdClientTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/LdClientTest.cs rename to packagess/sdk/server/test/LdClientTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Migrations/BasicMigrationExecutor.cs b/packagess/sdk/server/test/Migrations/BasicMigrationExecutor.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Migrations/BasicMigrationExecutor.cs rename to packagess/sdk/server/test/Migrations/BasicMigrationExecutor.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationBuilderTest.cs b/packagess/sdk/server/test/Migrations/MigrationBuilderTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationBuilderTest.cs rename to packagess/sdk/server/test/Migrations/MigrationBuilderTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationOpTrackerTest.cs b/packagess/sdk/server/test/Migrations/MigrationOpTrackerTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationOpTrackerTest.cs rename to packagess/sdk/server/test/Migrations/MigrationOpTrackerTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationStageTest.cs b/packagess/sdk/server/test/Migrations/MigrationStageTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationStageTest.cs rename to packagess/sdk/server/test/Migrations/MigrationStageTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationTest.cs b/packagess/sdk/server/test/Migrations/MigrationTest.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/Migrations/MigrationTest.cs rename to packagess/sdk/server/test/Migrations/MigrationTest.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/MockComponents.cs b/packagess/sdk/server/test/MockComponents.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/MockComponents.cs rename to packagess/sdk/server/test/MockComponents.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/MockResponses.cs b/packagess/sdk/server/test/MockResponses.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/MockResponses.cs rename to packagess/sdk/server/test/MockResponses.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestFiles/all-properties.json b/packagess/sdk/server/test/TestFiles/all-properties.json similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestFiles/all-properties.json rename to packagess/sdk/server/test/TestFiles/all-properties.json diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestFiles/all-properties.yml b/packagess/sdk/server/test/TestFiles/all-properties.yml similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestFiles/all-properties.yml rename to packagess/sdk/server/test/TestFiles/all-properties.yml diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestFiles/bad-file.txt b/packagess/sdk/server/test/TestFiles/bad-file.txt similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestFiles/bad-file.txt rename to packagess/sdk/server/test/TestFiles/bad-file.txt diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestFiles/flag-only.json b/packagess/sdk/server/test/TestFiles/flag-only.json similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestFiles/flag-only.json rename to packagess/sdk/server/test/TestFiles/flag-only.json diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestFiles/segment-only.json b/packagess/sdk/server/test/TestFiles/segment-only.json similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestFiles/segment-only.json rename to packagess/sdk/server/test/TestFiles/segment-only.json diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestHttpUtils.cs b/packagess/sdk/server/test/TestHttpUtils.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestHttpUtils.cs rename to packagess/sdk/server/test/TestHttpUtils.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestLoggingHelpers.cs b/packagess/sdk/server/test/TestLoggingHelpers.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestLoggingHelpers.cs rename to packagess/sdk/server/test/TestLoggingHelpers.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/TestUtils.cs b/packagess/sdk/server/test/TestUtils.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/TestUtils.cs rename to packagess/sdk/server/test/TestUtils.cs diff --git a/test/LaunchDarkly.ServerSdk.Tests/VariationMethodsDesc.cs b/packagess/sdk/server/test/VariationMethodsDesc.cs similarity index 100% rename from test/LaunchDarkly.ServerSdk.Tests/VariationMethodsDesc.cs rename to packagess/sdk/server/test/VariationMethodsDesc.cs diff --git a/packagess/telemetry/docfx.json b/packagess/telemetry/docfx.json new file mode 100644 index 00000000..293c9287 --- /dev/null +++ b/packagess/telemetry/docfx.json @@ -0,0 +1,48 @@ +{ + "metadata": [ + { + "src": [ + { + "src": "./src", + "files": [ + "**/*.csproj", + "**/bin/**/**LaunchDarkly**.dll" + ] + } + ], + "dest": "./api", + "properties" : { + "Configuration": "Debug" + }, + } + ], + "build": { + "content": [ + { + "files": [ + "**/*.{md,yml}" + ], + "exclude": [ + "docs/**" + ] + } + ], + "resource": [ + { + "files": [ + "images/**" + ] + } + ], + "output": "docs", + "template": [ + "default" + ], + "globalMetadata": { + "_appName": "LaunchDarkly Dotnet Server SDK Telemetry Integration", + "_appTitle": "LaunchDarkly Dotnet Server SDK Telemetry Integration", + "_enableSearch": true, + "pdf": false + } + } +} diff --git a/packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj b/packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj new file mode 100644 index 00000000..0d72ef35 --- /dev/null +++ b/packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj @@ -0,0 +1,56 @@ + + + + 0.1.0 + + + netstandard2.0;net462;net6.0 + $(BUILDFRAMEWORKS) + portable + LaunchDarkly.ServerSdk.Telemetry + Library + LaunchDarkly.ServerSdk.Telemetry + LaunchDarkly.Sdk.Server.Telemetry + 7.3 + LaunchDarkly Server-Side .NET SDK Telemetry Integrations + LaunchDarkly + LaunchDarkly + LaunchDarkly + Copyright 2024 LaunchDarkly + Apache-2.0 + https://github.com/launchdarkly/dotnet-server-sdk + https://github.com/launchdarkly/dotnet-server-sdk + main + true + snupkg + + + true + + + 1570,1571,1572,1573,1574,1580,1581,1584,1591,1710,1711,1712 + + + + + + + + + + + + + ../../LaunchDarkly.snk + true + + + + bin\$(Configuration)\$(TargetFramework)\LaunchDarkly.ServerSdk.Telemetry.xml + + diff --git a/src/LaunchDarkly.ServerSdk/Integrations/OpenTelemetry/TracingHook.cs b/packagess/telemetry/src/Telemetry/TracingHook.cs similarity index 99% rename from src/LaunchDarkly.ServerSdk/Integrations/OpenTelemetry/TracingHook.cs rename to packagess/telemetry/src/Telemetry/TracingHook.cs index a1270dc1..e459ef90 100644 --- a/src/LaunchDarkly.ServerSdk/Integrations/OpenTelemetry/TracingHook.cs +++ b/packagess/telemetry/src/Telemetry/TracingHook.cs @@ -3,7 +3,7 @@ using LaunchDarkly.Sdk.Internal; using LaunchDarkly.Sdk.Server.Hooks; -namespace LaunchDarkly.Sdk.Server.Integrations.OpenTelemetry +namespace LaunchDarkly.Sdk.Server.Telemetry { using SeriesData = ImmutableDictionary; diff --git a/packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj b/packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj new file mode 100644 index 00000000..2afa0db9 --- /dev/null +++ b/packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj @@ -0,0 +1,40 @@ + + + + net462;net6.0 + $(TESTFRAMEWORK) + LaunchDarkly.ServerSdk.Telemetry.Tests + LaunchDarkly.ServerSdk.Telemetry.Tests + false + true + LaunchDarkly.Sdk.Server.Telemetry + + + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + diff --git a/packagess/telemetry/test/Telemetry/TracingHookTests.cs b/packagess/telemetry/test/Telemetry/TracingHookTests.cs new file mode 100644 index 00000000..db1d82e5 --- /dev/null +++ b/packagess/telemetry/test/Telemetry/TracingHookTests.cs @@ -0,0 +1,211 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using LaunchDarkly.Sdk.Server.Hooks; +using OpenTelemetry.Resources; +using OpenTelemetry.Trace; +using Xunit; + +namespace LaunchDarkly.Sdk.Server.Telemetry +{ + public class TestTracingHook + { + [Fact] + public void CanConstructTracingHook() + { + var hook = TracingHook.Default(); + Assert.NotNull(hook); + Assert.Equal("LaunchDarkly Tracing Hook", hook.Metadata.Name); + } + + [Fact] + public void CanRetrieveActivitySourceName() + { + Assert.NotEmpty(TracingHook.ActivitySourceName); + } + + [Theory] + [InlineData(false, false)] + [InlineData(false, true)] + [InlineData(true, false)] + [InlineData(true, true)] + public void ConfigurationOptionsDoNotThrowExceptions(bool includeVariant, bool createSpans) + { + var hook = TracingHook.Builder() + .IncludeVariant(includeVariant) + .CreateActivities(createSpans) + .Build(); + var context = new EvaluationSeriesContext("foo", Context.New("bar"), LdValue.Null, "testMethod"); + var data = hook.BeforeEvaluation(context, new SeriesDataBuilder().Build()); + hook.AfterEvaluation(context, data, new EvaluationDetail()); + } + + [Fact] + public void CallingDisposeDoesNotThrowException() + { + var hook = TracingHook.Default(); + hook.Dispose(); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookCreatesRootSpans(bool createSpans) + { + ICollection exportedItems = new Collection(); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource(TracingHook.ActivitySourceName) + .AddInMemoryExporter(exportedItems) + .Build(); + + var hookUnderTest = TracingHook.Builder().CreateActivities(createSpans).Build(); + var featureKey = "feature-key"; + var context = Context.New("foo"); + + var evalContext1 = new EvaluationSeriesContext(featureKey, context, LdValue.Of(true), "LdClient.BoolVariation"); + var data1 = hookUnderTest.BeforeEvaluation(evalContext1, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext1, data1, + new EvaluationDetail(LdValue.Of(true), 0, EvaluationReason.FallthroughReason)); + + var evalContext2 = new EvaluationSeriesContext(featureKey, context, LdValue.Of("default"), "LdClient.StringVariation"); + var data2 = hookUnderTest.BeforeEvaluation(evalContext2, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext2, data2, + new EvaluationDetail(LdValue.Of("default"), 0, EvaluationReason.FallthroughReason)); + + var items = exportedItems.ToList(); + + if (createSpans) + { + // If we're creating spans, then we should have two Activities, with the correct operation names. + // To check that they are root spans, check that the parent is null. + Assert.Equal(2, items.Count); + Assert.Equal("LdClient.BoolVariation", items[0].OperationName); + Assert.Equal("LdClient.StringVariation", items[1].OperationName); + Assert.True(items.All(i => i.Parent == null)); + } + else + { + // Otherwise, there should be no Activities. + Assert.Empty(exportedItems); + } + } + + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookCreatesChildSpans(bool createSpans) + { + ICollection exportedItems = new Collection(); + + var testSource = new ActivitySource("test-source", "1.0.0"); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource("test-source") + .AddSource(TracingHook.ActivitySourceName) + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) + .AddInMemoryExporter(exportedItems) + .Build(); + + var hookUnderTest = TracingHook.Builder().CreateActivities(createSpans).Build(); + var featureKey = "feature-key"; + var context = Context.New("foo"); + + var rootActivity = testSource.StartActivity("root-activity"); + + var evalContext1 = new EvaluationSeriesContext(featureKey, context, LdValue.Of(true), "LdClient.BoolVariation"); + var data1 = hookUnderTest.BeforeEvaluation(evalContext1, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext1, data1, + new EvaluationDetail(LdValue.Of(true), 0, EvaluationReason.FallthroughReason)); + + var evalContext2 = new EvaluationSeriesContext(featureKey, context, LdValue.Of("default"), "LdClient.StringVariation"); + var data2 = hookUnderTest.BeforeEvaluation(evalContext2, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext2, data2, + new EvaluationDetail(LdValue.Of("default"), 0, EvaluationReason.FallthroughReason)); + + rootActivity.Stop(); + + var items = exportedItems.ToList(); + + if (createSpans) + { + // If we're creating spans, since there is an existing root span, we should see the children parented + // to it. + Assert.Equal(3, items.Count); + Assert.Equal("LdClient.BoolVariation", items[0].OperationName); + Assert.Equal("LdClient.StringVariation", items[1].OperationName); + Assert.Equal("root-activity", items[2].OperationName); + Assert.Equal(items[2].SpanId, items[0].ParentSpanId); + } + else + { + // Otherwise, there should only be the root span that was already created. + Assert.Single(items); + Assert.Equal("root-activity", items[0].OperationName); + Assert.Null(items[0].Parent); + } + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TracingHookIncludesVariant(bool includeVariant) + { + ICollection exportedItems = new Collection(); + + var testSource = new ActivitySource("test-source", "1.0.0"); + + var tracerProvider = OpenTelemetry.Sdk.CreateTracerProviderBuilder() + .AddSource("test-source") + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: "test-source", serviceVersion: "1.0.0")) + .AddInMemoryExporter(exportedItems) + .Build(); + + var hookUnderTest = TracingHook.Builder().IncludeVariant(includeVariant).Build(); + var featureKey = "feature-key"; + var context = Context.New("foo"); + + var rootActivity = testSource.StartActivity("root-activity"); + + var evalContext1 = new EvaluationSeriesContext(featureKey, context, LdValue.Of(true), "LdClient.BoolVariation"); + var data1 = hookUnderTest.BeforeEvaluation(evalContext1, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext1, data1, + new EvaluationDetail(LdValue.Of(true), 0, EvaluationReason.FallthroughReason)); + + var evalContext2 = new EvaluationSeriesContext(featureKey, context, LdValue.Of("default"), "LdClient.StringVariation"); + var data2 = hookUnderTest.BeforeEvaluation(evalContext2, new SeriesDataBuilder().Build()); + hookUnderTest.AfterEvaluation(evalContext2, data2, + new EvaluationDetail(LdValue.Of("default"), 0, EvaluationReason.FallthroughReason)); + + rootActivity.Stop(); + + var items = exportedItems.ToList(); + + Assert.Single(items); + Assert.Equal("root-activity", items[0].OperationName); + + if (includeVariant) + { + // The idea is to check that the span has two events attached to it, and those events contain the feature + // flag variants. It's awkward to check because we don't know the exact order of the events or those + // events' tags. + var events = items[0].Events; + Assert.Single(events.Where(e => + e.Tags.Contains(new KeyValuePair("feature_flag.variant", "true")))); + Assert.Single(events.Where(e => + e.Tags.Contains(new KeyValuePair("feature_flag.variant", "\"default\"")))); + } + else + { + // If not including the variant, then we shouldn't see any variant tag on any events. + Assert.All(items, i => i.Events.All(e => e.Tags.All(kvp => kvp.Key != "feature_flag.variant"))); + } + } + } +} diff --git a/release-please-config.json b/release-please-config.json index 20cbfc44..8839cd48 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,14 +1,24 @@ { "bootstrap-sha": "e3bc4e0889e63e488476cacf726b3b541d174b94", "packages": { - ".": { + "packagess/sdk/server": { "release-type": "simple", "bump-minor-pre-major": true, "versioning": "default", "include-v-in-tag": false, "include-component-in-tag": false, "extra-files": [ - "src/LaunchDarkly.ServerSdk/LaunchDarkly.ServerSdk.csproj" + "packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj" + ] + }, + "packagess/telemetry": { + "release-type": "simple", + "bump-minor-pre-major": true, + "versioning": "default", + "include-v-in-tag": false, + "include-component-in-tag": false, + "extra-files": [ + "packagess/sdk/server/src/LaunchDarkly.ServerSdk.Telemetry.csproj" ] } } diff --git a/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs b/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs deleted file mode 100644 index 7a275a29..00000000 --- a/test/LaunchDarkly.ServerSdk.Tests/Integrations/OpenTelemetry/TracingHook.cs +++ /dev/null @@ -1,45 +0,0 @@ -using LaunchDarkly.Sdk.Server.Hooks; -using Xunit; - -namespace LaunchDarkly.Sdk.Server.Integrations.OpenTelemetry -{ - public class TestTracingHook - { - [Fact] - public void CanConstructTracingHook() - { - var hook = TracingHook.Default(); - Assert.NotNull(hook); - Assert.Equal("LaunchDarkly Tracing Hook", hook.Metadata.Name); - } - - [Fact] - public void CanRetrieveActivitySourceName() - { - Assert.NotEmpty(TracingHook.ActivitySourceName); - } - - [Theory] - [InlineData(false, false)] - [InlineData(false, true)] - [InlineData(true, false)] - [InlineData(true, true)] - public void ConfigurationOptionsDoNotThrowExceptions(bool includeVariant, bool createSpans) - { - var hook = TracingHook.Builder() - .IncludeVariant(includeVariant) - .CreateActivities(createSpans) - .Build(); - var context = new EvaluationSeriesContext("foo", Context.New("bar"), LdValue.Null, "testMethod"); - var data = hook.BeforeEvaluation(context, new SeriesDataBuilder().Build()); - hook.AfterEvaluation(context, data, new EvaluationDetail()); - } - - [Fact] - public void CallingDisposeDoesNotThrowException() - { - var hook = TracingHook.Default(); - hook.Dispose(); - } - } -} From ffc70736cc03d128c0ef9d8413cac3549d17d0a6 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 12:25:21 -0500 Subject: [PATCH 08/18] Updating packagess to pkgs and adding manual publish --- .github/actions/full-release/action.yml | 2 +- .github/workflows/manual-publish.yml | 43 +++++++++ .github/workflows/publish-docs.yml | 4 +- .github/workflows/publish.yml | 96 ------------------- .github/workflows/release-please.yml | 23 +++-- .github/workflows/sdk-server-ci.yml | 10 +- .../{telemetry.yml => telemetry-ci.yml} | 6 +- .release-please-manifest.json | 4 +- LaunchDarkly.ServerSdk.sln | 51 ++++++---- .../contract-tests/BigSegmentStoreFixture.cs | 0 .../contract-tests/CallbackRepresentations.cs | 0 .../server/contract-tests/CallbackService.cs | 0 .../sdk/server/contract-tests/README.md | 0 .../server/contract-tests/Representations.cs | 0 .../server/contract-tests/SdkClientEntity.cs | 0 .../sdk/server/contract-tests/TestHook.cs | 0 .../sdk/server/contract-tests/TestService.cs | 0 .../server/contract-tests/TestService.csproj | 0 .../sdk/server/contract-tests/TestService.sln | 0 {packagess => pkgs}/sdk/server/docfx.json | 0 .../sdk/server/docs-src/README.md | 0 .../namespaces/LaunchDarkly.Sdk.Json.md | 0 .../LaunchDarkly.Sdk.Server.Integrations.md | 0 .../LaunchDarkly.Sdk.Server.Interfaces.md | 0 .../LaunchDarkly.Sdk.Server.Subsystems.md | 0 .../namespaces/LaunchDarkly.Sdk.Server.md | 0 .../docs-src/namespaces/LaunchDarkly.Sdk.md | 0 .../sdk/server/src/Components.cs | 0 .../sdk/server/src/Configuration.cs | 0 .../sdk/server/src/ConfigurationBuilder.cs | 0 .../sdk/server/src/DataModel.cs | 0 .../sdk/server/src/FeatureFlagsState.cs | 0 .../sdk/server/src/FlagsStateOption.cs | 0 .../src/Hooks/EvaluationSeriesContext.cs | 0 .../sdk/server/src/Hooks/Hook.cs | 0 .../sdk/server/src/Hooks/Method.cs | 0 .../sdk/server/src/Hooks/SeriesDataBuilder.cs | 0 .../sdk/server/src/ILdClientExtensions.cs | 0 .../BigSegmentsConfigurationBuilder.cs | 0 .../src/Integrations/EventProcessorBuilder.cs | 0 .../sdk/server/src/Integrations/FileData.cs | 0 .../src/Integrations/FileDataSourceBuilder.cs | 0 .../server/src/Integrations/FileDataTypes.cs | 0 .../Integrations/HookConfigurationBuilder.cs | 0 .../Integrations/HttpConfigurationBuilder.cs | 0 .../LoggingConfigurationBuilder.cs | 0 .../PersistentDataStoreBuilder.cs | 0 .../Integrations/PollingDataSourceBuilder.cs | 0 .../Integrations/ServiceEndpointsBuilder.cs | 0 .../StreamingDataSourceBuilder.cs | 0 .../sdk/server/src/Integrations/TestData.cs | 0 .../src/Integrations/WrapperInfoBuilder.cs | 0 .../src/Interfaces/BigSegmentStoreStatus.cs | 0 .../server/src/Interfaces/DataSourceStatus.cs | 0 .../server/src/Interfaces/DataStoreStatus.cs | 0 .../IBigSegmentStoreStatusProvider.cs | 0 .../Interfaces/IDataSourceStatusProvider.cs | 0 .../Interfaces/IDataStoreStatusProvider.cs | 0 .../sdk/server/src/Interfaces/IFlagTracker.cs | 0 .../sdk/server/src/Interfaces/ILdClient.cs | 0 .../server/src/Interfaces/ServiceEndpoints.cs | 0 .../sdk/server/src/Interfaces/WrapperInfo.cs | 0 .../BigSegmentStoreStatusProviderImpl.cs | 0 .../BigSegments/BigSegmentStoreWrapper.cs | 0 .../BigSegments/BigSegmentsInternalTypes.cs | 0 .../Internal/BigSegments/MembershipBuilder.cs | 0 .../Internal/BigSegments/NamespaceReadme.md | 0 .../sdk/server/src/Internal/ComponentsImpl.cs | 0 .../src/Internal/DataModelDependencies.cs | 0 .../DataSources/DataSourceOutageTracker.cs | 0 .../DataSourceStatusProviderImpl.cs | 0 .../DataSources/DataSourceUpdatesImpl.cs | 0 .../Internal/DataSources/FeatureRequestor.cs | 0 .../Internal/DataSources/FileDataSource.cs | 0 .../Internal/DataSources/FlagFileParser.cs | 0 .../Internal/DataSources/FlagFileReader.cs | 0 .../Internal/DataSources/IFeatureRequestor.cs | 0 .../Internal/DataSources/NamespaceReadme.md | 0 .../Internal/DataSources/PollingDataSource.cs | 0 .../DataSources/StreamProcessorEvents.cs | 0 .../DataSources/StreamingDataSource.cs | 0 .../DataStores/DataStoreCacheConfig.cs | 0 .../Internal/DataStores/DataStoreSorter.cs | 0 .../DataStores/DataStoreStatusProviderImpl.cs | 0 .../DataStores/DataStoreUpdatesImpl.cs | 0 .../Internal/DataStores/InMemoryDataStore.cs | 0 .../Internal/DataStores/NamespaceReadme.md | 0 .../PersistentDataStoreStatusManager.cs | 0 .../DataStores/PersistentStoreAsyncAdapter.cs | 0 .../DataStores/PersistentStoreWrapper.cs | 0 .../src/Internal/Evaluation/Bucketing.cs | 0 .../src/Internal/Evaluation/Evaluator.cs | 0 .../Internal/Evaluation/EvaluatorClause.cs | 0 .../Internal/Evaluation/EvaluatorSegment.cs | 0 .../Internal/Evaluation/EvaluatorTarget.cs | 0 .../src/Internal/Evaluation/EvaluatorTypes.cs | 0 .../Internal/Evaluation/NamespaceReadme.md | 0 .../Events/DefaultContextDeduplicator.cs | 0 .../Events/DefaultEventProcessorWrapper.cs | 0 .../src/Internal/Events/EventFactory.cs | 0 .../src/Internal/Events/NamespaceReadme.md | 0 .../Internal/Events/ServerDiagnosticStore.cs | 0 .../server/src/Internal/FlagTrackerImpl.cs | 0 .../src/Internal/Hooks/Executor/Executor.cs | 0 .../Internal/Hooks/Executor/NoopExecutor.cs | 0 .../Hooks/Interfaces/IHookExecutor.cs | 0 .../Hooks/Interfaces/IStageExecutor.cs | 0 .../Internal/Hooks/Series/EvaluationSeries.cs | 0 .../sdk/server/src/Internal/LRUCacheSet.cs | 0 .../sdk/server/src/Internal/LogNames.cs | 0 .../sdk/server/src/Internal/Model/Clause.cs | 0 .../server/src/Internal/Model/FeatureFlag.cs | 0 .../src/Internal/Model/NamespaceReadme.md | 0 .../sdk/server/src/Internal/Model/Operator.cs | 0 .../sdk/server/src/Internal/Model/Segment.cs | 0 .../src/Internal/Model/SemanticVersion.cs | 0 .../src/Internal/Model/Serialization.cs | 0 .../server/src/Internal/NamespaceReadme.md | 0 .../server/src/Internal/StandardEndpoints.cs | 0 .../server/src/LaunchDarkly.ServerSdk.csproj | 0 .../sdk/server/src/LdClient.cs | 0 .../sdk/server/src/Migrations/IMigration.cs | 0 .../sdk/server/src/Migrations/Migration.cs | 0 .../server/src/Migrations/MigrationBuilder.cs | 0 .../src/Migrations/MigrationExecution.cs | 0 .../src/Migrations/MigrationExecutionMode.cs | 0 .../server/src/Migrations/MigrationMethod.cs | 0 .../src/Migrations/MigrationOpTracker.cs | 0 .../src/Migrations/MigrationOperation.cs | 0 .../server/src/Migrations/MigrationOrigin.cs | 0 .../server/src/Migrations/MigrationResult.cs | 0 .../src/Migrations/MigrationSerialOrder.cs | 0 .../server/src/Migrations/MigrationStage.cs | 0 .../src/Migrations/MigrationVariation.cs | 0 .../src/Migrations/MigrationWriteResult.cs | 0 .../sdk/server/src/NuGet/config.install.xdt | 0 .../sdk/server/src/NuGet/config.uninstall.xdt | 0 .../sdk/server/src/Properties/AssemblyInfo.cs | 0 .../src/Subsystems/BigSegmentStoreTypes.cs | 0 .../Subsystems/BigSegmentsConfiguration.cs | 0 .../server/src/Subsystems/DataStoreTypes.cs | 0 .../src/Subsystems/EventProcessorTypes.cs | 0 .../src/Subsystems/HookConfiguration.cs | 0 .../src/Subsystems/HttpConfiguration.cs | 0 .../server/src/Subsystems/IBigSegmentStore.cs | 0 .../src/Subsystems/IComponentConfigurer.cs | 0 .../sdk/server/src/Subsystems/IDataSource.cs | 0 .../src/Subsystems/IDataSourceUpdates.cs | 0 .../sdk/server/src/Subsystems/IDataStore.cs | 0 .../src/Subsystems/IDataStoreUpdates.cs | 0 .../src/Subsystems/IDiagnosticDescription.cs | 0 .../server/src/Subsystems/IEventProcessor.cs | 0 .../src/Subsystems/IPersistentDataStore.cs | 0 .../Subsystems/IPersistentDataStoreAsync.cs | 0 .../server/src/Subsystems/LdClientContext.cs | 0 .../src/Subsystems/LoggingConfiguration.cs | 0 {packagess => pkgs}/sdk/server/src/app.config | 0 .../sdk/server/test/AssertHelpers.cs | 0 .../sdk/server/test/BaseTest.cs | 0 .../sdk/server/test/ConfigurationTest.cs | 0 .../sdk/server/test/DataModelTest.cs | 0 .../sdk/server/test/FeatureFlagsStateTest.cs | 0 .../server/test/Hooks/EvaluationSeriesTest.cs | 0 .../sdk/server/test/Hooks/HookTest.cs | 0 .../server/test/ILdClientExtensionsTests.cs | 0 .../BigSegmentsConfigurationBuilderTest.cs | 0 .../Integrations/EventProcessorBuilderTest.cs | 0 .../Integrations/FileDataSourceBuilderTest.cs | 0 .../HttpConfigurationBuilderTest.cs | 0 .../LoggingConfigurationBuilderTest.cs | 0 .../PollingDataSourceBuilderTest.cs | 0 .../ServiceEndpointsBuilderTest.cs | 0 .../StreamingDataSourceBuilderTest.cs | 0 .../server/test/Integrations/TestDataTest.cs | 0 .../Integrations/TestDataWithClientTest.cs | 0 .../BigSegmentsStatusProviderImplTest.cs | 0 .../BigSegmentsStoreWrapperTest.cs | 0 .../BigSegments/MembershipBuilderTest.cs | 0 .../DataSources/DataModelDependenciesTest.cs | 0 .../DataSourceStatusProviderImplTest.cs | 0 .../DataSources/DataSourceUpdatesImplTest.cs | 0 .../DataSources/FileDataSourceTest.cs | 0 .../DataSources/FlagFileDataMergerTest.cs | 0 .../DataSources/PollingDataSourceTest.cs | 0 .../DataSources/StreamProcessorEventsTest.cs | 0 .../DataSources/StreamingDataSourceTest.cs | 0 .../DataStores/DataStoreSorterTest.cs | 0 .../DataStoreStatusProviderImplTest.cs | 0 .../Internal/DataStores/DataStoreTestBase.cs | 0 .../Internal/DataStores/DataStoreTestTypes.cs | 0 .../DataStores/DataStoreUpdatesImplTest.cs | 0 .../DataStores/InMemoryDataStoreTest.cs | 0 .../PersistentStoreWrapperTestAsync.cs | 0 .../PersistentStoreWrapperTestBase.cs | 0 .../PersistentStoreWrapperTestSync.cs | 0 .../test/Internal/Evaluation/BucketingTest.cs | 0 .../Evaluation/EvaluatorBigSegmentTest.cs | 0 .../Evaluation/EvaluatorClauseTest.cs | 0 .../Internal/Evaluation/EvaluatorFlagTest.cs | 0 .../Evaluation/EvaluatorPrerequisitesTest.cs | 0 .../Internal/Evaluation/EvaluatorRuleTest.cs | 0 .../Evaluation/EvaluatorSegmentMatchTest.cs | 0 .../Evaluation/EvaluatorTargetTest.cs | 0 .../Internal/Evaluation/EvaluatorTestUtil.cs | 0 .../RolloutRandomizationConsistencyTest.cs | 0 .../Events/ServerDiagnosticStoreTest.cs | 0 .../test/Internal/FlagTrackerImplTest.cs | 0 .../server/test/Internal/LRUCacheSetTest.cs | 0 .../test/Internal/Model/DataSetBuilder.cs | 0 .../test/Internal/Model/FeatureFlagBuilder.cs | 0 .../test/Internal/Model/OperatorTest.cs | 0 .../test/Internal/Model/SegmentBuilder.cs | 0 .../Internal/Model/SemanticVersionTest.cs | 0 .../test/LaunchDarkly.ServerSdk.Tests.csproj | 0 .../server/test/LdClientBigSegmentsTest.cs | 0 .../test/LdClientDiagnosticEventTest.cs | 0 .../sdk/server/test/LdClientEndToEndTest.cs | 0 .../sdk/server/test/LdClientEvaluationTest.cs | 0 .../sdk/server/test/LdClientEventTest.cs | 0 .../test/LdClientExternalUpdatesOnlyTest.cs | 0 .../sdk/server/test/LdClientHooksTest.cs | 0 .../sdk/server/test/LdClientListenersTest.cs | 0 .../sdk/server/test/LdClientOfflineTest.cs | 0 .../test/LdClientServiceEndpointsTest.cs | 0 .../sdk/server/test/LdClientTest.cs | 0 .../test/Migrations/BasicMigrationExecutor.cs | 0 .../test/Migrations/MigrationBuilderTest.cs | 0 .../test/Migrations/MigrationOpTrackerTest.cs | 0 .../test/Migrations/MigrationStageTest.cs | 0 .../server/test/Migrations/MigrationTest.cs | 0 .../sdk/server/test/MockComponents.cs | 0 .../sdk/server/test/MockResponses.cs | 0 .../server/test/TestFiles/all-properties.json | 0 .../server/test/TestFiles/all-properties.yml | 0 .../sdk/server/test/TestFiles/bad-file.txt | 0 .../sdk/server/test/TestFiles/flag-only.json | 0 .../server/test/TestFiles/segment-only.json | 0 .../sdk/server/test/TestHttpUtils.cs | 0 .../sdk/server/test/TestLoggingHelpers.cs | 0 .../sdk/server/test/TestUtils.cs | 0 .../sdk/server/test/VariationMethodsDesc.cs | 0 {packagess => pkgs}/telemetry/docfx.json | 0 .../LaunchDarkly.ServerSdk.Telemetry.csproj | 0 .../telemetry/src/Telemetry/TracingHook.cs | 0 ...nchDarkly.ServerSdk.Telemetry.Tests.csproj | 6 +- .../test/Telemetry/TracingHookTests.cs | 0 release-please-config.json | 12 +-- 247 files changed, 111 insertions(+), 146 deletions(-) create mode 100644 .github/workflows/manual-publish.yml delete mode 100644 .github/workflows/publish.yml rename .github/workflows/{telemetry.yml => telemetry-ci.yml} (71%) rename {packagess => pkgs}/sdk/server/contract-tests/BigSegmentStoreFixture.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/CallbackRepresentations.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/CallbackService.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/README.md (100%) rename {packagess => pkgs}/sdk/server/contract-tests/Representations.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/SdkClientEntity.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/TestHook.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/TestService.cs (100%) rename {packagess => pkgs}/sdk/server/contract-tests/TestService.csproj (100%) rename {packagess => pkgs}/sdk/server/contract-tests/TestService.sln (100%) rename {packagess => pkgs}/sdk/server/docfx.json (100%) rename {packagess => pkgs}/sdk/server/docs-src/README.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md (100%) rename {packagess => pkgs}/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md (100%) rename {packagess => pkgs}/sdk/server/src/Components.cs (100%) rename {packagess => pkgs}/sdk/server/src/Configuration.cs (100%) rename {packagess => pkgs}/sdk/server/src/ConfigurationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/DataModel.cs (100%) rename {packagess => pkgs}/sdk/server/src/FeatureFlagsState.cs (100%) rename {packagess => pkgs}/sdk/server/src/FlagsStateOption.cs (100%) rename {packagess => pkgs}/sdk/server/src/Hooks/EvaluationSeriesContext.cs (100%) rename {packagess => pkgs}/sdk/server/src/Hooks/Hook.cs (100%) rename {packagess => pkgs}/sdk/server/src/Hooks/Method.cs (100%) rename {packagess => pkgs}/sdk/server/src/Hooks/SeriesDataBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/ILdClientExtensions.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/EventProcessorBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/FileData.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/FileDataSourceBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/FileDataTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/HookConfigurationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/HttpConfigurationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/PollingDataSourceBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/TestData.cs (100%) rename {packagess => pkgs}/sdk/server/src/Integrations/WrapperInfoBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/DataSourceStatus.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/DataStoreStatus.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/IFlagTracker.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/ILdClient.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/ServiceEndpoints.cs (100%) rename {packagess => pkgs}/sdk/server/src/Interfaces/WrapperInfo.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/BigSegments/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/ComponentsImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataModelDependencies.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/FeatureRequestor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/FileDataSource.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/FlagFileParser.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/FlagFileReader.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/PollingDataSource.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataSources/StreamingDataSource.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/DataStoreSorter.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/Bucketing.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/Evaluator.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Evaluation/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Events/EventFactory.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Events/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/FlagTrackerImpl.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Hooks/Executor/Executor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/LRUCacheSet.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/LogNames.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/Clause.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/FeatureFlag.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/Operator.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/Segment.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/SemanticVersion.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/Model/Serialization.cs (100%) rename {packagess => pkgs}/sdk/server/src/Internal/NamespaceReadme.md (100%) rename {packagess => pkgs}/sdk/server/src/Internal/StandardEndpoints.cs (100%) rename {packagess => pkgs}/sdk/server/src/LaunchDarkly.ServerSdk.csproj (100%) rename {packagess => pkgs}/sdk/server/src/LdClient.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/IMigration.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/Migration.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationExecution.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationExecutionMode.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationMethod.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationOpTracker.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationOperation.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationOrigin.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationResult.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationSerialOrder.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationStage.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationVariation.cs (100%) rename {packagess => pkgs}/sdk/server/src/Migrations/MigrationWriteResult.cs (100%) rename {packagess => pkgs}/sdk/server/src/NuGet/config.install.xdt (100%) rename {packagess => pkgs}/sdk/server/src/NuGet/config.uninstall.xdt (100%) rename {packagess => pkgs}/sdk/server/src/Properties/AssemblyInfo.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/DataStoreTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/EventProcessorTypes.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/HookConfiguration.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/HttpConfiguration.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IBigSegmentStore.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IComponentConfigurer.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IDataSource.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IDataSourceUpdates.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IDataStore.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IDataStoreUpdates.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IDiagnosticDescription.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IEventProcessor.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IPersistentDataStore.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/LdClientContext.cs (100%) rename {packagess => pkgs}/sdk/server/src/Subsystems/LoggingConfiguration.cs (100%) rename {packagess => pkgs}/sdk/server/src/app.config (100%) rename {packagess => pkgs}/sdk/server/test/AssertHelpers.cs (100%) rename {packagess => pkgs}/sdk/server/test/BaseTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/ConfigurationTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/DataModelTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/FeatureFlagsStateTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Hooks/EvaluationSeriesTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Hooks/HookTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/ILdClientExtensionsTests.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/EventProcessorBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/TestDataTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Integrations/TestDataWithClientTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/BucketingTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/FlagTrackerImplTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/LRUCacheSetTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Model/DataSetBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Model/OperatorTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Model/SegmentBuilder.cs (100%) rename {packagess => pkgs}/sdk/server/test/Internal/Model/SemanticVersionTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj (100%) rename {packagess => pkgs}/sdk/server/test/LdClientBigSegmentsTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientDiagnosticEventTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientEndToEndTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientEvaluationTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientEventTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientHooksTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientListenersTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientOfflineTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientServiceEndpointsTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/LdClientTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Migrations/BasicMigrationExecutor.cs (100%) rename {packagess => pkgs}/sdk/server/test/Migrations/MigrationBuilderTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Migrations/MigrationOpTrackerTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Migrations/MigrationStageTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/Migrations/MigrationTest.cs (100%) rename {packagess => pkgs}/sdk/server/test/MockComponents.cs (100%) rename {packagess => pkgs}/sdk/server/test/MockResponses.cs (100%) rename {packagess => pkgs}/sdk/server/test/TestFiles/all-properties.json (100%) rename {packagess => pkgs}/sdk/server/test/TestFiles/all-properties.yml (100%) rename {packagess => pkgs}/sdk/server/test/TestFiles/bad-file.txt (100%) rename {packagess => pkgs}/sdk/server/test/TestFiles/flag-only.json (100%) rename {packagess => pkgs}/sdk/server/test/TestFiles/segment-only.json (100%) rename {packagess => pkgs}/sdk/server/test/TestHttpUtils.cs (100%) rename {packagess => pkgs}/sdk/server/test/TestLoggingHelpers.cs (100%) rename {packagess => pkgs}/sdk/server/test/TestUtils.cs (100%) rename {packagess => pkgs}/sdk/server/test/VariationMethodsDesc.cs (100%) rename {packagess => pkgs}/telemetry/docfx.json (100%) rename {packagess => pkgs}/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj (100%) rename {packagess => pkgs}/telemetry/src/Telemetry/TracingHook.cs (100%) rename {packagess => pkgs}/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj (88%) rename {packagess => pkgs}/telemetry/test/Telemetry/TracingHookTests.cs (100%) diff --git a/.github/actions/full-release/action.yml b/.github/actions/full-release/action.yml index 7ea3d67c..31676d9c 100644 --- a/.github/actions/full-release/action.yml +++ b/.github/actions/full-release/action.yml @@ -46,7 +46,7 @@ runs: - name: Release build uses: ./.github/actions/build-release with: - project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj + project_file: pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj - name: Sign DLLs uses: launchdarkly/gh-actions/actions/sign-dlls@sign-dlls-v1.0.0 diff --git a/.github/workflows/manual-publish.yml b/.github/workflows/manual-publish.yml new file mode 100644 index 00000000..d4b5eba2 --- /dev/null +++ b/.github/workflows/manual-publish.yml @@ -0,0 +1,43 @@ +name: Manual Publish Package +on: + workflow_dispatch: + inputs: + pkg_name: + description: 'The package to publish' + required: true + type: choice + options: + - LaunchDarkly.ServerSdk + - LaunchDarkly.ServerSdk.Telemetry + dry_run: + description: 'Is this a dry run. If so no package will be published.' + type: boolean + required: true + +jobs: + build: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: write + steps: + - uses: ./.github/workflows/full-release.yml + if: ${{ inputs.pkg_name == 'LaunchDarkly.ServerSdk' }} + with: + workspace_path: 'pkgs/sdk/server' + project_file: 'pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj' + test_project_file: 'pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj' + build_output_path: 'pkgs/sdk/server/src/bin/Release/' + dll_name: 'LaunchDarkly.ServerSdk.dll' + dry_run: false + +#TODO: consider using inputs.pkg_name in place of those strings in the parameters + - uses: ./.github/workflows/full-release.yml + if: ${{ inputs.pkg_name == 'LaunchDarkly.ServerSdk.Telemetry' }} + with: + workspace_path: 'pkgs/telemetry' + project_file: 'pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj' + test_project_file: 'pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj' + build_output_path: 'pkgs/telemetry/src/bin/Release/' + dll_name: 'LaunchDarkly.ServerSdk.Telemetry.dll' + dry_run: false diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 36be90a7..82368f1f 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -48,8 +48,8 @@ jobs: name: Build and Test uses: ./.github/actions/ci with: - project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj - test_project_file: packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj + project_file: pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj + test_project_file: pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj token: ${{ secrets.GITHUB_TOKEN }} - id: build-docs diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 9370c60c..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Publish Package -on: - workflow_dispatch: - inputs: - workspace_path: - description: 'Path to the workspace being released.' - required: true - type: string - project_file: - description: 'Path to the project file.' - required: true - type: string - test_project_file: - description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' - required: false - type: string - build_output_path: - description: 'Build output path.' - required: true - type: string - dll_name: - description: 'Build output dll name.' - required: true - type: string - dry_run: - description: 'Is this a dry run. If so no package will be published.' - required: true - type: boolean - workflow_call: - inputs: - workspace_path: - description: 'Path to the workspace being released.' - required: true - type: string - project_file: - description: 'Path to the project file.' - required: true - type: string - test_project_file: - description: 'Path to the test project file. If provided, run unit tests, otherwise skip them.' - required: false - type: string - build_output_path: - description: 'Build output path.' - required: true - type: string - dll_name: - description: 'Build output dll name.' - required: true - type: string - dry_run: - description: 'Is this a dry run. If so no package will be published.' - type: boolean - required: true - -jobs: - build: - runs-on: ubuntu-latest - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v4 - - name: CI check - uses: ./.github/actions/ci - with: - project_file: ${{ inputs.project_file }} - test_project_file: ${{ inputs.test_project_file }} - - - uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.1.0 - name: Get secrets - with: - aws_assume_role: ${{ vars.AWS_ROLE_ARN }} - ssm_parameter_pairs: '/production/common/releasing/digicert/host = DIGICERT_HOST, - /production/common/releasing/digicert/api_key = DIGICERT_API_KEY, - /production/common/releasing/digicert/client_cert_file_b64 = DIGICERT_CLIENT_CERT_FILE_B64, - /production/common/releasing/digicert/client_cert_password = DIGICERT_CLIENT_CERT_PASSWORD, - /production/common/releasing/digicert/code_signing_cert_sha1_hash = DIGICERT_CODE_SIGNING_CERT_SHA1_HASH' - s3_path_pairs: 'launchdarkly-releaser/dotnet/LaunchDarkly.snk = LaunchDarkly.snk' - - - name: Release build - uses: ./.github/actions/build-release - with: - project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj - - - name: Sign DLLs - uses: launchdarkly/gh-actions/actions/sign-dlls@sign-dlls-v1.0.0 - with: - build_output_path: ${{ inputs.build_output_path }} - dll_name: ${{ inputs.dll_name }} - - - name: Publish Nupkg - uses: ./.github/actions/publish-package - with: - project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj - dry_run: ${{ inputs.dry_run }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index cae3bd48..6fe3f41a 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -10,8 +10,8 @@ jobs: runs-on: ubuntu-latest outputs: - package-sdk-server-released: ${{ steps.release.outputs['packagess/sdk/server--release_created'] }} - package-sdk-server-telemetry-released: ${{ steps.release.outputs['packagess/telemetry--release_created'] }} + package-sdk-server-released: ${{ steps.release.outputs['pkgs/sdk/server--release_created'] }} + package-sdk-server-telemetry-released: ${{ steps.release.outputs['pkgs/telemetry--release_created'] }} steps: - uses: google-github-actions/release-please-action@v4 @@ -31,12 +31,11 @@ jobs: steps: - uses: ./.github/workflows/full-release.yml with: - workspace_path: 'packagess/sdk/server' - project_file: 'packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj' - test_project_file: 'packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj' - build_output_path: 'packagess/sdk/server/src/bin/Release/' + workspace_path: 'pkgs/sdk/server' + project_file: 'pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj' + test_project_file: 'pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj' + build_output_path: 'pkgs/sdk/server/src/bin/Release/' dll_name: 'LaunchDarkly.ServerSdk.dll' - run_tests: true dry_run: false release-telemetry: @@ -50,10 +49,10 @@ jobs: steps: - uses: ./.github/workflows/full-release.yml with: - workspace_path: 'packagess/telemetry' - project_file: 'packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj' - test_project_file: 'packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj' - build_output_path: 'packagess/telemetry/src/bin/Release/' + workspace_path: 'pkgs/telemetry' + name: 'LaunchDarkly.ServerSdk.Telemetry' + project_file: 'pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj' + test_project_file: 'pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj' + build_output_path: 'pkgs/telemetry/src/bin/Release/' dll_name: 'LaunchDarkly.ServerSdk.Telemetry.dll' - run_tests: true dry_run: false diff --git a/.github/workflows/sdk-server-ci.yml b/.github/workflows/sdk-server-ci.yml index 51672718..8e1a67fa 100644 --- a/.github/workflows/sdk-server-ci.yml +++ b/.github/workflows/sdk-server-ci.yml @@ -20,8 +20,8 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/ci with: - project_file: packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj - test_project_file: packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj + project_file: pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj + test_project_file: pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj token: ${{ secrets.GITHUB_TOKEN }} # Running contract tests on windows is currently cumbersome. @@ -29,10 +29,10 @@ jobs: - uses: ./.github/actions/contract-tests if: ${{ matrix.os != 'windows-latest' }} with: - service_project_file: packagess/sdk/server/contract-tests/TestService.csproj - service_dll_file: packagess/sdk/server/contract-tests/bin/debug/net6.0/ContractTestService.dll + service_project_file: pkgs/sdk/server/contract-tests/TestService.csproj + service_dll_file: pkgs/sdk/server/contract-tests/bin/debug/net6.0/ContractTestService.dll token: ${{ secrets.GITHUB_TOKEN }} - uses: ./.github/actions/build-docs with: - workspace_path: packagess/sdk/server + workspace_path: pkgs/sdk/server diff --git a/.github/workflows/telemetry.yml b/.github/workflows/telemetry-ci.yml similarity index 71% rename from .github/workflows/telemetry.yml rename to .github/workflows/telemetry-ci.yml index bb5d8f19..09bbcd35 100644 --- a/.github/workflows/telemetry.yml +++ b/.github/workflows/telemetry-ci.yml @@ -20,10 +20,10 @@ jobs: - uses: actions/checkout@v4 - uses: ./.github/actions/ci with: - project_file: packages/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj - test_project_file: packages/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj + project_file: pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj + test_project_file: pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj token: ${{ secrets.GITHUB_TOKEN }} - uses: ./.github/actions/build-docs with: - workspace_path: packagess/telemetry + workspace_path: pkgs/telemetry diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 56c2f8b0..0242b38c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "packagess/sdk/server": "8.3.0", - "packagess/telemetry": "0.1.0" + "pkgs/sdk/server": "8.3.0", + "pkgs/telemetry": "0.1.0" } diff --git a/LaunchDarkly.ServerSdk.sln b/LaunchDarkly.ServerSdk.sln index f7fccda3..03982709 100644 --- a/LaunchDarkly.ServerSdk.sln +++ b/LaunchDarkly.ServerSdk.sln @@ -3,15 +3,21 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.26730.16 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packagess", "packagess", "{E562CB1C-C0F4-475D-A741-C677F31DDE32}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pkgs", "pkgs", "{2E4B6BA2-5003-4461-B138-BF3F98B89AE7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk", "sdk", "{69C82937-8CA8-4FF8-944B-79F5BE0BB765}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk", "sdk", "{0A3F3CFA-1CBB-49BD-BCD3-4A53E3D08665}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "server", "server", "{68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "server", "server", "{FDA973CE-26F2-4745-AF19-0873F170C4CF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk", "packagess\sdk\server\src\LaunchDarkly.ServerSdk.csproj", "{3B9D9789-6F89-4842-9DD5-61AF8C046E5D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk", "pkgs\sdk\server\src\LaunchDarkly.ServerSdk.csproj", "{25B32139-B47A-42C9-9277-E65FAD6A448A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk.Tests", "packagess\sdk\server\test\LaunchDarkly.ServerSdk.Tests.csproj", "{0DD72959-DB80-4C30-B397-806F94969DB7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk.Tests", "pkgs\sdk\server\test\LaunchDarkly.ServerSdk.Tests.csproj", "{978CC958-FE5A-43A3-A228-03C2DBC94117}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "telemetry", "telemetry", "{7A984A5D-0C83-42FA-8BF7-DCA2441F62DA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk.Telemetry", "pkgs\telemetry\src\LaunchDarkly.ServerSdk.Telemetry.csproj", "{35014C04-26CE-43B0-933D-35D80CF0E6B8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LaunchDarkly.ServerSdk.Telemetry.Tests", "pkgs\telemetry\test\LaunchDarkly.ServerSdk.Telemetry.Tests.csproj", "{71299584-BF0D-48A4-B2E1-D6292036D48D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -19,14 +25,22 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B9D9789-6F89-4842-9DD5-61AF8C046E5D}.Release|Any CPU.Build.0 = Release|Any CPU - {0DD72959-DB80-4C30-B397-806F94969DB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DD72959-DB80-4C30-B397-806F94969DB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DD72959-DB80-4C30-B397-806F94969DB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DD72959-DB80-4C30-B397-806F94969DB7}.Release|Any CPU.Build.0 = Release|Any CPU + {25B32139-B47A-42C9-9277-E65FAD6A448A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25B32139-B47A-42C9-9277-E65FAD6A448A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25B32139-B47A-42C9-9277-E65FAD6A448A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25B32139-B47A-42C9-9277-E65FAD6A448A}.Release|Any CPU.Build.0 = Release|Any CPU + {978CC958-FE5A-43A3-A228-03C2DBC94117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {978CC958-FE5A-43A3-A228-03C2DBC94117}.Debug|Any CPU.Build.0 = Debug|Any CPU + {978CC958-FE5A-43A3-A228-03C2DBC94117}.Release|Any CPU.ActiveCfg = Release|Any CPU + {978CC958-FE5A-43A3-A228-03C2DBC94117}.Release|Any CPU.Build.0 = Release|Any CPU + {35014C04-26CE-43B0-933D-35D80CF0E6B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35014C04-26CE-43B0-933D-35D80CF0E6B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35014C04-26CE-43B0-933D-35D80CF0E6B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35014C04-26CE-43B0-933D-35D80CF0E6B8}.Release|Any CPU.Build.0 = Release|Any CPU + {71299584-BF0D-48A4-B2E1-D6292036D48D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71299584-BF0D-48A4-B2E1-D6292036D48D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71299584-BF0D-48A4-B2E1-D6292036D48D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71299584-BF0D-48A4-B2E1-D6292036D48D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -35,9 +49,12 @@ Global SolutionGuid = {D7F58FE1-D8E9-46EB-AE7F-4B5A388418AC} EndGlobalSection GlobalSection(NestedProjects) = preSolution - {69C82937-8CA8-4FF8-944B-79F5BE0BB765} = {E562CB1C-C0F4-475D-A741-C677F31DDE32} - {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} = {69C82937-8CA8-4FF8-944B-79F5BE0BB765} - {3B9D9789-6F89-4842-9DD5-61AF8C046E5D} = {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} - {0DD72959-DB80-4C30-B397-806F94969DB7} = {68F8E8ED-6A60-48C3-A0C5-74F34C6CDF5C} + {0A3F3CFA-1CBB-49BD-BCD3-4A53E3D08665} = {2E4B6BA2-5003-4461-B138-BF3F98B89AE7} + {FDA973CE-26F2-4745-AF19-0873F170C4CF} = {0A3F3CFA-1CBB-49BD-BCD3-4A53E3D08665} + {25B32139-B47A-42C9-9277-E65FAD6A448A} = {FDA973CE-26F2-4745-AF19-0873F170C4CF} + {978CC958-FE5A-43A3-A228-03C2DBC94117} = {FDA973CE-26F2-4745-AF19-0873F170C4CF} + {7A984A5D-0C83-42FA-8BF7-DCA2441F62DA} = {2E4B6BA2-5003-4461-B138-BF3F98B89AE7} + {35014C04-26CE-43B0-933D-35D80CF0E6B8} = {7A984A5D-0C83-42FA-8BF7-DCA2441F62DA} + {71299584-BF0D-48A4-B2E1-D6292036D48D} = {7A984A5D-0C83-42FA-8BF7-DCA2441F62DA} EndGlobalSection EndGlobal diff --git a/packagess/sdk/server/contract-tests/BigSegmentStoreFixture.cs b/pkgs/sdk/server/contract-tests/BigSegmentStoreFixture.cs similarity index 100% rename from packagess/sdk/server/contract-tests/BigSegmentStoreFixture.cs rename to pkgs/sdk/server/contract-tests/BigSegmentStoreFixture.cs diff --git a/packagess/sdk/server/contract-tests/CallbackRepresentations.cs b/pkgs/sdk/server/contract-tests/CallbackRepresentations.cs similarity index 100% rename from packagess/sdk/server/contract-tests/CallbackRepresentations.cs rename to pkgs/sdk/server/contract-tests/CallbackRepresentations.cs diff --git a/packagess/sdk/server/contract-tests/CallbackService.cs b/pkgs/sdk/server/contract-tests/CallbackService.cs similarity index 100% rename from packagess/sdk/server/contract-tests/CallbackService.cs rename to pkgs/sdk/server/contract-tests/CallbackService.cs diff --git a/packagess/sdk/server/contract-tests/README.md b/pkgs/sdk/server/contract-tests/README.md similarity index 100% rename from packagess/sdk/server/contract-tests/README.md rename to pkgs/sdk/server/contract-tests/README.md diff --git a/packagess/sdk/server/contract-tests/Representations.cs b/pkgs/sdk/server/contract-tests/Representations.cs similarity index 100% rename from packagess/sdk/server/contract-tests/Representations.cs rename to pkgs/sdk/server/contract-tests/Representations.cs diff --git a/packagess/sdk/server/contract-tests/SdkClientEntity.cs b/pkgs/sdk/server/contract-tests/SdkClientEntity.cs similarity index 100% rename from packagess/sdk/server/contract-tests/SdkClientEntity.cs rename to pkgs/sdk/server/contract-tests/SdkClientEntity.cs diff --git a/packagess/sdk/server/contract-tests/TestHook.cs b/pkgs/sdk/server/contract-tests/TestHook.cs similarity index 100% rename from packagess/sdk/server/contract-tests/TestHook.cs rename to pkgs/sdk/server/contract-tests/TestHook.cs diff --git a/packagess/sdk/server/contract-tests/TestService.cs b/pkgs/sdk/server/contract-tests/TestService.cs similarity index 100% rename from packagess/sdk/server/contract-tests/TestService.cs rename to pkgs/sdk/server/contract-tests/TestService.cs diff --git a/packagess/sdk/server/contract-tests/TestService.csproj b/pkgs/sdk/server/contract-tests/TestService.csproj similarity index 100% rename from packagess/sdk/server/contract-tests/TestService.csproj rename to pkgs/sdk/server/contract-tests/TestService.csproj diff --git a/packagess/sdk/server/contract-tests/TestService.sln b/pkgs/sdk/server/contract-tests/TestService.sln similarity index 100% rename from packagess/sdk/server/contract-tests/TestService.sln rename to pkgs/sdk/server/contract-tests/TestService.sln diff --git a/packagess/sdk/server/docfx.json b/pkgs/sdk/server/docfx.json similarity index 100% rename from packagess/sdk/server/docfx.json rename to pkgs/sdk/server/docfx.json diff --git a/packagess/sdk/server/docs-src/README.md b/pkgs/sdk/server/docs-src/README.md similarity index 100% rename from packagess/sdk/server/docs-src/README.md rename to pkgs/sdk/server/docs-src/README.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Json.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Integrations.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Interfaces.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.Subsystems.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.Server.md diff --git a/packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md b/pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md similarity index 100% rename from packagess/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md rename to pkgs/sdk/server/docs-src/namespaces/LaunchDarkly.Sdk.md diff --git a/packagess/sdk/server/src/Components.cs b/pkgs/sdk/server/src/Components.cs similarity index 100% rename from packagess/sdk/server/src/Components.cs rename to pkgs/sdk/server/src/Components.cs diff --git a/packagess/sdk/server/src/Configuration.cs b/pkgs/sdk/server/src/Configuration.cs similarity index 100% rename from packagess/sdk/server/src/Configuration.cs rename to pkgs/sdk/server/src/Configuration.cs diff --git a/packagess/sdk/server/src/ConfigurationBuilder.cs b/pkgs/sdk/server/src/ConfigurationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/ConfigurationBuilder.cs rename to pkgs/sdk/server/src/ConfigurationBuilder.cs diff --git a/packagess/sdk/server/src/DataModel.cs b/pkgs/sdk/server/src/DataModel.cs similarity index 100% rename from packagess/sdk/server/src/DataModel.cs rename to pkgs/sdk/server/src/DataModel.cs diff --git a/packagess/sdk/server/src/FeatureFlagsState.cs b/pkgs/sdk/server/src/FeatureFlagsState.cs similarity index 100% rename from packagess/sdk/server/src/FeatureFlagsState.cs rename to pkgs/sdk/server/src/FeatureFlagsState.cs diff --git a/packagess/sdk/server/src/FlagsStateOption.cs b/pkgs/sdk/server/src/FlagsStateOption.cs similarity index 100% rename from packagess/sdk/server/src/FlagsStateOption.cs rename to pkgs/sdk/server/src/FlagsStateOption.cs diff --git a/packagess/sdk/server/src/Hooks/EvaluationSeriesContext.cs b/pkgs/sdk/server/src/Hooks/EvaluationSeriesContext.cs similarity index 100% rename from packagess/sdk/server/src/Hooks/EvaluationSeriesContext.cs rename to pkgs/sdk/server/src/Hooks/EvaluationSeriesContext.cs diff --git a/packagess/sdk/server/src/Hooks/Hook.cs b/pkgs/sdk/server/src/Hooks/Hook.cs similarity index 100% rename from packagess/sdk/server/src/Hooks/Hook.cs rename to pkgs/sdk/server/src/Hooks/Hook.cs diff --git a/packagess/sdk/server/src/Hooks/Method.cs b/pkgs/sdk/server/src/Hooks/Method.cs similarity index 100% rename from packagess/sdk/server/src/Hooks/Method.cs rename to pkgs/sdk/server/src/Hooks/Method.cs diff --git a/packagess/sdk/server/src/Hooks/SeriesDataBuilder.cs b/pkgs/sdk/server/src/Hooks/SeriesDataBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Hooks/SeriesDataBuilder.cs rename to pkgs/sdk/server/src/Hooks/SeriesDataBuilder.cs diff --git a/packagess/sdk/server/src/ILdClientExtensions.cs b/pkgs/sdk/server/src/ILdClientExtensions.cs similarity index 100% rename from packagess/sdk/server/src/ILdClientExtensions.cs rename to pkgs/sdk/server/src/ILdClientExtensions.cs diff --git a/packagess/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs b/pkgs/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs rename to pkgs/sdk/server/src/Integrations/BigSegmentsConfigurationBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/EventProcessorBuilder.cs b/pkgs/sdk/server/src/Integrations/EventProcessorBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/EventProcessorBuilder.cs rename to pkgs/sdk/server/src/Integrations/EventProcessorBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/FileData.cs b/pkgs/sdk/server/src/Integrations/FileData.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/FileData.cs rename to pkgs/sdk/server/src/Integrations/FileData.cs diff --git a/packagess/sdk/server/src/Integrations/FileDataSourceBuilder.cs b/pkgs/sdk/server/src/Integrations/FileDataSourceBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/FileDataSourceBuilder.cs rename to pkgs/sdk/server/src/Integrations/FileDataSourceBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/FileDataTypes.cs b/pkgs/sdk/server/src/Integrations/FileDataTypes.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/FileDataTypes.cs rename to pkgs/sdk/server/src/Integrations/FileDataTypes.cs diff --git a/packagess/sdk/server/src/Integrations/HookConfigurationBuilder.cs b/pkgs/sdk/server/src/Integrations/HookConfigurationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/HookConfigurationBuilder.cs rename to pkgs/sdk/server/src/Integrations/HookConfigurationBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/HttpConfigurationBuilder.cs b/pkgs/sdk/server/src/Integrations/HttpConfigurationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/HttpConfigurationBuilder.cs rename to pkgs/sdk/server/src/Integrations/HttpConfigurationBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs b/pkgs/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs rename to pkgs/sdk/server/src/Integrations/LoggingConfigurationBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs b/pkgs/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs rename to pkgs/sdk/server/src/Integrations/PersistentDataStoreBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/PollingDataSourceBuilder.cs b/pkgs/sdk/server/src/Integrations/PollingDataSourceBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/PollingDataSourceBuilder.cs rename to pkgs/sdk/server/src/Integrations/PollingDataSourceBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs b/pkgs/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs rename to pkgs/sdk/server/src/Integrations/ServiceEndpointsBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs b/pkgs/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs rename to pkgs/sdk/server/src/Integrations/StreamingDataSourceBuilder.cs diff --git a/packagess/sdk/server/src/Integrations/TestData.cs b/pkgs/sdk/server/src/Integrations/TestData.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/TestData.cs rename to pkgs/sdk/server/src/Integrations/TestData.cs diff --git a/packagess/sdk/server/src/Integrations/WrapperInfoBuilder.cs b/pkgs/sdk/server/src/Integrations/WrapperInfoBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Integrations/WrapperInfoBuilder.cs rename to pkgs/sdk/server/src/Integrations/WrapperInfoBuilder.cs diff --git a/packagess/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs b/pkgs/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs rename to pkgs/sdk/server/src/Interfaces/BigSegmentStoreStatus.cs diff --git a/packagess/sdk/server/src/Interfaces/DataSourceStatus.cs b/pkgs/sdk/server/src/Interfaces/DataSourceStatus.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/DataSourceStatus.cs rename to pkgs/sdk/server/src/Interfaces/DataSourceStatus.cs diff --git a/packagess/sdk/server/src/Interfaces/DataStoreStatus.cs b/pkgs/sdk/server/src/Interfaces/DataStoreStatus.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/DataStoreStatus.cs rename to pkgs/sdk/server/src/Interfaces/DataStoreStatus.cs diff --git a/packagess/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs b/pkgs/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs rename to pkgs/sdk/server/src/Interfaces/IBigSegmentStoreStatusProvider.cs diff --git a/packagess/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs b/pkgs/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs rename to pkgs/sdk/server/src/Interfaces/IDataSourceStatusProvider.cs diff --git a/packagess/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs b/pkgs/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs rename to pkgs/sdk/server/src/Interfaces/IDataStoreStatusProvider.cs diff --git a/packagess/sdk/server/src/Interfaces/IFlagTracker.cs b/pkgs/sdk/server/src/Interfaces/IFlagTracker.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/IFlagTracker.cs rename to pkgs/sdk/server/src/Interfaces/IFlagTracker.cs diff --git a/packagess/sdk/server/src/Interfaces/ILdClient.cs b/pkgs/sdk/server/src/Interfaces/ILdClient.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/ILdClient.cs rename to pkgs/sdk/server/src/Interfaces/ILdClient.cs diff --git a/packagess/sdk/server/src/Interfaces/ServiceEndpoints.cs b/pkgs/sdk/server/src/Interfaces/ServiceEndpoints.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/ServiceEndpoints.cs rename to pkgs/sdk/server/src/Interfaces/ServiceEndpoints.cs diff --git a/packagess/sdk/server/src/Interfaces/WrapperInfo.cs b/pkgs/sdk/server/src/Interfaces/WrapperInfo.cs similarity index 100% rename from packagess/sdk/server/src/Interfaces/WrapperInfo.cs rename to pkgs/sdk/server/src/Interfaces/WrapperInfo.cs diff --git a/packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs b/pkgs/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs rename to pkgs/sdk/server/src/Internal/BigSegments/BigSegmentStoreStatusProviderImpl.cs diff --git a/packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs b/pkgs/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs similarity index 100% rename from packagess/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs rename to pkgs/sdk/server/src/Internal/BigSegments/BigSegmentStoreWrapper.cs diff --git a/packagess/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs b/pkgs/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs similarity index 100% rename from packagess/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs rename to pkgs/sdk/server/src/Internal/BigSegments/BigSegmentsInternalTypes.cs diff --git a/packagess/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs b/pkgs/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs rename to pkgs/sdk/server/src/Internal/BigSegments/MembershipBuilder.cs diff --git a/packagess/sdk/server/src/Internal/BigSegments/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/BigSegments/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/BigSegments/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/BigSegments/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/ComponentsImpl.cs b/pkgs/sdk/server/src/Internal/ComponentsImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/ComponentsImpl.cs rename to pkgs/sdk/server/src/Internal/ComponentsImpl.cs diff --git a/packagess/sdk/server/src/Internal/DataModelDependencies.cs b/pkgs/sdk/server/src/Internal/DataModelDependencies.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataModelDependencies.cs rename to pkgs/sdk/server/src/Internal/DataModelDependencies.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs b/pkgs/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs rename to pkgs/sdk/server/src/Internal/DataSources/DataSourceOutageTracker.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs b/pkgs/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs rename to pkgs/sdk/server/src/Internal/DataSources/DataSourceStatusProviderImpl.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs b/pkgs/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs rename to pkgs/sdk/server/src/Internal/DataSources/DataSourceUpdatesImpl.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/FeatureRequestor.cs b/pkgs/sdk/server/src/Internal/DataSources/FeatureRequestor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/FeatureRequestor.cs rename to pkgs/sdk/server/src/Internal/DataSources/FeatureRequestor.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/FileDataSource.cs b/pkgs/sdk/server/src/Internal/DataSources/FileDataSource.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/FileDataSource.cs rename to pkgs/sdk/server/src/Internal/DataSources/FileDataSource.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/FlagFileParser.cs b/pkgs/sdk/server/src/Internal/DataSources/FlagFileParser.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/FlagFileParser.cs rename to pkgs/sdk/server/src/Internal/DataSources/FlagFileParser.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/FlagFileReader.cs b/pkgs/sdk/server/src/Internal/DataSources/FlagFileReader.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/FlagFileReader.cs rename to pkgs/sdk/server/src/Internal/DataSources/FlagFileReader.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs b/pkgs/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs rename to pkgs/sdk/server/src/Internal/DataSources/IFeatureRequestor.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/DataSources/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/DataSources/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/DataSources/PollingDataSource.cs b/pkgs/sdk/server/src/Internal/DataSources/PollingDataSource.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/PollingDataSource.cs rename to pkgs/sdk/server/src/Internal/DataSources/PollingDataSource.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs b/pkgs/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs rename to pkgs/sdk/server/src/Internal/DataSources/StreamProcessorEvents.cs diff --git a/packagess/sdk/server/src/Internal/DataSources/StreamingDataSource.cs b/pkgs/sdk/server/src/Internal/DataSources/StreamingDataSource.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataSources/StreamingDataSource.cs rename to pkgs/sdk/server/src/Internal/DataSources/StreamingDataSource.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs b/pkgs/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs rename to pkgs/sdk/server/src/Internal/DataStores/DataStoreCacheConfig.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/DataStoreSorter.cs b/pkgs/sdk/server/src/Internal/DataStores/DataStoreSorter.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/DataStoreSorter.cs rename to pkgs/sdk/server/src/Internal/DataStores/DataStoreSorter.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs b/pkgs/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs rename to pkgs/sdk/server/src/Internal/DataStores/DataStoreStatusProviderImpl.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs b/pkgs/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs rename to pkgs/sdk/server/src/Internal/DataStores/DataStoreUpdatesImpl.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs b/pkgs/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs rename to pkgs/sdk/server/src/Internal/DataStores/InMemoryDataStore.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/DataStores/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/DataStores/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs b/pkgs/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs rename to pkgs/sdk/server/src/Internal/DataStores/PersistentDataStoreStatusManager.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs b/pkgs/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs rename to pkgs/sdk/server/src/Internal/DataStores/PersistentStoreAsyncAdapter.cs diff --git a/packagess/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs b/pkgs/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs similarity index 100% rename from packagess/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs rename to pkgs/sdk/server/src/Internal/DataStores/PersistentStoreWrapper.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/Bucketing.cs b/pkgs/sdk/server/src/Internal/Evaluation/Bucketing.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/Bucketing.cs rename to pkgs/sdk/server/src/Internal/Evaluation/Bucketing.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/Evaluator.cs b/pkgs/sdk/server/src/Internal/Evaluation/Evaluator.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/Evaluator.cs rename to pkgs/sdk/server/src/Internal/Evaluation/Evaluator.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs b/pkgs/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs rename to pkgs/sdk/server/src/Internal/Evaluation/EvaluatorClause.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs b/pkgs/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs rename to pkgs/sdk/server/src/Internal/Evaluation/EvaluatorSegment.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs b/pkgs/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs rename to pkgs/sdk/server/src/Internal/Evaluation/EvaluatorTarget.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs b/pkgs/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs rename to pkgs/sdk/server/src/Internal/Evaluation/EvaluatorTypes.cs diff --git a/packagess/sdk/server/src/Internal/Evaluation/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/Evaluation/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/Evaluation/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/Evaluation/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs b/pkgs/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs rename to pkgs/sdk/server/src/Internal/Events/DefaultContextDeduplicator.cs diff --git a/packagess/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs b/pkgs/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs rename to pkgs/sdk/server/src/Internal/Events/DefaultEventProcessorWrapper.cs diff --git a/packagess/sdk/server/src/Internal/Events/EventFactory.cs b/pkgs/sdk/server/src/Internal/Events/EventFactory.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Events/EventFactory.cs rename to pkgs/sdk/server/src/Internal/Events/EventFactory.cs diff --git a/packagess/sdk/server/src/Internal/Events/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/Events/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/Events/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/Events/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs b/pkgs/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs rename to pkgs/sdk/server/src/Internal/Events/ServerDiagnosticStore.cs diff --git a/packagess/sdk/server/src/Internal/FlagTrackerImpl.cs b/pkgs/sdk/server/src/Internal/FlagTrackerImpl.cs similarity index 100% rename from packagess/sdk/server/src/Internal/FlagTrackerImpl.cs rename to pkgs/sdk/server/src/Internal/FlagTrackerImpl.cs diff --git a/packagess/sdk/server/src/Internal/Hooks/Executor/Executor.cs b/pkgs/sdk/server/src/Internal/Hooks/Executor/Executor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Hooks/Executor/Executor.cs rename to pkgs/sdk/server/src/Internal/Hooks/Executor/Executor.cs diff --git a/packagess/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs b/pkgs/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs rename to pkgs/sdk/server/src/Internal/Hooks/Executor/NoopExecutor.cs diff --git a/packagess/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs b/pkgs/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs rename to pkgs/sdk/server/src/Internal/Hooks/Interfaces/IHookExecutor.cs diff --git a/packagess/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs b/pkgs/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs rename to pkgs/sdk/server/src/Internal/Hooks/Interfaces/IStageExecutor.cs diff --git a/packagess/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs b/pkgs/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs rename to pkgs/sdk/server/src/Internal/Hooks/Series/EvaluationSeries.cs diff --git a/packagess/sdk/server/src/Internal/LRUCacheSet.cs b/pkgs/sdk/server/src/Internal/LRUCacheSet.cs similarity index 100% rename from packagess/sdk/server/src/Internal/LRUCacheSet.cs rename to pkgs/sdk/server/src/Internal/LRUCacheSet.cs diff --git a/packagess/sdk/server/src/Internal/LogNames.cs b/pkgs/sdk/server/src/Internal/LogNames.cs similarity index 100% rename from packagess/sdk/server/src/Internal/LogNames.cs rename to pkgs/sdk/server/src/Internal/LogNames.cs diff --git a/packagess/sdk/server/src/Internal/Model/Clause.cs b/pkgs/sdk/server/src/Internal/Model/Clause.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/Clause.cs rename to pkgs/sdk/server/src/Internal/Model/Clause.cs diff --git a/packagess/sdk/server/src/Internal/Model/FeatureFlag.cs b/pkgs/sdk/server/src/Internal/Model/FeatureFlag.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/FeatureFlag.cs rename to pkgs/sdk/server/src/Internal/Model/FeatureFlag.cs diff --git a/packagess/sdk/server/src/Internal/Model/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/Model/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/Model/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/Model/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/Model/Operator.cs b/pkgs/sdk/server/src/Internal/Model/Operator.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/Operator.cs rename to pkgs/sdk/server/src/Internal/Model/Operator.cs diff --git a/packagess/sdk/server/src/Internal/Model/Segment.cs b/pkgs/sdk/server/src/Internal/Model/Segment.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/Segment.cs rename to pkgs/sdk/server/src/Internal/Model/Segment.cs diff --git a/packagess/sdk/server/src/Internal/Model/SemanticVersion.cs b/pkgs/sdk/server/src/Internal/Model/SemanticVersion.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/SemanticVersion.cs rename to pkgs/sdk/server/src/Internal/Model/SemanticVersion.cs diff --git a/packagess/sdk/server/src/Internal/Model/Serialization.cs b/pkgs/sdk/server/src/Internal/Model/Serialization.cs similarity index 100% rename from packagess/sdk/server/src/Internal/Model/Serialization.cs rename to pkgs/sdk/server/src/Internal/Model/Serialization.cs diff --git a/packagess/sdk/server/src/Internal/NamespaceReadme.md b/pkgs/sdk/server/src/Internal/NamespaceReadme.md similarity index 100% rename from packagess/sdk/server/src/Internal/NamespaceReadme.md rename to pkgs/sdk/server/src/Internal/NamespaceReadme.md diff --git a/packagess/sdk/server/src/Internal/StandardEndpoints.cs b/pkgs/sdk/server/src/Internal/StandardEndpoints.cs similarity index 100% rename from packagess/sdk/server/src/Internal/StandardEndpoints.cs rename to pkgs/sdk/server/src/Internal/StandardEndpoints.cs diff --git a/packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj b/pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj similarity index 100% rename from packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj rename to pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj diff --git a/packagess/sdk/server/src/LdClient.cs b/pkgs/sdk/server/src/LdClient.cs similarity index 100% rename from packagess/sdk/server/src/LdClient.cs rename to pkgs/sdk/server/src/LdClient.cs diff --git a/packagess/sdk/server/src/Migrations/IMigration.cs b/pkgs/sdk/server/src/Migrations/IMigration.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/IMigration.cs rename to pkgs/sdk/server/src/Migrations/IMigration.cs diff --git a/packagess/sdk/server/src/Migrations/Migration.cs b/pkgs/sdk/server/src/Migrations/Migration.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/Migration.cs rename to pkgs/sdk/server/src/Migrations/Migration.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationBuilder.cs b/pkgs/sdk/server/src/Migrations/MigrationBuilder.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationBuilder.cs rename to pkgs/sdk/server/src/Migrations/MigrationBuilder.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationExecution.cs b/pkgs/sdk/server/src/Migrations/MigrationExecution.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationExecution.cs rename to pkgs/sdk/server/src/Migrations/MigrationExecution.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationExecutionMode.cs b/pkgs/sdk/server/src/Migrations/MigrationExecutionMode.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationExecutionMode.cs rename to pkgs/sdk/server/src/Migrations/MigrationExecutionMode.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationMethod.cs b/pkgs/sdk/server/src/Migrations/MigrationMethod.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationMethod.cs rename to pkgs/sdk/server/src/Migrations/MigrationMethod.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationOpTracker.cs b/pkgs/sdk/server/src/Migrations/MigrationOpTracker.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationOpTracker.cs rename to pkgs/sdk/server/src/Migrations/MigrationOpTracker.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationOperation.cs b/pkgs/sdk/server/src/Migrations/MigrationOperation.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationOperation.cs rename to pkgs/sdk/server/src/Migrations/MigrationOperation.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationOrigin.cs b/pkgs/sdk/server/src/Migrations/MigrationOrigin.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationOrigin.cs rename to pkgs/sdk/server/src/Migrations/MigrationOrigin.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationResult.cs b/pkgs/sdk/server/src/Migrations/MigrationResult.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationResult.cs rename to pkgs/sdk/server/src/Migrations/MigrationResult.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationSerialOrder.cs b/pkgs/sdk/server/src/Migrations/MigrationSerialOrder.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationSerialOrder.cs rename to pkgs/sdk/server/src/Migrations/MigrationSerialOrder.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationStage.cs b/pkgs/sdk/server/src/Migrations/MigrationStage.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationStage.cs rename to pkgs/sdk/server/src/Migrations/MigrationStage.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationVariation.cs b/pkgs/sdk/server/src/Migrations/MigrationVariation.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationVariation.cs rename to pkgs/sdk/server/src/Migrations/MigrationVariation.cs diff --git a/packagess/sdk/server/src/Migrations/MigrationWriteResult.cs b/pkgs/sdk/server/src/Migrations/MigrationWriteResult.cs similarity index 100% rename from packagess/sdk/server/src/Migrations/MigrationWriteResult.cs rename to pkgs/sdk/server/src/Migrations/MigrationWriteResult.cs diff --git a/packagess/sdk/server/src/NuGet/config.install.xdt b/pkgs/sdk/server/src/NuGet/config.install.xdt similarity index 100% rename from packagess/sdk/server/src/NuGet/config.install.xdt rename to pkgs/sdk/server/src/NuGet/config.install.xdt diff --git a/packagess/sdk/server/src/NuGet/config.uninstall.xdt b/pkgs/sdk/server/src/NuGet/config.uninstall.xdt similarity index 100% rename from packagess/sdk/server/src/NuGet/config.uninstall.xdt rename to pkgs/sdk/server/src/NuGet/config.uninstall.xdt diff --git a/packagess/sdk/server/src/Properties/AssemblyInfo.cs b/pkgs/sdk/server/src/Properties/AssemblyInfo.cs similarity index 100% rename from packagess/sdk/server/src/Properties/AssemblyInfo.cs rename to pkgs/sdk/server/src/Properties/AssemblyInfo.cs diff --git a/packagess/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs b/pkgs/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs rename to pkgs/sdk/server/src/Subsystems/BigSegmentStoreTypes.cs diff --git a/packagess/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs b/pkgs/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs rename to pkgs/sdk/server/src/Subsystems/BigSegmentsConfiguration.cs diff --git a/packagess/sdk/server/src/Subsystems/DataStoreTypes.cs b/pkgs/sdk/server/src/Subsystems/DataStoreTypes.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/DataStoreTypes.cs rename to pkgs/sdk/server/src/Subsystems/DataStoreTypes.cs diff --git a/packagess/sdk/server/src/Subsystems/EventProcessorTypes.cs b/pkgs/sdk/server/src/Subsystems/EventProcessorTypes.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/EventProcessorTypes.cs rename to pkgs/sdk/server/src/Subsystems/EventProcessorTypes.cs diff --git a/packagess/sdk/server/src/Subsystems/HookConfiguration.cs b/pkgs/sdk/server/src/Subsystems/HookConfiguration.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/HookConfiguration.cs rename to pkgs/sdk/server/src/Subsystems/HookConfiguration.cs diff --git a/packagess/sdk/server/src/Subsystems/HttpConfiguration.cs b/pkgs/sdk/server/src/Subsystems/HttpConfiguration.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/HttpConfiguration.cs rename to pkgs/sdk/server/src/Subsystems/HttpConfiguration.cs diff --git a/packagess/sdk/server/src/Subsystems/IBigSegmentStore.cs b/pkgs/sdk/server/src/Subsystems/IBigSegmentStore.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IBigSegmentStore.cs rename to pkgs/sdk/server/src/Subsystems/IBigSegmentStore.cs diff --git a/packagess/sdk/server/src/Subsystems/IComponentConfigurer.cs b/pkgs/sdk/server/src/Subsystems/IComponentConfigurer.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IComponentConfigurer.cs rename to pkgs/sdk/server/src/Subsystems/IComponentConfigurer.cs diff --git a/packagess/sdk/server/src/Subsystems/IDataSource.cs b/pkgs/sdk/server/src/Subsystems/IDataSource.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IDataSource.cs rename to pkgs/sdk/server/src/Subsystems/IDataSource.cs diff --git a/packagess/sdk/server/src/Subsystems/IDataSourceUpdates.cs b/pkgs/sdk/server/src/Subsystems/IDataSourceUpdates.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IDataSourceUpdates.cs rename to pkgs/sdk/server/src/Subsystems/IDataSourceUpdates.cs diff --git a/packagess/sdk/server/src/Subsystems/IDataStore.cs b/pkgs/sdk/server/src/Subsystems/IDataStore.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IDataStore.cs rename to pkgs/sdk/server/src/Subsystems/IDataStore.cs diff --git a/packagess/sdk/server/src/Subsystems/IDataStoreUpdates.cs b/pkgs/sdk/server/src/Subsystems/IDataStoreUpdates.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IDataStoreUpdates.cs rename to pkgs/sdk/server/src/Subsystems/IDataStoreUpdates.cs diff --git a/packagess/sdk/server/src/Subsystems/IDiagnosticDescription.cs b/pkgs/sdk/server/src/Subsystems/IDiagnosticDescription.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IDiagnosticDescription.cs rename to pkgs/sdk/server/src/Subsystems/IDiagnosticDescription.cs diff --git a/packagess/sdk/server/src/Subsystems/IEventProcessor.cs b/pkgs/sdk/server/src/Subsystems/IEventProcessor.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IEventProcessor.cs rename to pkgs/sdk/server/src/Subsystems/IEventProcessor.cs diff --git a/packagess/sdk/server/src/Subsystems/IPersistentDataStore.cs b/pkgs/sdk/server/src/Subsystems/IPersistentDataStore.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IPersistentDataStore.cs rename to pkgs/sdk/server/src/Subsystems/IPersistentDataStore.cs diff --git a/packagess/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs b/pkgs/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs rename to pkgs/sdk/server/src/Subsystems/IPersistentDataStoreAsync.cs diff --git a/packagess/sdk/server/src/Subsystems/LdClientContext.cs b/pkgs/sdk/server/src/Subsystems/LdClientContext.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/LdClientContext.cs rename to pkgs/sdk/server/src/Subsystems/LdClientContext.cs diff --git a/packagess/sdk/server/src/Subsystems/LoggingConfiguration.cs b/pkgs/sdk/server/src/Subsystems/LoggingConfiguration.cs similarity index 100% rename from packagess/sdk/server/src/Subsystems/LoggingConfiguration.cs rename to pkgs/sdk/server/src/Subsystems/LoggingConfiguration.cs diff --git a/packagess/sdk/server/src/app.config b/pkgs/sdk/server/src/app.config similarity index 100% rename from packagess/sdk/server/src/app.config rename to pkgs/sdk/server/src/app.config diff --git a/packagess/sdk/server/test/AssertHelpers.cs b/pkgs/sdk/server/test/AssertHelpers.cs similarity index 100% rename from packagess/sdk/server/test/AssertHelpers.cs rename to pkgs/sdk/server/test/AssertHelpers.cs diff --git a/packagess/sdk/server/test/BaseTest.cs b/pkgs/sdk/server/test/BaseTest.cs similarity index 100% rename from packagess/sdk/server/test/BaseTest.cs rename to pkgs/sdk/server/test/BaseTest.cs diff --git a/packagess/sdk/server/test/ConfigurationTest.cs b/pkgs/sdk/server/test/ConfigurationTest.cs similarity index 100% rename from packagess/sdk/server/test/ConfigurationTest.cs rename to pkgs/sdk/server/test/ConfigurationTest.cs diff --git a/packagess/sdk/server/test/DataModelTest.cs b/pkgs/sdk/server/test/DataModelTest.cs similarity index 100% rename from packagess/sdk/server/test/DataModelTest.cs rename to pkgs/sdk/server/test/DataModelTest.cs diff --git a/packagess/sdk/server/test/FeatureFlagsStateTest.cs b/pkgs/sdk/server/test/FeatureFlagsStateTest.cs similarity index 100% rename from packagess/sdk/server/test/FeatureFlagsStateTest.cs rename to pkgs/sdk/server/test/FeatureFlagsStateTest.cs diff --git a/packagess/sdk/server/test/Hooks/EvaluationSeriesTest.cs b/pkgs/sdk/server/test/Hooks/EvaluationSeriesTest.cs similarity index 100% rename from packagess/sdk/server/test/Hooks/EvaluationSeriesTest.cs rename to pkgs/sdk/server/test/Hooks/EvaluationSeriesTest.cs diff --git a/packagess/sdk/server/test/Hooks/HookTest.cs b/pkgs/sdk/server/test/Hooks/HookTest.cs similarity index 100% rename from packagess/sdk/server/test/Hooks/HookTest.cs rename to pkgs/sdk/server/test/Hooks/HookTest.cs diff --git a/packagess/sdk/server/test/ILdClientExtensionsTests.cs b/pkgs/sdk/server/test/ILdClientExtensionsTests.cs similarity index 100% rename from packagess/sdk/server/test/ILdClientExtensionsTests.cs rename to pkgs/sdk/server/test/ILdClientExtensionsTests.cs diff --git a/packagess/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs b/pkgs/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/BigSegmentsConfigurationBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/EventProcessorBuilderTest.cs b/pkgs/sdk/server/test/Integrations/EventProcessorBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/EventProcessorBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/EventProcessorBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs b/pkgs/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/FileDataSourceBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs b/pkgs/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/HttpConfigurationBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs b/pkgs/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/LoggingConfigurationBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs b/pkgs/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/PollingDataSourceBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs b/pkgs/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/ServiceEndpointsBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs b/pkgs/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs rename to pkgs/sdk/server/test/Integrations/StreamingDataSourceBuilderTest.cs diff --git a/packagess/sdk/server/test/Integrations/TestDataTest.cs b/pkgs/sdk/server/test/Integrations/TestDataTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/TestDataTest.cs rename to pkgs/sdk/server/test/Integrations/TestDataTest.cs diff --git a/packagess/sdk/server/test/Integrations/TestDataWithClientTest.cs b/pkgs/sdk/server/test/Integrations/TestDataWithClientTest.cs similarity index 100% rename from packagess/sdk/server/test/Integrations/TestDataWithClientTest.cs rename to pkgs/sdk/server/test/Integrations/TestDataWithClientTest.cs diff --git a/packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs b/pkgs/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs rename to pkgs/sdk/server/test/Internal/BigSegments/BigSegmentsStatusProviderImplTest.cs diff --git a/packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs b/pkgs/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs rename to pkgs/sdk/server/test/Internal/BigSegments/BigSegmentsStoreWrapperTest.cs diff --git a/packagess/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs b/pkgs/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs rename to pkgs/sdk/server/test/Internal/BigSegments/MembershipBuilderTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs b/pkgs/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/DataModelDependenciesTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs b/pkgs/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/DataSourceStatusProviderImplTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs b/pkgs/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/DataSourceUpdatesImplTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs b/pkgs/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/FileDataSourceTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs b/pkgs/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/FlagFileDataMergerTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs b/pkgs/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/PollingDataSourceTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs b/pkgs/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/StreamProcessorEventsTest.cs diff --git a/packagess/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs b/pkgs/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs rename to pkgs/sdk/server/test/Internal/DataSources/StreamingDataSourceTest.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs b/pkgs/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs rename to pkgs/sdk/server/test/Internal/DataStores/DataStoreSorterTest.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs b/pkgs/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs rename to pkgs/sdk/server/test/Internal/DataStores/DataStoreStatusProviderImplTest.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs b/pkgs/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs rename to pkgs/sdk/server/test/Internal/DataStores/DataStoreTestBase.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs b/pkgs/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs rename to pkgs/sdk/server/test/Internal/DataStores/DataStoreTestTypes.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs b/pkgs/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs rename to pkgs/sdk/server/test/Internal/DataStores/DataStoreUpdatesImplTest.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs b/pkgs/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs rename to pkgs/sdk/server/test/Internal/DataStores/InMemoryDataStoreTest.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs b/pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs rename to pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestAsync.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs b/pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs rename to pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestBase.cs diff --git a/packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs b/pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs similarity index 100% rename from packagess/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs rename to pkgs/sdk/server/test/Internal/DataStores/PersistentStoreWrapperTestSync.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/BucketingTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/BucketingTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/BucketingTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/BucketingTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorBigSegmentTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorClauseTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorFlagTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorPrerequisitesTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorRuleTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorSegmentMatchTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorTargetTest.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs b/pkgs/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs rename to pkgs/sdk/server/test/Internal/Evaluation/EvaluatorTestUtil.cs diff --git a/packagess/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs b/pkgs/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs rename to pkgs/sdk/server/test/Internal/Evaluation/RolloutRandomizationConsistencyTest.cs diff --git a/packagess/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs b/pkgs/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs rename to pkgs/sdk/server/test/Internal/Events/ServerDiagnosticStoreTest.cs diff --git a/packagess/sdk/server/test/Internal/FlagTrackerImplTest.cs b/pkgs/sdk/server/test/Internal/FlagTrackerImplTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/FlagTrackerImplTest.cs rename to pkgs/sdk/server/test/Internal/FlagTrackerImplTest.cs diff --git a/packagess/sdk/server/test/Internal/LRUCacheSetTest.cs b/pkgs/sdk/server/test/Internal/LRUCacheSetTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/LRUCacheSetTest.cs rename to pkgs/sdk/server/test/Internal/LRUCacheSetTest.cs diff --git a/packagess/sdk/server/test/Internal/Model/DataSetBuilder.cs b/pkgs/sdk/server/test/Internal/Model/DataSetBuilder.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Model/DataSetBuilder.cs rename to pkgs/sdk/server/test/Internal/Model/DataSetBuilder.cs diff --git a/packagess/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs b/pkgs/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs rename to pkgs/sdk/server/test/Internal/Model/FeatureFlagBuilder.cs diff --git a/packagess/sdk/server/test/Internal/Model/OperatorTest.cs b/pkgs/sdk/server/test/Internal/Model/OperatorTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Model/OperatorTest.cs rename to pkgs/sdk/server/test/Internal/Model/OperatorTest.cs diff --git a/packagess/sdk/server/test/Internal/Model/SegmentBuilder.cs b/pkgs/sdk/server/test/Internal/Model/SegmentBuilder.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Model/SegmentBuilder.cs rename to pkgs/sdk/server/test/Internal/Model/SegmentBuilder.cs diff --git a/packagess/sdk/server/test/Internal/Model/SemanticVersionTest.cs b/pkgs/sdk/server/test/Internal/Model/SemanticVersionTest.cs similarity index 100% rename from packagess/sdk/server/test/Internal/Model/SemanticVersionTest.cs rename to pkgs/sdk/server/test/Internal/Model/SemanticVersionTest.cs diff --git a/packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj b/pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj similarity index 100% rename from packagess/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj rename to pkgs/sdk/server/test/LaunchDarkly.ServerSdk.Tests.csproj diff --git a/packagess/sdk/server/test/LdClientBigSegmentsTest.cs b/pkgs/sdk/server/test/LdClientBigSegmentsTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientBigSegmentsTest.cs rename to pkgs/sdk/server/test/LdClientBigSegmentsTest.cs diff --git a/packagess/sdk/server/test/LdClientDiagnosticEventTest.cs b/pkgs/sdk/server/test/LdClientDiagnosticEventTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientDiagnosticEventTest.cs rename to pkgs/sdk/server/test/LdClientDiagnosticEventTest.cs diff --git a/packagess/sdk/server/test/LdClientEndToEndTest.cs b/pkgs/sdk/server/test/LdClientEndToEndTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientEndToEndTest.cs rename to pkgs/sdk/server/test/LdClientEndToEndTest.cs diff --git a/packagess/sdk/server/test/LdClientEvaluationTest.cs b/pkgs/sdk/server/test/LdClientEvaluationTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientEvaluationTest.cs rename to pkgs/sdk/server/test/LdClientEvaluationTest.cs diff --git a/packagess/sdk/server/test/LdClientEventTest.cs b/pkgs/sdk/server/test/LdClientEventTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientEventTest.cs rename to pkgs/sdk/server/test/LdClientEventTest.cs diff --git a/packagess/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs b/pkgs/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs rename to pkgs/sdk/server/test/LdClientExternalUpdatesOnlyTest.cs diff --git a/packagess/sdk/server/test/LdClientHooksTest.cs b/pkgs/sdk/server/test/LdClientHooksTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientHooksTest.cs rename to pkgs/sdk/server/test/LdClientHooksTest.cs diff --git a/packagess/sdk/server/test/LdClientListenersTest.cs b/pkgs/sdk/server/test/LdClientListenersTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientListenersTest.cs rename to pkgs/sdk/server/test/LdClientListenersTest.cs diff --git a/packagess/sdk/server/test/LdClientOfflineTest.cs b/pkgs/sdk/server/test/LdClientOfflineTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientOfflineTest.cs rename to pkgs/sdk/server/test/LdClientOfflineTest.cs diff --git a/packagess/sdk/server/test/LdClientServiceEndpointsTest.cs b/pkgs/sdk/server/test/LdClientServiceEndpointsTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientServiceEndpointsTest.cs rename to pkgs/sdk/server/test/LdClientServiceEndpointsTest.cs diff --git a/packagess/sdk/server/test/LdClientTest.cs b/pkgs/sdk/server/test/LdClientTest.cs similarity index 100% rename from packagess/sdk/server/test/LdClientTest.cs rename to pkgs/sdk/server/test/LdClientTest.cs diff --git a/packagess/sdk/server/test/Migrations/BasicMigrationExecutor.cs b/pkgs/sdk/server/test/Migrations/BasicMigrationExecutor.cs similarity index 100% rename from packagess/sdk/server/test/Migrations/BasicMigrationExecutor.cs rename to pkgs/sdk/server/test/Migrations/BasicMigrationExecutor.cs diff --git a/packagess/sdk/server/test/Migrations/MigrationBuilderTest.cs b/pkgs/sdk/server/test/Migrations/MigrationBuilderTest.cs similarity index 100% rename from packagess/sdk/server/test/Migrations/MigrationBuilderTest.cs rename to pkgs/sdk/server/test/Migrations/MigrationBuilderTest.cs diff --git a/packagess/sdk/server/test/Migrations/MigrationOpTrackerTest.cs b/pkgs/sdk/server/test/Migrations/MigrationOpTrackerTest.cs similarity index 100% rename from packagess/sdk/server/test/Migrations/MigrationOpTrackerTest.cs rename to pkgs/sdk/server/test/Migrations/MigrationOpTrackerTest.cs diff --git a/packagess/sdk/server/test/Migrations/MigrationStageTest.cs b/pkgs/sdk/server/test/Migrations/MigrationStageTest.cs similarity index 100% rename from packagess/sdk/server/test/Migrations/MigrationStageTest.cs rename to pkgs/sdk/server/test/Migrations/MigrationStageTest.cs diff --git a/packagess/sdk/server/test/Migrations/MigrationTest.cs b/pkgs/sdk/server/test/Migrations/MigrationTest.cs similarity index 100% rename from packagess/sdk/server/test/Migrations/MigrationTest.cs rename to pkgs/sdk/server/test/Migrations/MigrationTest.cs diff --git a/packagess/sdk/server/test/MockComponents.cs b/pkgs/sdk/server/test/MockComponents.cs similarity index 100% rename from packagess/sdk/server/test/MockComponents.cs rename to pkgs/sdk/server/test/MockComponents.cs diff --git a/packagess/sdk/server/test/MockResponses.cs b/pkgs/sdk/server/test/MockResponses.cs similarity index 100% rename from packagess/sdk/server/test/MockResponses.cs rename to pkgs/sdk/server/test/MockResponses.cs diff --git a/packagess/sdk/server/test/TestFiles/all-properties.json b/pkgs/sdk/server/test/TestFiles/all-properties.json similarity index 100% rename from packagess/sdk/server/test/TestFiles/all-properties.json rename to pkgs/sdk/server/test/TestFiles/all-properties.json diff --git a/packagess/sdk/server/test/TestFiles/all-properties.yml b/pkgs/sdk/server/test/TestFiles/all-properties.yml similarity index 100% rename from packagess/sdk/server/test/TestFiles/all-properties.yml rename to pkgs/sdk/server/test/TestFiles/all-properties.yml diff --git a/packagess/sdk/server/test/TestFiles/bad-file.txt b/pkgs/sdk/server/test/TestFiles/bad-file.txt similarity index 100% rename from packagess/sdk/server/test/TestFiles/bad-file.txt rename to pkgs/sdk/server/test/TestFiles/bad-file.txt diff --git a/packagess/sdk/server/test/TestFiles/flag-only.json b/pkgs/sdk/server/test/TestFiles/flag-only.json similarity index 100% rename from packagess/sdk/server/test/TestFiles/flag-only.json rename to pkgs/sdk/server/test/TestFiles/flag-only.json diff --git a/packagess/sdk/server/test/TestFiles/segment-only.json b/pkgs/sdk/server/test/TestFiles/segment-only.json similarity index 100% rename from packagess/sdk/server/test/TestFiles/segment-only.json rename to pkgs/sdk/server/test/TestFiles/segment-only.json diff --git a/packagess/sdk/server/test/TestHttpUtils.cs b/pkgs/sdk/server/test/TestHttpUtils.cs similarity index 100% rename from packagess/sdk/server/test/TestHttpUtils.cs rename to pkgs/sdk/server/test/TestHttpUtils.cs diff --git a/packagess/sdk/server/test/TestLoggingHelpers.cs b/pkgs/sdk/server/test/TestLoggingHelpers.cs similarity index 100% rename from packagess/sdk/server/test/TestLoggingHelpers.cs rename to pkgs/sdk/server/test/TestLoggingHelpers.cs diff --git a/packagess/sdk/server/test/TestUtils.cs b/pkgs/sdk/server/test/TestUtils.cs similarity index 100% rename from packagess/sdk/server/test/TestUtils.cs rename to pkgs/sdk/server/test/TestUtils.cs diff --git a/packagess/sdk/server/test/VariationMethodsDesc.cs b/pkgs/sdk/server/test/VariationMethodsDesc.cs similarity index 100% rename from packagess/sdk/server/test/VariationMethodsDesc.cs rename to pkgs/sdk/server/test/VariationMethodsDesc.cs diff --git a/packagess/telemetry/docfx.json b/pkgs/telemetry/docfx.json similarity index 100% rename from packagess/telemetry/docfx.json rename to pkgs/telemetry/docfx.json diff --git a/packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj b/pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj similarity index 100% rename from packagess/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj rename to pkgs/telemetry/src/LaunchDarkly.ServerSdk.Telemetry.csproj diff --git a/packagess/telemetry/src/Telemetry/TracingHook.cs b/pkgs/telemetry/src/Telemetry/TracingHook.cs similarity index 100% rename from packagess/telemetry/src/Telemetry/TracingHook.cs rename to pkgs/telemetry/src/Telemetry/TracingHook.cs diff --git a/packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj b/pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj similarity index 88% rename from packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj rename to pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj index 2afa0db9..d57fe06e 100644 --- a/packagess/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj +++ b/pkgs/telemetry/test/LaunchDarkly.ServerSdk.Telemetry.Tests.csproj @@ -4,7 +4,7 @@ single framework that we are testing; this allows us to test with older SDK versions that would error out if they saw any newer target frameworks listed here, even if we weren't running those. --> - net462;net6.0 + netstandard2.0;net462;net6.0 $(TESTFRAMEWORK) LaunchDarkly.ServerSdk.Telemetry.Tests LaunchDarkly.ServerSdk.Telemetry.Tests @@ -13,6 +13,10 @@ LaunchDarkly.Sdk.Server.Telemetry + + + + diff --git a/packagess/telemetry/test/Telemetry/TracingHookTests.cs b/pkgs/telemetry/test/Telemetry/TracingHookTests.cs similarity index 100% rename from packagess/telemetry/test/Telemetry/TracingHookTests.cs rename to pkgs/telemetry/test/Telemetry/TracingHookTests.cs diff --git a/release-please-config.json b/release-please-config.json index 8839cd48..ff5d1c0a 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,24 +1,22 @@ { "bootstrap-sha": "e3bc4e0889e63e488476cacf726b3b541d174b94", + "include-component-in-tag": true, "packages": { - "packagess/sdk/server": { + "pkgs/sdk/server": { "release-type": "simple", "bump-minor-pre-major": true, - "versioning": "default", "include-v-in-tag": false, "include-component-in-tag": false, "extra-files": [ - "packagess/sdk/server/src/LaunchDarkly.ServerSdk.csproj" + "pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj" ] }, - "packagess/telemetry": { + "pkgs/telemetry": { "release-type": "simple", "bump-minor-pre-major": true, - "versioning": "default", "include-v-in-tag": false, - "include-component-in-tag": false, "extra-files": [ - "packagess/sdk/server/src/LaunchDarkly.ServerSdk.Telemetry.csproj" + "pkgs/sdk/server/src/LaunchDarkly.ServerSdk.Telemetry.csproj" ] } } From ffeb07090cce4cfa0b897362d51f4b8aa589a4d7 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 13:36:00 -0500 Subject: [PATCH 09/18] fixing names --- .github/workflows/sdk-server-ci.yml | 2 +- .github/workflows/telemetry-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sdk-server-ci.yml b/.github/workflows/sdk-server-ci.yml index 8e1a67fa..155571fd 100644 --- a/.github/workflows/sdk-server-ci.yml +++ b/.github/workflows/sdk-server-ci.yml @@ -1,4 +1,4 @@ -name: Server SDK CI +name: LaunchDarkly.ServerSdk CI on: push: branches: [main, 'feat/**'] diff --git a/.github/workflows/telemetry-ci.yml b/.github/workflows/telemetry-ci.yml index 09bbcd35..44845669 100644 --- a/.github/workflows/telemetry-ci.yml +++ b/.github/workflows/telemetry-ci.yml @@ -1,4 +1,4 @@ -name: CI +name: LaunchDarkly.ServerSdk.Telemetry CI on: push: branches: [main, 'feat/**'] From 3956592cf8fe872c753a2581b8863b710c727a69 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 13:40:46 -0500 Subject: [PATCH 10/18] removing general ci workflow that is no longer required --- .github/workflows/ci.yml | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index f9aaf7fd..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: CI -on: - push: - branches: [main, 'feat/**'] - paths-ignore: - - '**.md' # Do not need to run CI for markdown changes. - pull_request: - branches: [main, 'feat/**'] - paths-ignore: - - '**.md' - -jobs: - build-and-test: - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/ci - with: - run_tests: true - # Running contract tests on windows is currently cumbersome. - # Once that has been addressed, then running contract tests on windows should be considered. - run_contract_tests: ${{ matrix.os != 'windows-latest' }} - token: ${{ secrets.GITHUB_TOKEN }} - - build-docs: - runs-on: ubuntu-latest - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/build-docs From 277b896026e1b9cf6658d23dbe1f3bff8b28a892 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 13:51:44 -0500 Subject: [PATCH 11/18] fix: fixing spelling mistake, wink wink --- pkgs/sdk/server/src/Hooks/Method.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/sdk/server/src/Hooks/Method.cs b/pkgs/sdk/server/src/Hooks/Method.cs index 44b2e3f7..1ffc6613 100644 --- a/pkgs/sdk/server/src/Hooks/Method.cs +++ b/pkgs/sdk/server/src/Hooks/Method.cs @@ -18,7 +18,7 @@ public static class Method public const string StringVariationDetail = "LdClient.StringVariationDetail"; public const string JsonVariation = "LdClient.JsonVariation"; public const string JsonVariationDetail = "LdClient.JsonVariationDetail"; - public const string MigrationVariation = "LdClient.MigrationVariation"; + public const string MigrationVariation = "LdClient.MigrationVariationMigrationVariationMigrationVariation"; } #pragma warning restore 1591 } From 96a8bc4657d11882a5f4f8df23521d5e36a080de Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 14:07:49 -0500 Subject: [PATCH 12/18] fix: fixing spelling mistake, wink wink --- pkgs/sdk/server/src/Hooks/Method.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/sdk/server/src/Hooks/Method.cs b/pkgs/sdk/server/src/Hooks/Method.cs index 1ffc6613..5d6fab91 100644 --- a/pkgs/sdk/server/src/Hooks/Method.cs +++ b/pkgs/sdk/server/src/Hooks/Method.cs @@ -1,7 +1,7 @@ namespace LaunchDarkly.Sdk.Server.Hooks { /// - /// Method represents the SDK client method that triggered a hook invocation. + /// Method represents the SDK client method that triggered a hook invocation. Fixing some commenting. /// #pragma warning disable 1591 public static class Method @@ -18,7 +18,7 @@ public static class Method public const string StringVariationDetail = "LdClient.StringVariationDetail"; public const string JsonVariation = "LdClient.JsonVariation"; public const string JsonVariationDetail = "LdClient.JsonVariationDetail"; - public const string MigrationVariation = "LdClient.MigrationVariationMigrationVariationMigrationVariation"; + public const string MigrationVariation = "LdClient.MigrationVariation"; } #pragma warning restore 1591 } From b442167da66c8c9c9d5754b1aaf04d48c5a8872f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 14:20:46 -0500 Subject: [PATCH 13/18] chore: release main (#3) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- pkgs/sdk/server/CHANGELOG.md | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 pkgs/sdk/server/CHANGELOG.md diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 0242b38c..a28d93c5 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "pkgs/sdk/server": "8.3.0", + "pkgs/sdk/server": "8.3.1", "pkgs/telemetry": "0.1.0" } diff --git a/pkgs/sdk/server/CHANGELOG.md b/pkgs/sdk/server/CHANGELOG.md new file mode 100644 index 00000000..95a3f626 --- /dev/null +++ b/pkgs/sdk/server/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## [8.3.1](https://github.com/tanderson-ld/dotnet-server-sdk/compare/8.3.0...8.3.1) (2024-04-19) + + +### Bug Fixes + +* fixing spelling mistake, wink wink ([96a8bc4](https://github.com/tanderson-ld/dotnet-server-sdk/commit/96a8bc4657d11882a5f4f8df23521d5e36a080de)) +* fixing spelling mistake, wink wink ([277b896](https://github.com/tanderson-ld/dotnet-server-sdk/commit/277b896026e1b9cf6658d23dbe1f3bff8b28a892)) From 52113a231c280298c82b71f1347e5363192a65e1 Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 14:24:22 -0500 Subject: [PATCH 14/18] fixing action invocation --- .github/workflows/release-please.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 6fe3f41a..fc44f890 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -29,7 +29,7 @@ jobs: pull-requests: write if: ${{ needs.release-please.outputs.package-sdk-server-released == 'true'}} steps: - - uses: ./.github/workflows/full-release.yml + - uses: ./.github/actions/full-release with: workspace_path: 'pkgs/sdk/server' project_file: 'pkgs/sdk/server/src/LaunchDarkly.ServerSdk.csproj' @@ -47,7 +47,7 @@ jobs: pull-requests: write if: ${{ needs.release-please.outputs.package-sdk-server-telemetry-released == 'true'}} steps: - - uses: ./.github/workflows/full-release.yml + - uses: ./.github/actions/full-release with: workspace_path: 'pkgs/telemetry' name: 'LaunchDarkly.ServerSdk.Telemetry' From 6ce958c4f23f4fd755be13b130550046623c85ec Mon Sep 17 00:00:00 2001 From: Todd Anderson <127344469+tanderson-ld@users.noreply.github.com> Date: Fri, 19 Apr 2024 14:25:47 -0500 Subject: [PATCH 15/18] fix: another comment fix, wink wink (#4) --- pkgs/sdk/server/src/Hooks/Method.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/sdk/server/src/Hooks/Method.cs b/pkgs/sdk/server/src/Hooks/Method.cs index 5d6fab91..64421b4d 100644 --- a/pkgs/sdk/server/src/Hooks/Method.cs +++ b/pkgs/sdk/server/src/Hooks/Method.cs @@ -1,7 +1,7 @@ namespace LaunchDarkly.Sdk.Server.Hooks { /// - /// Method represents the SDK client method that triggered a hook invocation. Fixing some commenting. + /// Method represents the SDK client method that triggered a hook invocation. Fixing some commenting. Again. /// #pragma warning disable 1591 public static class Method From 4f918682fb63f74f04e289aab8499371d3c22c6c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 14:27:53 -0500 Subject: [PATCH 16/18] chore: release main (#5) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- pkgs/sdk/server/CHANGELOG.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a28d93c5..76281fe1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "pkgs/sdk/server": "8.3.1", + "pkgs/sdk/server": "8.3.2", "pkgs/telemetry": "0.1.0" } diff --git a/pkgs/sdk/server/CHANGELOG.md b/pkgs/sdk/server/CHANGELOG.md index 95a3f626..26f6a054 100644 --- a/pkgs/sdk/server/CHANGELOG.md +++ b/pkgs/sdk/server/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [8.3.2](https://github.com/tanderson-ld/dotnet-server-sdk/compare/8.3.1...8.3.2) (2024-04-19) + + +### Bug Fixes + +* another comment fix, wink wink ([#4](https://github.com/tanderson-ld/dotnet-server-sdk/issues/4)) ([6ce958c](https://github.com/tanderson-ld/dotnet-server-sdk/commit/6ce958c4f23f4fd755be13b130550046623c85ec)) + ## [8.3.1](https://github.com/tanderson-ld/dotnet-server-sdk/compare/8.3.0...8.3.1) (2024-04-19) From bf22b00294d83fb54979f4cc116f0bc922b294ad Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 14:31:20 -0500 Subject: [PATCH 17/18] fixing checkout usage --- .github/actions/full-release/action.yml | 1 - .github/workflows/release-please.yml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/full-release/action.yml b/.github/actions/full-release/action.yml index 31676d9c..598df255 100644 --- a/.github/actions/full-release/action.yml +++ b/.github/actions/full-release/action.yml @@ -24,7 +24,6 @@ inputs: runs: using: composite steps: - - uses: actions/checkout@v4 - name: CI check uses: ./.github/actions/ci with: diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index fc44f890..9364734e 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -29,6 +29,7 @@ jobs: pull-requests: write if: ${{ needs.release-please.outputs.package-sdk-server-released == 'true'}} steps: + - uses: actions/checkout@v4 - uses: ./.github/actions/full-release with: workspace_path: 'pkgs/sdk/server' @@ -47,6 +48,7 @@ jobs: pull-requests: write if: ${{ needs.release-please.outputs.package-sdk-server-telemetry-released == 'true'}} steps: + - uses: actions/checkout@v4 - uses: ./.github/actions/full-release with: workspace_path: 'pkgs/telemetry' From 3450d343317b40b9d9c344f36f7b015b51625a4a Mon Sep 17 00:00:00 2001 From: Todd Anderson Date: Fri, 19 Apr 2024 14:32:26 -0500 Subject: [PATCH 18/18] fix: another --- pkgs/sdk/server/src/Hooks/Method.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/sdk/server/src/Hooks/Method.cs b/pkgs/sdk/server/src/Hooks/Method.cs index 64421b4d..5af39513 100644 --- a/pkgs/sdk/server/src/Hooks/Method.cs +++ b/pkgs/sdk/server/src/Hooks/Method.cs @@ -1,7 +1,7 @@ namespace LaunchDarkly.Sdk.Server.Hooks { /// - /// Method represents the SDK client method that triggered a hook invocation. Fixing some commenting. Again. + /// Method represents the SDK client method that triggered a hook invocation. Fixing some commenting. Again, again. /// #pragma warning disable 1591 public static class Method