-
Notifications
You must be signed in to change notification settings - Fork 24
Dr/fix imports and flush #7
Conversation
|
Mind explaining what these changes do (other than the flush, which is pretty clear)? |
|
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" /> |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah. Makes sense.
|
👍 |
…tsource-dependency add dotnet-eventsource dependency
(6.0 - #7) add DoubleVariation and DoubleVariationDetail
* 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>
…lections.immutable Uprading the System.Collections.Immutable package
* 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>
…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
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
-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)