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

Conversation

@LaunchDarklyReleaseBot
Copy link
Contributor

[2.6.1] - 2022-05-05

Changed:

  • Updated language in changelog related to Relay Proxy.
  • Updated c-sdk-common dependency.

Fixed:

  • Users with empty keys should not generate identify events.
  • Removed redundant index event that was generated after an identify event.
  • Fixed handling of per-user private attributes in SDK contract tests.

gwhelanLD and others added 26 commits February 4, 2022 13:16
* Implement contract test server 
* Add initial test failure suppression file
LDJSONVariation should not have an expectation on type, which was previously "array or object". It should function with any
representable type, including NULL.

This commit updates the method to always pass the type check.
The SDK correctly reported an error when user requested the wrong type for a flag,
but it also returned a variation index of 0. This is incorrect.

Now, it returns no variation (hasVariation = false), which aligns with our docs on the subject.
SDK would emit a warning such as "LDGetNumber value is not a number" when trying to parse optional flag data,
like debugEventsUntilDate.

Fixed to only parse such values if they are present. If null, they remain at their default values assigned by the parser.
* Remove trailing slash from streaming, base, and events URI
* Add additional tests for trailing slashes
…helper (#139)

* Switch to drd from helgrind (which had false positives in curl) & add relevant suppressions for drd

* Add concurrency helper test fixture

* Add concurrency test for LDClientFlush

* Add test for double-free in LDStoreInitialized

* Fix double-free in LDStoreInitialized with complete refactorization

* Add documentation of $initChecked
* Add initial work to get FileData data source support

* Init store with FileData; support flags, segments, and flagValues

* Add datafiles; file data tests and missing h file

* Flip object merge order to give precedence to earlier flags. Add more file tests

* fix memory leaks

* Fix 32 bit operating systems. Only support 4gb files.

* convert ssize_t file_count to int fileCount in hopes of making MSVC happy

* Add FileData documentation to integrations/file_data.h

* Fixes to style per PR; Fix tests to use LDSetDataSource; Add lots of defensive checks to JSON allocation; Added blocks to file loading function to narrow the scope of temporary variables

* Extract readFile helper function to cleanup loadFile; rename loadFile to loadJSONFile to better reflect its return type; Cleanup tests by extracting memory management and client initialization into helper classes

* Add error checks to JSON functions that were missed in original. Remember to free context and dataSource in failure case

* Add CommonFixture SetUp and TearDown calls to FileDataFixture SetUp and TearDown

* Convert FileDataInit from a variadic function to accepting an array as a second argument

* Remove the references to a new version number; Remove assertion about filecount, just initialize with empty flags; Add test to ensure that empty file array doesnt explode;

* Remove @SInCE from file_data.h

Co-authored-by: Casey Waldren <cwaldren@launchdarkly.com>
* Fix AllFlagsState behavior when flag fails to evaluate

Do not add invalid flags to the AllFlagsState object. Instead, skip them, like
the AllFlags function.

This commit also ports over the AllFlags unit tests to AllFlagsState.

* Re-generate test harness suppressions file.
* Implement TestData data source integration

Co-authored-by: Ben Levy <benjaminlevy007@gmail.com>
* Implement service-endpoints capability for contract tests

* Add events/disabling/* to testharness-suppressions

These are expected to fail, since the SDK in fact does not implement this feature.
…164)

* Refactored EventProcessor's APIs for better clarity; made it an opaque struct; added documentation
* Implement disabling analytic events
LaunchDarkly services expect milliseconds in JSON to be representable by
an integer. Right now that's not the case, since calls to timespec divide the nanosecond value
by 1e6.

Update the getUnixMilliseconds API to return whole numbers.
* Do not generate identify events for users with empty keys
* Remove new payload ID test from suppressions

* Add new test failures from 1.6.0 contract test release
…172)

* Update c-sdk-common subtree

* Rename master->main in PR template
…169)

* Use wall time instead of monotonic in EventProcessor

EventProcessor was previously configured with a monotonic timestamp for lastUserKeyFlush when it was constructed.

On Mac, this uses the system boot clock.

This caused user keys to be incorrectly flushed the first time maybeMakeIndexEvent was called, since
the expression "now [wall time] > [computations involving monotonic time]" always evaluates to true.

Once the cache is cleared, lastUserKeyFlush is assigned to the wall time, which allows the logic to work correctly
for subsequent maybeMakeIndexEvents, since now the time quantities are measured from the same domain.

* Introducing the new LDTimestamp and LDTimer data types, making clear where wall time or monotonic time is used.

* Remove suppression for redundant index event

* Pin SDK test harness version so that fixing the suppressions is not a moving target
@cwaldren-ld cwaldren-ld requested a review from kinyoklion May 6, 2022 16:46
@LaunchDarklyReleaseBot LaunchDarklyReleaseBot merged commit 41bb582 into main May 6, 2022
@LaunchDarklyReleaseBot LaunchDarklyReleaseBot deleted the release-2.6.1 branch May 6, 2022 17:11
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.