Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.

update for 1.0.0-beta14 #5

Merged
merged 71 commits into from
Sep 10, 2018
Merged

update for 1.0.0-beta14 #5

merged 71 commits into from
Sep 10, 2018

Conversation

eli-darkly
Copy link
Contributor

No description provided.

ashanbrown and others added 30 commits July 10, 2018 18:04
Also allow users to have empty string keys
Also return default value instead of null value.
misc cleanup prior to official beta release
clean up unnecessary static references and make tests stable
break out & simplify basic flag evaluation tests, remove fixtures
throw exception if user is null; assign unique key if key is null or empty
…1.0.0-beta14

# Conflicts:
#	src/LaunchDarkly.Xamarin/LaunchDarkly.Xamarin.csproj
#	src/LaunchDarkly.Xamarin/LdClient.cs
#	tests/LaunchDarkly.Xamarin.Tests/FeatureFlagsFromService.json
#	tests/LaunchDarkly.Xamarin.Tests/FlagCacheManagerTests.cs
#	tests/LaunchDarkly.Xamarin.Tests/LaunchDarkly.Xamarin.Tests.csproj
#	tests/LaunchDarkly.Xamarin.Tests/LdClientTests.cs
#	tests/LaunchDarkly.Xamarin.Tests/MobilePollingProcessorTests.cs
@eli-darkly eli-darkly merged commit 354c82a into master Sep 10, 2018
@eli-darkly eli-darkly deleted the 1.0.0-beta14 branch September 10, 2018 19:11
LaunchDarklyReleaseBot added a commit that referenced this pull request Nov 28, 2022
* send event for evaluation even if client isn't inited

* make sure Identify/IdentifyAsync only completes when we have new flags

* add helper scripts

* Changed Online to use WaitSafely instead of storing result in a var

* Added identical value check to SetOnlineAsync

* Move value check inside of lock for Android unit test

* Added second value check inside Online, moved value check into try in SetOnlineAsync

* disable REPORT mode because it doesn't work in Android yet

* refactor connection state management, replace Online property with Offline, etc. (#74)

* remove HttpClientTimeout in configuration, use ConnectionTimeout (#77)

* misc fixes to background mode logic, add tests for it (#78)

* fix comments

* misc fixes for flaky tests

* update WireMock, re-enable HTTP tests for Android

* more stable way of synchronizing the background mode tests

* put event processor off/online based on Offline property + network status

* don't post more events if we're offline

* don't send identify event if we're offline

* generate XML comment files

* try skipping XML step in Android CI job because msbuild will fail

* rm unused type

* XML comment fixes

* version 1.0.0-beta23

* changelog additions

* don't use Plugin.DeviceInfo for iOS

* don't use Plugin.DeviceInfo for Android

* don't call the platform-specific method directly

* add tests for device ID

* adjust target frameworks for restwrapper CI builds

* adjust target frameworks for restwrapper CI builds

* add Sandcastle doc build script + general doc comment cleanup

* fix "Launchdarkly"

* symbol style for Json namespace

* remove JToken from public APIs and nearly everywhere else

* rename ImmutableJsonValue to LdValue, don't use ValueType

* fix dependency

* fix tests

* fix type checking

* disable annoying date parsing behavior

* make flag data immutable and stop re-parsing it all the time

* fix source file reference

* configure Android HTTP client to do timeouts correctly.

* typo

* version 1.0.0-beta24

* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* fix Android & iOS CI builds

* typo

* use more correct path for release credential parameter

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

Co-authored-by: torchhound <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this pull request Nov 28, 2022
* send event for evaluation even if client isn't inited

* make sure Identify/IdentifyAsync only completes when we have new flags

* add helper scripts

* Changed Online to use WaitSafely instead of storing result in a var

* Added identical value check to SetOnlineAsync

* Move value check inside of lock for Android unit test

* Added second value check inside Online, moved value check into try in SetOnlineAsync

* disable REPORT mode because it doesn't work in Android yet

* refactor connection state management, replace Online property with Offline, etc. (#74)

* remove HttpClientTimeout in configuration, use ConnectionTimeout (#77)

* misc fixes to background mode logic, add tests for it (#78)

* fix comments

* misc fixes for flaky tests

* update WireMock, re-enable HTTP tests for Android

* more stable way of synchronizing the background mode tests

* put event processor off/online based on Offline property + network status

* don't post more events if we're offline

* don't send identify event if we're offline

* generate XML comment files

* try skipping XML step in Android CI job because msbuild will fail

* rm unused type

* XML comment fixes

* version 1.0.0-beta23

* changelog additions

* don't use Plugin.DeviceInfo for iOS

* don't use Plugin.DeviceInfo for Android

* don't call the platform-specific method directly

* add tests for device ID

* adjust target frameworks for restwrapper CI builds

* adjust target frameworks for restwrapper CI builds

* add Sandcastle doc build script + general doc comment cleanup

* fix "Launchdarkly"

* symbol style for Json namespace

* remove JToken from public APIs and nearly everywhere else

* rename ImmutableJsonValue to LdValue, don't use ValueType

* fix dependency

* fix tests

* fix type checking

* disable annoying date parsing behavior

* make flag data immutable and stop re-parsing it all the time

* fix source file reference

* configure Android HTTP client to do timeouts correctly.

* typo

* version 1.0.0-beta24

* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* fix Android & iOS CI builds

* typo

* use more correct path for release credential parameter

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: torchhound <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot pushed a commit that referenced this pull request Dec 21, 2022
(#5) move component API types into Subsystems
LaunchDarklyReleaseBot added a commit that referenced this pull request Dec 21, 2022
* configure Android HTTP client to do timeouts correctly.

* typo

* version 1.0.0-beta24

* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* remove obsolete Alias, AutoAliasingOptOut, InlineUsersInEvents

* update contract tests

* use U2C alpha packages, replace user with context

* fix tests

* fix more tests

* use correct context key for flag store + clean up context decorator implementation

* add test for flag storage with single/multi-kind contexts

* remove automatic "device" and "os" attributes

* simplify usage of LdClientContext in client initialization

* move component API types into Subsystems

* rm unused

* update to latest alpha packages

* never use device ID, always UUID for generated keys

* actually in .NET it's a GUID, not a UUID

* generate & cache randomized keys per context kind

* add new config option for auto-generating keys

* fix Android & iOS CI builds

* typo

* add contract tests for contexts + update prerelease CommonSdk

* don't use .NET Core 3.1 or .NET 5.0 for testing

* downgrade MSBuild.Sdk.Extras to work in .NET Core 3.1

* fix test framework & dependencies

* actually let's use .NET 6.0

* fix script permissions

* (#4) use System.Text.Json directly instead of LaunchDarkly.JsonStream (#170)

* use new polling endpoints with "context" in path

* use latest prerelease packages where Secondary is removed

* use more correct path for release credential parameter

* replace various factory interfaces with a generic interface

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

* doc comment

* allow User to be used interchangeably with Context (#177)

* allow User to be used interchangeably with Context

* support User type in contract tests

* make context nullable in test service commands

* use latest package versions

* add FlushAndWait method

* update release metadata

* add FlushAndWaitAsync

* finish revising TestData API to use contexts (#182)

* finish revising TestData API to use contexts

* comment typos

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this pull request Feb 24, 2023
* add helper scripts

* Changed Online to use WaitSafely instead of storing result in a var

* Added identical value check to SetOnlineAsync

* Move value check inside of lock for Android unit test

* Added second value check inside Online, moved value check into try in SetOnlineAsync

* disable REPORT mode because it doesn't work in Android yet

* refactor connection state management, replace Online property with Offline, etc. (#74)

* remove HttpClientTimeout in configuration, use ConnectionTimeout (#77)

* misc fixes to background mode logic, add tests for it (#78)

* fix comments

* misc fixes for flaky tests

* update WireMock, re-enable HTTP tests for Android

* more stable way of synchronizing the background mode tests

* put event processor off/online based on Offline property + network status

* don't post more events if we're offline

* don't send identify event if we're offline

* generate XML comment files

* try skipping XML step in Android CI job because msbuild will fail

* rm unused type

* XML comment fixes

* version 1.0.0-beta23

* changelog additions

* don't use Plugin.DeviceInfo for iOS

* don't use Plugin.DeviceInfo for Android

* don't call the platform-specific method directly

* add tests for device ID

* adjust target frameworks for restwrapper CI builds

* adjust target frameworks for restwrapper CI builds

* add Sandcastle doc build script + general doc comment cleanup

* fix "Launchdarkly"

* symbol style for Json namespace

* remove JToken from public APIs and nearly everywhere else

* rename ImmutableJsonValue to LdValue, don't use ValueType

* fix dependency

* fix tests

* fix type checking

* disable annoying date parsing behavior

* make flag data immutable and stop re-parsing it all the time

* fix source file reference

* configure Android HTTP client to do timeouts correctly.

* typo

* version 1.0.0-beta24

* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* fix Android & iOS CI builds

* typo

* use more correct path for release credential parameter

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

* Update release branch configuration.

* build(dep): Update LaunchDarkly.JsonStream and add an invariant culture test. (#183)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: torchhound <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this pull request Feb 27, 2023
* add helper scripts

* Changed Online to use WaitSafely instead of storing result in a var

* Added identical value check to SetOnlineAsync

* Move value check inside of lock for Android unit test

* Added second value check inside Online, moved value check into try in SetOnlineAsync

* disable REPORT mode because it doesn't work in Android yet

* refactor connection state management, replace Online property with Offline, etc. (#74)

* remove HttpClientTimeout in configuration, use ConnectionTimeout (#77)

* misc fixes to background mode logic, add tests for it (#78)

* fix comments

* misc fixes for flaky tests

* update WireMock, re-enable HTTP tests for Android

* more stable way of synchronizing the background mode tests

* put event processor off/online based on Offline property + network status

* don't post more events if we're offline

* don't send identify event if we're offline

* generate XML comment files

* try skipping XML step in Android CI job because msbuild will fail

* rm unused type

* XML comment fixes

* version 1.0.0-beta23

* changelog additions

* don't use Plugin.DeviceInfo for iOS

* don't use Plugin.DeviceInfo for Android

* don't call the platform-specific method directly

* add tests for device ID

* adjust target frameworks for restwrapper CI builds

* adjust target frameworks for restwrapper CI builds

* add Sandcastle doc build script + general doc comment cleanup

* fix "Launchdarkly"

* symbol style for Json namespace

* remove JToken from public APIs and nearly everywhere else

* rename ImmutableJsonValue to LdValue, don't use ValueType

* fix dependency

* fix tests

* fix type checking

* disable annoying date parsing behavior

* make flag data immutable and stop re-parsing it all the time

* fix source file reference

* configure Android HTTP client to do timeouts correctly.

* typo

* version 1.0.0-beta24

* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* fix Android & iOS CI builds

* typo

* use more correct path for release credential parameter

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

* Update release branch configuration.

* build(dep): Update LaunchDarkly.JsonStream and add an invariant culture test. (#183)

* build(dep): Update to JsonStream 1.1.2 and add a User serialization test. (#184)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: torchhound <5600929+torchhound@users.noreply.github.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this pull request Mar 8, 2023
* changelog update

* version 1.0.0

* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* remove obsolete Alias, AutoAliasingOptOut, InlineUsersInEvents

* update contract tests

* use U2C alpha packages, replace user with context

* fix tests

* fix more tests

* use correct context key for flag store + clean up context decorator implementation

* add test for flag storage with single/multi-kind contexts

* remove automatic "device" and "os" attributes

* simplify usage of LdClientContext in client initialization

* move component API types into Subsystems

* rm unused

* update to latest alpha packages

* never use device ID, always UUID for generated keys

* actually in .NET it's a GUID, not a UUID

* generate & cache randomized keys per context kind

* add new config option for auto-generating keys

* fix Android & iOS CI builds

* typo

* add contract tests for contexts + update prerelease CommonSdk

* don't use .NET Core 3.1 or .NET 5.0 for testing

* downgrade MSBuild.Sdk.Extras to work in .NET Core 3.1

* fix test framework & dependencies

* actually let's use .NET 6.0

* fix script permissions

* (#4) use System.Text.Json directly instead of LaunchDarkly.JsonStream (#170)

* use new polling endpoints with "context" in path

* use latest prerelease packages where Secondary is removed

* use more correct path for release credential parameter

* replace various factory interfaces with a generic interface

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

* doc comment

* allow User to be used interchangeably with Context (#177)

* allow User to be used interchangeably with Context

* support User type in contract tests

* make context nullable in test service commands

* use latest package versions

* add FlushAndWait method

* update release metadata

* add FlushAndWaitAsync

* finish revising TestData API to use contexts (#182)

* finish revising TestData API to use contexts

* comment typos

* build(deps): Update to LaunchDarkly.InternalSdk 3.1.1 (#185)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
LaunchDarklyReleaseBot added a commit that referenced this pull request Apr 4, 2023
* use CommonSdk 4.1.0

* fix dependency

* update test data because User.Anonymous was fixed to default to null instead of false

* linefeeds

* use CommonSDK 4.2.0 (adds log helper)

* version 1.1.0

* set default background polling interval

* fix csproj reference to MSBuild.Sdk.Extras

* need to keep PackageReference?

* try to fix test build

* fix MSBuild.Sdk.Extras again (https://github.com/onovotny/MSBuildSdkExtras/blob/master/README.md)

* try another project file format change

* more project config fixes

* brew cask is built-in now

* explicit TargetFramework

* set OutputPath

* rm redundant assembly info

* more project fixes

* misc project fixes

* add SDK version config

* changelog update

* changelog update

* use CommonSdk 4.2.1

* fix tests (user JSON no longer includes pointless "custom":{})

* version 1.1.1

* add EnumVariation extension methods

* update CommonSdk, don't use deprecated reason types

* use transformed user, not original user, when requesting flags after Identify

* fix some more deprecated usages

* fix some more deprecated usages

* fix test logic for detecting generated user key

* use CommonSdk 4.3.0

* update CommonSdk to 4.3.1 for event payload ID fix

* version 1.2.0

* project file cleanup

* revert project file change

* try setting CodesignKey

* build in debug mode

* set platform explicitly to simulator in CI

* use Xcode 11.3 in CI

* fix brew install of Xamarin tools

* fix iOS build path

* add comment, rm unnecessary property

* execute Xamarin SDK releases via Releaser (#98)

* fix Android CI build (#99)

* Removed the guides link

* don't drop base paths from custom base URIs

* Update base64 encoding of user JSON to be URL safe. (#102)

* make the Android CI build work (#103)

* Removed redundant dependencies on android support libraries. This allows to use the package with mono droid 10 and Jetpack. (#104)

Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>

* better install logic for CI and release (#105)

* prevent spurious dependencies in package build

* Set up mysterious ibtool fix. (#108)

This is a rather unexplained workaround for the iOS CI job being non-functional. I unfortunately do not have any good explanation for _why_ this works. There's some sort of 👻 statefulness going on that I can't explain. Regardless, this does allow the `msbuild` to complete successfully and tests to run. There's still some sort of issue when actually running the tests related to `System.IO.Pipelines`, but I haven't looked into that.

* use EmbedIO instead of WireMock.Net for embedded HTTP server in tests

* support ping message used by Relay stream endpoint

* add lower-level test coverage

* (2.0 - #1) minimum changes to migrate to newer common packages that are used by .NET SDK 6.0 (#100)

* (2.0 - #2) remove Newtonsoft.Json (#106)

* improve EnumVariation with type constraint, fix tests

* use LaunchDarkly.TestHelpers for HTTP tests

* fix project files

* fix project files

* update to latest InternalSdk, misc cleanup, better test code sharing (#114)

* better workaround for iOS storyboard build problem (#115)

* update dependencies to latest releases

* drop support for Android 7.1 and 8.0

* (#1) code reorganization, standardize namespaces (#117)

* (#2) rename SDK in the readme and project names (#118)

* (#3) rename Xamarin to Client in namespaces & assemblies (#119)

* (#4) add logging configuration and per-platform default loggers (#120)

* implement Alias method and auto-aliasing

* misc test fixes

* remove IConfigurationBuilder interface

* doc comment fixes + add files for new doc generator

* rm obsolete file

* Apply suggestions from code review

Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>

* clarify CommonSdk documentation

* (#4) add IDataSource interface & more component infrastructure similar to dotnet-server-sdk (#124)

* (#5) scoped configuration & public interface for events (#125)

* (#6) scoped configuration for HTTP (#126)

* (#1) reimplement data store components for cleaner abstraction of persistence, make it configurable (#127)

* (#2) misc tedious code cleanup of property/method naming (#128)

* (#3) revise flag notification mechanism to look more like the server-side SDK (#129)

* (#4) implement test data source (#130)

* (#5) use new concurrency helpers in dotnet-sdk-internal (#131)

* data source status API

* comments

* make build fail if XML comments are missing or invalid

* doc comment fixes

* doc comment fix

* set default flush interval to 30 seconds on mobile platforms

* simpler way of configuring service base URIs (#134)

* add DoubleVariation and DoubleVariationDetail

* enable REPORT mode, except on Android

* configure TaskExecutor to call event handlers on main thread in Android/iOS

* add guard on writing to Xunit test output

* implement diagnostic events (#137)

* fix HttpMessageHandler + proxy configuration, add test coverage (#141)

* fix HttpMessageHandler + proxy configuration, add test coverage

* fix test package dependencies

* re-fix dependencies

* update MSBuild.Sdk.Extras to prevent spurious build warnings from .NET 5 tools

* new persistent storage implementation + max users limit (#143)

* better data source test coverage + misc bugfixes (#144)

* use Releaser v2 configuration (#135)

* add Authenticode signing in release builds; remove obsolete scripts (#145)

* add prerelease notice

* add strong naming in release build

* revise local storage usage to only use base64url-safe characters in namespaces/keys

* fix test package build script

* remove ReadTimeout setting which only worked in Android but not in a useful way

* refactor ConnectionManager state management to handle diagnostic events correctly

* fix init logic, add tests

* remove prerelease notice from readme for GA release

* update CommonSdk & InternalSdk to latest releases + delete obsolete project file

* Use CircleCI macOS Gen2 resource class. (#152)

* fix unset timestamp in alias events

* contract test service implementation (#154)

* Change master to main. (#155)

* remove obsolete Alias, AutoAliasingOptOut, InlineUsersInEvents

* update contract tests

* use U2C alpha packages, replace user with context

* fix tests

* fix more tests

* use correct context key for flag store + clean up context decorator implementation

* add test for flag storage with single/multi-kind contexts

* remove automatic "device" and "os" attributes

* simplify usage of LdClientContext in client initialization

* move component API types into Subsystems

* rm unused

* update to latest alpha packages

* never use device ID, always UUID for generated keys

* actually in .NET it's a GUID, not a UUID

* generate & cache randomized keys per context kind

* add new config option for auto-generating keys

* fix Android & iOS CI builds

* typo

* add contract tests for contexts + update prerelease CommonSdk

* don't use .NET Core 3.1 or .NET 5.0 for testing

* downgrade MSBuild.Sdk.Extras to work in .NET Core 3.1

* fix test framework & dependencies

* actually let's use .NET 6.0

* fix script permissions

* (#4) use System.Text.Json directly instead of LaunchDarkly.JsonStream (#170)

* use new polling endpoints with "context" in path

* use latest prerelease packages where Secondary is removed

* use more correct path for release credential parameter

* replace various factory interfaces with a generic interface

* bump LaunchDarkly.Logging to v1.0.2 for sc-177921

* fix release build to use newer osslsigncode (for 2.x)

* doc comment

* allow User to be used interchangeably with Context (#177)

* allow User to be used interchangeably with Context

* support User type in contract tests

* make context nullable in test service commands

* use latest package versions

* add FlushAndWait method

* update release metadata

* add FlushAndWaitAsync

* finish revising TestData API to use contexts (#182)

* finish revising TestData API to use contexts

* comment typos

* build(deps): Update to LaunchDarkly.InternalSdk 3.1.1 (#185)

* fix: Fix generation of FullyQualifiedKey. (#186)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <bwoskow@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com>
Co-authored-by: Vladimir-Mischenchuk <uniqueidentificator@gmail.com>
Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
Co-authored-by: Louis Chan <lchan@launchdarkly.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants