Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Conversation

@drichelson
Copy link
Contributor

@drichelson drichelson commented May 25, 2016

-Added flush call when disposing event processor
-Changed mentions of Newtonsoft.json dependency to match what we had when we were using 6.0.x (we're now using 8.0.3 and the update inadvertently changed some xml)
-Added explicit Newtonsoft.json dependency in nuspec file (this fixes the problem)

@jkodumal
Copy link
Contributor

Mind explaining what these changes do (other than the flush, which is pretty clear)?

@drichelson
Copy link
Contributor Author

I changed the PR description trying to be more clear. Let me know if that makes sense.

<copyright>$copyright$</copyright>
<tags>Feature Configuration</tags>
<dependencies>
<dependency id="Newtonsoft.Json" version="8.0.3" />
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the change that seems to have definitively fixed the problem our customer saw and that I reproduced locally.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what's still lacking for me is an understanding of what this does-- good that it fixed the problem, but did this ever work without this dependency explicitly stated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before this change: Importing the LD client into your app would bring in an unknown version of NewtonSoft- maybe the wrong one if you already had an older one in a local repo.

After this change: We are specifying the specific version to use.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah. Makes sense.

@jkodumal
Copy link
Contributor

👍

@drichelson drichelson merged commit cfcca6c into master May 25, 2016
@drichelson drichelson deleted the dr/fixImportsAndFlush branch May 25, 2016 17:35
atrakh added a commit that referenced this pull request Oct 3, 2017
…tsource-dependency

add dotnet-eventsource dependency
LaunchDarklyCI pushed a commit that referenced this pull request Feb 22, 2021
LaunchDarklyCI pushed a commit that referenced this pull request Feb 22, 2021
(6.0 - #7) add DoubleVariation and DoubleVariationDetail
eli-darkly added a commit that referenced this pull request Sep 28, 2021
* remove support for indirect/patch

* drop support for .NET <4.5.2, .NET Standard <2.0

* bump CommonSdk to 2.11.1 for EventSource build change (#184)

* add CI test jobs for .NET Core 2.1/3.1 and .NET 5

* use LaunchDarkly.Logging

* add logging config test + minor cleanup

* catch date/time format exception

* use LaunchDarkly.InternalSdk

* use component-scoped configuration for data sources

* make FileData API consistent with Java SDK

* rm unnecessary folder refs

* use component-scoped configuration for events

* test instrumentation + misc cleanup

* better range checking

* improve diagnostic event tests

* rm obsolete warnings

* fix base log name

* clarify comment

* .NET Core 2.0 is EOL

* update web link in comments

* copyedit message

* change default polling base URL to use sdk.launchdarkly.com

* rename IDataStoreUpdates to IDataSourceUpdates

* rename IDataStoreUpdates to IDataSourceUpdates

* update for API improvements in InternalSdk

* use LogHelpers.LogException

* use a log adapter to capture log output from failed tests

* enable test logging in another place

* (#1) add data source status tracking (#195)

* (#2) use component-scoped configuration for HTTP properties (#196)

* (#3) misc Configuration/ConfigurationBuilder cleanup + move ILdClient to Interfaces (#197)

* (#4) move stream support code out of InternalSdk back into StreamProcessor (#198)

* (#5) add FlagTracker (#199)

* (#6) add data store status tracking (#202)

* (#7) TaskExecutor fixes and tests (#203)

* add smarter stream restart behavior on errors (#204)

* use new UserAttribute type

* add PrivateAttributeNames test

* adjust for new events API in InternalSdk, simplify public events API, use structs not classes (#206)

* improvements in persistent data store API to match Java & Go SDKs

* make name of PersistentDataStoreBuilder consistent with other SDKs; add diagnostic description logic

* make doc comments consistent for factory methods

* use IDiagnosticDescription for HTTP properties

* add .NET platform details to diagnostic events

* update package properties

* rename Components.PersistentStore to PersistentDataStore

* fix serialization logic for deleted items

* misc serialization fixes

* add tests for model types

* 6.0.0-alpha.3

* implement test data source

* revise existing client tests to use TestData

* simplify test logger implementation

* add shortcut for logging configuration

* add .gitattributes

* use LaunchDarkly.JsonStream instead of Newtonsoft.Json + misc improvements to model types

* preprocess flag and segment data for faster evaluation

* general API cleanup (changing getter methods to properties)

* (5.x) remove support for indirect/patch

* add component-scoped configuration for DataSource & Events, similar to 6.0

* add component-scoped configuration for HTTP

* add component-scoped configuration for persistent data store

* comments + alpha version

* add ability to configure proxy programmatically (and custom headers)

* (6.0 - #1) improvements in persistent data store API to match Java & Go SDKs (#207)

* (6.0 - #2) implement test data source (#208)

* (6.0 - #3) add shortcut for logging configuration (#209)

* clarify intention of tests

* clarify intention of tests

* it's more correct (and possibly works better in Windows) to start background tasks with explicit Task.Run()

* move LogNames to Internal namespace

* typos

* unnecessary else

* typos, misc comment fixes

* misc comment fixes

* fix faulty merge

* more fixes for faulty merge

* update for jsonstream API changes

* update to latest prerelease APIs

* 6.0.0-alpha.5

* add DoubleVariation and DoubleVariationDetail

* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com>
JeffAshton added a commit to JeffAshton/launchdarkly-dotnet-server-sdk that referenced this pull request Feb 4, 2022
…lections.immutable

Uprading the System.Collections.Immutable package
LaunchDarklyReleaseBot added a commit that referenced this pull request Oct 24, 2022
* rename IDataStoreUpdates to IDataSourceUpdates

* rename IDataStoreUpdates to IDataSourceUpdates

* update for API improvements in InternalSdk

* use LogHelpers.LogException

* use a log adapter to capture log output from failed tests

* enable test logging in another place

* (#1) add data source status tracking (#195)

* (#2) use component-scoped configuration for HTTP properties (#196)

* (#3) misc Configuration/ConfigurationBuilder cleanup + move ILdClient to Interfaces (#197)

* (#4) move stream support code out of InternalSdk back into StreamProcessor (#198)

* (#5) add FlagTracker (#199)

* (#6) add data store status tracking (#202)

* (#7) TaskExecutor fixes and tests (#203)

* add smarter stream restart behavior on errors (#204)

* use new UserAttribute type

* add PrivateAttributeNames test

* adjust for new events API in InternalSdk, simplify public events API, use structs not classes (#206)

* improvements in persistent data store API to match Java & Go SDKs

* make name of PersistentDataStoreBuilder consistent with other SDKs; add diagnostic description logic

* make doc comments consistent for factory methods

* use IDiagnosticDescription for HTTP properties

* add .NET platform details to diagnostic events

* update package properties

* rename Components.PersistentStore to PersistentDataStore

* fix serialization logic for deleted items

* misc serialization fixes

* add tests for model types

* 6.0.0-alpha.3

* implement test data source

* revise existing client tests to use TestData

* simplify test logger implementation

* add shortcut for logging configuration

* add .gitattributes

* use LaunchDarkly.JsonStream instead of Newtonsoft.Json + misc improvements to model types

* preprocess flag and segment data for faster evaluation

* general API cleanup (changing getter methods to properties)

* (5.x) remove support for indirect/patch

* add component-scoped configuration for DataSource & Events, similar to 6.0

* add component-scoped configuration for HTTP

* add component-scoped configuration for persistent data store

* comments + alpha version

* add ability to configure proxy programmatically (and custom headers)

* (6.0 - #1) improvements in persistent data store API to match Java & Go SDKs (#207)

* (6.0 - #2) implement test data source (#208)

* (6.0 - #3) add shortcut for logging configuration (#209)

* clarify intention of tests

* clarify intention of tests

* it's more correct (and possibly works better in Windows) to start background tasks with explicit Task.Run()

* move LogNames to Internal namespace

* typos

* unnecessary else

* typos, misc comment fixes

* misc comment fixes

* fix faulty merge

* more fixes for faulty merge

* update for jsonstream API changes

* update to latest prerelease APIs

* 6.0.0-alpha.5

* add DoubleVariation and DoubleVariationDetail

* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* Rename master to main. (#283)

* stricter RFC3339 date/time parsing (#293)

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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 7, 2022
…eriments & secondary (#275)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* update eval bucketing logic for context kinds, fix rules for experiments & secondary

* misc PR feedback
LaunchDarklyReleaseBot added a commit that referenced this pull request Dec 7, 2022
* 6.0.0-alpha.5

* add DoubleVariation and DoubleVariationDetail

* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* remove alias & inline users functionality for 7.0 (#268)

* remove alias & inline users functionality for 7.0

* contract test fixes

* data model updates for U2C (not being used in evaluations yet)

* restore original logic of always serializing "negate"

* use Context instead of User (not including new eval logic)

* fix contract tests

* update test service to support context JSON tests

* rename "user" in methods/docs & remove deprecated items

* fix test service

* some of the config properties sent by sdk-test-harness still say "user"

* fix context key deduplication

* rm debugging data

* (#5) update target eval logic for context kinds (#273)

* update target eval logic for context kinds

* re-enable test that isn't broken

* misc PR feedback

* (#6) update clause eval logic for context kinds (#274)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* misc PR feedback

* (#7) update eval bucketing logic for context kinds, fix rules for experiments & secondary (#275)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* update eval bucketing logic for context kinds, fix rules for experiments & secondary

* misc PR feedback

* remove unnecessary factory interfaces for simple config builders

* rm unused

* remove BasicConfiguration type

* replace all component factory interfaces with a generic one

* better interface name

* fix test service

* move things like IDataStore into new Subsystems namespace

* move more config-related types into Subsystems

* (#8) prevent infinite recursion of prerequisites (#276)

* (#9) allow segment recursion, detect cycles (#277)

* Rename master to main. (#283)

* (#10) add context kind matching for big segments + improve test coverage (#281)

* (#11) update TestData for contexts + improve flag-building logic (#282)

* fix imports

* fix test code

* update to latest alpha packages, use new ContextKind type

* improve evaluation error logic and treat bad clause attrs as errors

* lowercase these error messages since they are now prefixed by another capitalized message

* use latest prerelease packages

* drop .NET Core 2.1, .NET Framework 4.5.2, .NET Framework 4.6.1

* s/Transient/Anonymous

* also drop .NET 5.0

* more fixes for dropping .NET 5.0

* CircleCI Windows VMs don't yet support .NET 6.0

* we don't need a separate .NET Framework 4.7.1 target

* use only System.Text.Json, not LaunchDarkly.JsonStream

* use a newer YamlDotNet in tests and clarify docs about using it

* use latest InternalSdk

* comments

* update contract test service to use System.Text.Json directly

* update EventSource version

* force inExperiment to be false if context kind was not found

* update for AttributeRef API change

* fix secure mode logic for contexts + enable secure mode contract tests

* use .NET 6 release image

* stricter RFC3339 date/time parsing (#293)

* remove references to Secondary and UserAttribute (#292)

* remove secondary attribute + misc u2c cleanup

* fix test service

* allow use of User type in place of Context via extension methods (#294)

* allow use of User type in place of Context via extension methods

* add event tests

* add newline

* add tests for using an old-style user

* update CommonSdk & InternalSdk dependencies

* include nested segment references in dependency update checks

* add FlushAndWait

* misc fixes

* link to external docs about Flush

* don't generate eval events for invalid contexts

* use non-alpha package

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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
* rename IDataStoreUpdates to IDataSourceUpdates

* rename IDataStoreUpdates to IDataSourceUpdates

* update for API improvements in InternalSdk

* use LogHelpers.LogException

* use a log adapter to capture log output from failed tests

* enable test logging in another place

* (#1) add data source status tracking (#195)

* (#2) use component-scoped configuration for HTTP properties (#196)

* (#3) misc Configuration/ConfigurationBuilder cleanup + move ILdClient to Interfaces (#197)

* (#4) move stream support code out of InternalSdk back into StreamProcessor (#198)

* (#5) add FlagTracker (#199)

* (#6) add data store status tracking (#202)

* (#7) TaskExecutor fixes and tests (#203)

* add smarter stream restart behavior on errors (#204)

* use new UserAttribute type

* add PrivateAttributeNames test

* adjust for new events API in InternalSdk, simplify public events API, use structs not classes (#206)

* improvements in persistent data store API to match Java & Go SDKs

* make name of PersistentDataStoreBuilder consistent with other SDKs; add diagnostic description logic

* make doc comments consistent for factory methods

* use IDiagnosticDescription for HTTP properties

* add .NET platform details to diagnostic events

* update package properties

* rename Components.PersistentStore to PersistentDataStore

* fix serialization logic for deleted items

* misc serialization fixes

* add tests for model types

* 6.0.0-alpha.3

* implement test data source

* revise existing client tests to use TestData

* simplify test logger implementation

* add shortcut for logging configuration

* add .gitattributes

* use LaunchDarkly.JsonStream instead of Newtonsoft.Json + misc improvements to model types

* preprocess flag and segment data for faster evaluation

* general API cleanup (changing getter methods to properties)

* (5.x) remove support for indirect/patch

* add component-scoped configuration for DataSource & Events, similar to 6.0

* add component-scoped configuration for HTTP

* add component-scoped configuration for persistent data store

* comments + alpha version

* add ability to configure proxy programmatically (and custom headers)

* (6.0 - #1) improvements in persistent data store API to match Java & Go SDKs (#207)

* (6.0 - #2) implement test data source (#208)

* (6.0 - #3) add shortcut for logging configuration (#209)

* clarify intention of tests

* clarify intention of tests

* it's more correct (and possibly works better in Windows) to start background tasks with explicit Task.Run()

* move LogNames to Internal namespace

* typos

* unnecessary else

* typos, misc comment fixes

* misc comment fixes

* fix faulty merge

* more fixes for faulty merge

* update for jsonstream API changes

* update to latest prerelease APIs

* 6.0.0-alpha.5

* add DoubleVariation and DoubleVariationDetail

* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* Rename master to main. (#283)

* stricter RFC3339 date/time parsing (#293)

* Update releaser config for (main) 7.x and 6.x maintenance.

* build(dep): Update LaunchDarkly.JsonStream to version 1.1.1. (#300)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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
* rename IDataStoreUpdates to IDataSourceUpdates

* rename IDataStoreUpdates to IDataSourceUpdates

* update for API improvements in InternalSdk

* use LogHelpers.LogException

* use a log adapter to capture log output from failed tests

* enable test logging in another place

* (#1) add data source status tracking (#195)

* (#2) use component-scoped configuration for HTTP properties (#196)

* (#3) misc Configuration/ConfigurationBuilder cleanup + move ILdClient to Interfaces (#197)

* (#4) move stream support code out of InternalSdk back into StreamProcessor (#198)

* (#5) add FlagTracker (#199)

* (#6) add data store status tracking (#202)

* (#7) TaskExecutor fixes and tests (#203)

* add smarter stream restart behavior on errors (#204)

* use new UserAttribute type

* add PrivateAttributeNames test

* adjust for new events API in InternalSdk, simplify public events API, use structs not classes (#206)

* improvements in persistent data store API to match Java & Go SDKs

* make name of PersistentDataStoreBuilder consistent with other SDKs; add diagnostic description logic

* make doc comments consistent for factory methods

* use IDiagnosticDescription for HTTP properties

* add .NET platform details to diagnostic events

* update package properties

* rename Components.PersistentStore to PersistentDataStore

* fix serialization logic for deleted items

* misc serialization fixes

* add tests for model types

* 6.0.0-alpha.3

* implement test data source

* revise existing client tests to use TestData

* simplify test logger implementation

* add shortcut for logging configuration

* add .gitattributes

* use LaunchDarkly.JsonStream instead of Newtonsoft.Json + misc improvements to model types

* preprocess flag and segment data for faster evaluation

* general API cleanup (changing getter methods to properties)

* (5.x) remove support for indirect/patch

* add component-scoped configuration for DataSource & Events, similar to 6.0

* add component-scoped configuration for HTTP

* add component-scoped configuration for persistent data store

* comments + alpha version

* add ability to configure proxy programmatically (and custom headers)

* (6.0 - #1) improvements in persistent data store API to match Java & Go SDKs (#207)

* (6.0 - #2) implement test data source (#208)

* (6.0 - #3) add shortcut for logging configuration (#209)

* clarify intention of tests

* clarify intention of tests

* it's more correct (and possibly works better in Windows) to start background tasks with explicit Task.Run()

* move LogNames to Internal namespace

* typos

* unnecessary else

* typos, misc comment fixes

* misc comment fixes

* fix faulty merge

* more fixes for faulty merge

* update for jsonstream API changes

* update to latest prerelease APIs

* 6.0.0-alpha.5

* add DoubleVariation and DoubleVariationDetail

* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* Rename master to main. (#283)

* stricter RFC3339 date/time parsing (#293)

* Update releaser config for (main) 7.x and 6.x maintenance.

* build(dep): Update LaunchDarkly.JsonStream to version 1.1.1. (#300)

* build(dep): Update LaunchDarkly.JsonStream (#301)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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
* 6.0.0-alpha.6

* fix doc comment

* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* remove alias & inline users functionality for 7.0 (#268)

* remove alias & inline users functionality for 7.0

* contract test fixes

* data model updates for U2C (not being used in evaluations yet)

* restore original logic of always serializing "negate"

* use Context instead of User (not including new eval logic)

* fix contract tests

* update test service to support context JSON tests

* rename "user" in methods/docs & remove deprecated items

* fix test service

* some of the config properties sent by sdk-test-harness still say "user"

* fix context key deduplication

* rm debugging data

* (#5) update target eval logic for context kinds (#273)

* update target eval logic for context kinds

* re-enable test that isn't broken

* misc PR feedback

* (#6) update clause eval logic for context kinds (#274)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* misc PR feedback

* (#7) update eval bucketing logic for context kinds, fix rules for experiments & secondary (#275)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* update eval bucketing logic for context kinds, fix rules for experiments & secondary

* misc PR feedback

* remove unnecessary factory interfaces for simple config builders

* rm unused

* remove BasicConfiguration type

* replace all component factory interfaces with a generic one

* better interface name

* fix test service

* move things like IDataStore into new Subsystems namespace

* move more config-related types into Subsystems

* (#8) prevent infinite recursion of prerequisites (#276)

* (#9) allow segment recursion, detect cycles (#277)

* Rename master to main. (#283)

* (#10) add context kind matching for big segments + improve test coverage (#281)

* (#11) update TestData for contexts + improve flag-building logic (#282)

* fix imports

* fix test code

* update to latest alpha packages, use new ContextKind type

* improve evaluation error logic and treat bad clause attrs as errors

* lowercase these error messages since they are now prefixed by another capitalized message

* use latest prerelease packages

* drop .NET Core 2.1, .NET Framework 4.5.2, .NET Framework 4.6.1

* s/Transient/Anonymous

* also drop .NET 5.0

* more fixes for dropping .NET 5.0

* CircleCI Windows VMs don't yet support .NET 6.0

* we don't need a separate .NET Framework 4.7.1 target

* use only System.Text.Json, not LaunchDarkly.JsonStream

* use a newer YamlDotNet in tests and clarify docs about using it

* use latest InternalSdk

* comments

* update contract test service to use System.Text.Json directly

* update EventSource version

* force inExperiment to be false if context kind was not found

* update for AttributeRef API change

* fix secure mode logic for contexts + enable secure mode contract tests

* use .NET 6 release image

* stricter RFC3339 date/time parsing (#293)

* remove references to Secondary and UserAttribute (#292)

* remove secondary attribute + misc u2c cleanup

* fix test service

* allow use of User type in place of Context via extension methods (#294)

* allow use of User type in place of Context via extension methods

* add event tests

* add newline

* add tests for using an old-style user

* update CommonSdk & InternalSdk dependencies

* include nested segment references in dependency update checks

* add FlushAndWait

* misc fixes

* link to external docs about Flush

* don't generate eval events for invalid contexts

* use non-alpha package

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

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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
* fix error handling in Evaluate, add test

* more error handling fixes

* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* remove alias & inline users functionality for 7.0 (#268)

* remove alias & inline users functionality for 7.0

* contract test fixes

* data model updates for U2C (not being used in evaluations yet)

* restore original logic of always serializing "negate"

* use Context instead of User (not including new eval logic)

* fix contract tests

* update test service to support context JSON tests

* rename "user" in methods/docs & remove deprecated items

* fix test service

* some of the config properties sent by sdk-test-harness still say "user"

* fix context key deduplication

* rm debugging data

* (#5) update target eval logic for context kinds (#273)

* update target eval logic for context kinds

* re-enable test that isn't broken

* misc PR feedback

* (#6) update clause eval logic for context kinds (#274)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* misc PR feedback

* (#7) update eval bucketing logic for context kinds, fix rules for experiments & secondary (#275)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* update eval bucketing logic for context kinds, fix rules for experiments & secondary

* misc PR feedback

* remove unnecessary factory interfaces for simple config builders

* rm unused

* remove BasicConfiguration type

* replace all component factory interfaces with a generic one

* better interface name

* fix test service

* move things like IDataStore into new Subsystems namespace

* move more config-related types into Subsystems

* (#8) prevent infinite recursion of prerequisites (#276)

* (#9) allow segment recursion, detect cycles (#277)

* Rename master to main. (#283)

* (#10) add context kind matching for big segments + improve test coverage (#281)

* (#11) update TestData for contexts + improve flag-building logic (#282)

* fix imports

* fix test code

* update to latest alpha packages, use new ContextKind type

* improve evaluation error logic and treat bad clause attrs as errors

* lowercase these error messages since they are now prefixed by another capitalized message

* use latest prerelease packages

* drop .NET Core 2.1, .NET Framework 4.5.2, .NET Framework 4.6.1

* s/Transient/Anonymous

* also drop .NET 5.0

* more fixes for dropping .NET 5.0

* CircleCI Windows VMs don't yet support .NET 6.0

* we don't need a separate .NET Framework 4.7.1 target

* use only System.Text.Json, not LaunchDarkly.JsonStream

* use a newer YamlDotNet in tests and clarify docs about using it

* use latest InternalSdk

* comments

* update contract test service to use System.Text.Json directly

* update EventSource version

* force inExperiment to be false if context kind was not found

* update for AttributeRef API change

* fix secure mode logic for contexts + enable secure mode contract tests

* use .NET 6 release image

* stricter RFC3339 date/time parsing (#293)

* remove references to Secondary and UserAttribute (#292)

* remove secondary attribute + misc u2c cleanup

* fix test service

* allow use of User type in place of Context via extension methods (#294)

* allow use of User type in place of Context via extension methods

* add event tests

* add newline

* add tests for using an old-style user

* update CommonSdk & InternalSdk dependencies

* include nested segment references in dependency update checks

* add FlushAndWait

* misc fixes

* link to external docs about Flush

* don't generate eval events for invalid contexts

* use non-alpha package

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

* fix: Update canonical key generation. (#303)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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 21, 2023
* rethrow errors more directly

* add headers explicitly to polling requests

* remove unnecessary CustomHeaders property

* change IHttpConfiguration to concrete class HttpConfiguration

* doc comments

* use LaunchDarkly.Logging 1.0.0

* allow explicit nulls for nullable strings in JSON (#221)

* (6.0) make base logger name configurable and standardize log messages (#220)

* (5.x) add missing project metadata

* Removed the guides link

* cleaner stream restart logic using new EventSource method (#222)

* misc project cleanup/metadata improvements (#224)

* allow null for rollout in flag JSON (#225)

* use latest package releases + update internal events API

* use LaunchDarkly.EventSource 4.0.0

* fix test

* add Alias method

* fix release metadata

* bump CommonSdk to 2.11.2

* fix test dependency

* update release metadata

* prepare 5.14.1 release (#135)

* Releasing version 5.14.1

* ensure that base paths in base URIs are preserved

* prepare 5.14.2 release (#136)

* Releasing version 5.14.2

* remove WireMock.Net, use LaunchDarkly.TestHelpers for HTTP testing (#230)

* update to latest InternalSdk + misc cleanup (#231)

* add .NET Core 2.1 and .NET 5 target frameworks, fuller testing, update readme (#232)

* generate docs with DocFX + misc doc improvements (#233)

* add HttpConfigurationBuilder.ResponseStartTimeout, change how ConnectTimeout works (#234)

* tiny typo

* longer timeout for data store status update test

* longer timeout for log message expectation

* rm irrelevant time expectation from test

* fix more overly time-sensitive test expectations

* rm unnecessary expectation

* fix more overly time-sensitive test expectations

* better temp file handling in FileDataSourceTest

* fix more overly time-sensitive test expectations

* remove DocFX scripts that are now built into Releaser

* bump EventSource version for memory leak fix

* add interfaces and configuration for big segments

* misc API fixes

* add missing comments

* add all components for big segments except evaluation

* fix config builder

* fix comment

* add log message assertion

* implement big segments in flag evaluation

* implement traffic allocation changes in flag model & evaluation (#239)

* allow big segment store metadata query to return null

* allow big segment store metadata to be null

* doc comment fixes

* use test helper

* update dependencies for dotnet-jsonstream numeric parsing bugfix

* fix inconsequential "variable wasn't assigned" warning

* remove pre-GA changelog entries

* add end-to-end tests + minor fixes to startup behavior + doc comments (#245)

* add end-to-end tests + minor fixes to data source error handling behavior

* rm unused imports

* default start wait time should be 5 seconds

* better doc comments for LdClient constructor

* fix XML tag

* add check of Initialized

* use LaunchDarkly.CommonSdk 5.1.0

* fix release metadata

* linefeeds

* add CI job for .NET 6.0

* rm .NET Core 2.0 job since that image is no longer available

* update test dependency (older version hangs in .NET 6)

* use Releaser v2 config + fix doc comment formatting

* fix bullet list format

* rm duplicate line

* use new concurrency helpers in dotnet-sdk-internal

* use newer TestHelpers + misc test cleanup

* make build fail if XML comments are missing or invalid

* fully qualify LogLevel type name to avoid ambuigity in doc comment references

* Updates docs URLs

* improve file data implementation so flag change events can work (#248)

* update comment text to say "Big Segments" instead of "big segments" (#254)

* update comment text to say "Big Segments" instead of "big segments"

* fix log text in test expectation

* cleaned up use of mock components in tests, use Moq less to avoid race conditions (#255)

* simpler way of configuring service base URIs

* add comments to clarify disabling deprecation warning

* sync all LaunchDarkly package dependencies to latest versions

* refactor diagnostic events code using new shared classes (#258)

* refactor diagnostic events code using new shared classes

* bump dependencies, remove redundant classes

* test fixes/cleanup/DRY

* remove helper that's no longer necessary

* make sure all data sources use all configured HTTP properties (#259)

* make sure all data sources use all configured HTTP properties

* use LaunchDarkly.InternalSdk 2.3.0

* rm unused constructor

* misc cleanup

* fix flaky tests

* clean up data source implementations and tests (#260)

* fix minor inconsistencies in bootstrap data JSON

* Revert "fix minor inconsistencies in bootstrap data JSON"

This reverts commit ccf95ce.

* update InternalSdk for index events fix

* fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment

* fix test

* fix race condition in streaming tests

* fix race condition on recording of diagnostic data

* more race condition fixes

* update CommonSdk version for recent JSON improvements

* also update InternalSdk

* add explicit Equals/GetHashCode implementations to improve performance during flag updates

* fix obsolete comment on Track with metricValue

* implement contract tests (#262)

* remove alias & inline users functionality for 7.0 (#268)

* remove alias & inline users functionality for 7.0

* contract test fixes

* data model updates for U2C (not being used in evaluations yet)

* restore original logic of always serializing "negate"

* use Context instead of User (not including new eval logic)

* fix contract tests

* update test service to support context JSON tests

* rename "user" in methods/docs & remove deprecated items

* fix test service

* some of the config properties sent by sdk-test-harness still say "user"

* fix context key deduplication

* rm debugging data

* (#5) update target eval logic for context kinds (#273)

* update target eval logic for context kinds

* re-enable test that isn't broken

* misc PR feedback

* (#6) update clause eval logic for context kinds (#274)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* misc PR feedback

* (#7) update eval bucketing logic for context kinds, fix rules for experiments & secondary (#275)

* update target eval logic for context kinds

* re-enable test that isn't broken

* update clause eval logic for context kinds

* update eval bucketing logic for context kinds, fix rules for experiments & secondary

* misc PR feedback

* remove unnecessary factory interfaces for simple config builders

* rm unused

* remove BasicConfiguration type

* replace all component factory interfaces with a generic one

* better interface name

* fix test service

* move things like IDataStore into new Subsystems namespace

* move more config-related types into Subsystems

* (#8) prevent infinite recursion of prerequisites (#276)

* (#9) allow segment recursion, detect cycles (#277)

* Rename master to main. (#283)

* (#10) add context kind matching for big segments + improve test coverage (#281)

* (#11) update TestData for contexts + improve flag-building logic (#282)

* fix imports

* fix test code

* update to latest alpha packages, use new ContextKind type

* improve evaluation error logic and treat bad clause attrs as errors

* lowercase these error messages since they are now prefixed by another capitalized message

* use latest prerelease packages

* drop .NET Core 2.1, .NET Framework 4.5.2, .NET Framework 4.6.1

* s/Transient/Anonymous

* also drop .NET 5.0

* more fixes for dropping .NET 5.0

* CircleCI Windows VMs don't yet support .NET 6.0

* we don't need a separate .NET Framework 4.7.1 target

* use only System.Text.Json, not LaunchDarkly.JsonStream

* use a newer YamlDotNet in tests and clarify docs about using it

* use latest InternalSdk

* comments

* update contract test service to use System.Text.Json directly

* update EventSource version

* force inExperiment to be false if context kind was not found

* update for AttributeRef API change

* fix secure mode logic for contexts + enable secure mode contract tests

* use .NET 6 release image

* stricter RFC3339 date/time parsing (#293)

* remove references to Secondary and UserAttribute (#292)

* remove secondary attribute + misc u2c cleanup

* fix test service

* allow use of User type in place of Context via extension methods (#294)

* allow use of User type in place of Context via extension methods

* add event tests

* add newline

* add tests for using an old-style user

* update CommonSdk & InternalSdk dependencies

* include nested segment references in dependency update checks

* add FlushAndWait

* misc fixes

* link to external docs about Flush

* don't generate eval events for invalid contexts

* use non-alpha package

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

* fix: Update canonical key generation. (#303)

* build(dep): Update to LaunchDarkly.InternalSdk 3.1.2 (#304)

---------

Co-authored-by: Eli Bishop <eli@launchdarkly.com>
Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <LaunchDarklyCI@users.noreply.github.com>
Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com>
Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com>
Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.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.

3 participants