This repository has been archived by the owner on Dec 4, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… for backgrounding offline behavior, removed redundant class names in BackgroundDetection.android
…ved persister BACKGROUNDED_WHILE_STREAMING in favor of static var
…g private not static, added braces to if
…treaming to false on foreground
…hread-blocking Fixed changing background in certain order causing hang
…ent explanation for Initialized
…client isn't initialized
…unchdarkly/xamarin-client-sdk-private into jc/45269/initialized-behavior
fix test state contamination in cached flag tests
…returning cached value but client is not initialized
…unchdarkly/xamarin-client-sdk-private into jc/45269/initialized-behavior
Fixes related to Initialized behavior
# Conflicts: # src/LaunchDarkly.XamarinSdk/Configuration.cs # src/LaunchDarkly.XamarinSdk/ILdClient.cs # src/LaunchDarkly.XamarinSdk/LaunchDarkly.XamarinSdk.csproj # src/LaunchDarkly.XamarinSdk/LdClient.cs # tests/LaunchDarkly.XamarinSdk.Tests/LaunchDarkly.XamarinSdk.Tests.csproj
…ited send event for evaluation even if client isn't inited
# Conflicts: # src/LaunchDarkly.XamarinSdk/ILdClient.cs # src/LaunchDarkly.XamarinSdk/LdClient.cs
configure TaskExecutor to call event handlers on main thread in Android/iOS
* 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
# Conflicts: # .circleci/config.yml # .ldrelease/config.yml # CONTRIBUTING.md # README.md # tests/LaunchDarkly.XamarinSdk.Tests/LaunchDarkly.XamarinSdk.Tests.csproj
add strong naming in release build
…harset revise local storage usage to only use base64url-safe characters in keys/namespaces
remove ReadTimeout setting which only worked in Android but not in a useful way
refactor ConnectionManager state management to handle diagnostic events correctly
louis-launchdarkly
approved these changes
Nov 19, 2021
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[2.0.0-rc.1] - 2021-11-19
This is the first release candidate version of the LaunchDarkly client-side .NET SDK 2.0-- a major rewrite that introduces a cleaner API design, adds new features, and makes the SDK code easier to maintain and extend. See the Xamarin 1.x to client-side .NET 2.0 migration guide for an in-depth look at the changes in 2.0; the following is a summary.
The LaunchDarkly client-side .NET SDK was formerly known as the LaunchDarkly Xamarin SDK. Xamarin for Android and iOS are among its supported platforms, but it can also be used on any platform that supports .NET Core 2+, .NET Standard 2, or .NET 5+. On those platforms, it does not use any Xamarin-specific runtime libraries. To learn more about the distinction between the client-side .NET SDK and the server-side .NET SDK, read: Client-side and server-side SDKs
Added:
LdClient.FlagTracker
provides the ability to get notifications when flag values have changed.LdClient.DataSourceStatusProvider
provides information on the status of the SDK's data source (which normally means the streaming connection to the LaunchDarkly service).LdClient.DoubleVariation
andDoubleVariationDetail
return a numeric flag variation using double-precision floating-point.HttpConfigurationBuilder.UseReport
tells the SDK to make HTTPREPORT
requests rather thanGET
requests to the LaunchDarkly service endpoints, which may be desirable in rare circumstances but is not available on all platforms.ConfigurationBuilder.Persistence
andPersistenceConfigurationBuilder.MaxCachedUsers
allow setting a limit on how many users' flag data can be saved in persistent local storage, or turning off persistence.LaunchDarkly.Sdk.Json
namespace provides methods for converting types likeUser
andFeatureFlagsState
to and from JSON.LaunchDarkly.Sdk.UserAttribute
type provides a less error-prone way to refer to user attribute names in configuration, and can also be used to get an arbitrary attribute from a user.LaunchDarkly.Sdk.UnixMillisecondTime
type provides convenience methods for converting to and from the Unix epoch millisecond time format that LaunchDarkly uses for all timestamp values.ConfigurationBuilder.DiagnosticOptOut
or configured withConfigurationBuilder.DiagnosticRecordingInterval
.Changed (requirements/dependencies/build):
Common.Logging
. Instead, it uses a similar but simpler logging facade, theLaunchDarkly.Logging
package, which has adapters for various logging destinations.Newtonsoft.Json
), but instead uses a lightweight custom JSON serializer and deserializer. This removes the potential for dependency version conflicts in applications that use Json.NET for their own purposes, and reduces the number of dependencies in applications that do not use Json.NET. If you do use Json.NET and you want to use it with SDK data types likeUser
andLdValue
, seeLaunchDarkly.CommonSdk.JsonNet
. Those types also serialize/deserialize correctly with theSystem.Text.Json
API on platforms where that API is available.Changed (API changes):
LaunchDarkly.Client
are now inLaunchDarkly.Sdk
, and types that were previously inLaunchDarkly.Xamarin
are now inLaunchDarkly.Sdk.Client
. TheLaunchDarkly.Sdk
namespace contains types that are not specific to the client-side .NET SDK (that is, they are also used by the server-side .NET SDK):EvaluationDetail
,LdValue
,User
, andUserBuilder
. Types that are specific to the client-side .NET SDK, such asConfiguration
andLdClient
, are inLaunchDarkly.Sdk.Client
.User
andConfiguration
objects are now immutable. To specify properties for these classes, you must now useUser.Builder
andConfiguration.Builder
.Configuration.Builder
now returns a concrete type rather than an interface.EvaluationDetail
is now a struct type rather than a class.EvaluationReason
is now a single struct type rather than a base class with subclasses.EvaluationReasonKind
andEvaluationErrorKind
constants now use .Net-style naming (RuleMatch
) rather than Java-style naming (RULE_MATCH
). Their JSON representations are unchanged.ILdClient
interface is now inLaunchDarkly.Sdk.Client.Interfaces
instead of the main namespace.ILdClientExtensions
methodsEnumVariation<T>
andEnumVariationDetail<T>
now have type constraints to enforce thatT
really is anenum
type.Changed (behavioral changes):
LaunchDarkly.Sdk.Xamarin.LdClient
, while messages about specific areas of functionality are logged under that name plus.DataSource
(streaming, polling, file data, etc.),.DataStore
(database integrations),.Evaluation
(unexpected errors during flag evaluations), or.Events
(analytics event processing).Fixed:
Offline
property of the original SDK configuration, rather than whether the SDK is currently in offline mode or not.Removed:
Obsolete
in the last 1.x release have been removed.