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

prepare 7.0.0 release #182

Merged
merged 1 commit into from
Feb 24, 2023
Merged

prepare 7.0.0 release #182

merged 1 commit into from
Feb 24, 2023

Conversation

LaunchDarklyReleaseBot
Copy link
Contributor

[7.0.0] - 2023-02-23

The latest version of this SDK supports LaunchDarkly's new custom contexts feature. Contexts are an evolution of a previously-existing concept, "users." Contexts let you create targeting rules for feature flags based on a variety of different information, including attributes pertaining to users, organizations, devices, and more. You can even combine contexts to create "multi-contexts."

This feature is only available to members of LaunchDarkly's Early Access Program (EAP). If you're in the EAP, you can use contexts by updating your SDK to the latest version and, if applicable, updating your Relay Proxy. Outdated SDK versions do not support contexts, and will cause unpredictable flag evaluation behavior.

If you are not in the EAP, only use single contexts of kind "user", or continue to use the user type if available. If you try to create contexts, the context will be sent to LaunchDarkly, but any data not related to the user object will be ignored.

For detailed information about this version, please refer to the list below. For information on how to upgrade from the previous version, please read the migration guide.

Added:

  • The types LDContext, LDSingleKindContext, and LDMultiKindContext define the new "context" model.

Changed:

  • LDConfig changes to be consistent with the Javascript SDK:

    • pollUri, streamUri, eventsUri are now pollUrl, streamUrl and eventsUrl.
    • eventsCapacity is now eventCapacity
    • eventsFlushIntervalMillis, connectionTimeoutMillis, pollingIntervalMillis, backgroundPollingIntervalMillis are now flushInterval, connectionTimeout, pollingInterval, backgroundPollingInterval.
    • diagnosticRecordingIntervalMillis is now diagnosticRecordingInterval
    • maxCachedUsers is now maxCachedContexts
    • allUserAttributesPrivate, privateAttributeNames are now allAttributesPrivate and privateAttributes
  • LDUser type is now imported from the Javascript sdk common package.

  • All SDK methods that took an LDUser parameter now take an LDContext. LDUser is now a subset of LDContext, so existing code based on users will still work.

Removed:

  • Support for React Native versions < 0.69 have been removed. The LaunchDarkly React Native SDK now supports only React Native versions >=0.69.0 <0.71.0.
  • Removed the secondary meta-attribute in LDUser.
  • The alias method no longer exists because alias events are not needed in the new context model.
  • The autoAliasingOptOut and inlineUsersInEvents options no longer exist because they are not relevant in the new context model.

Deprecated:

  • The LDUser object has been deprecated. Support for LDUser is maintained to simplify the upgrade process, but it is recommended to use LDContext in the shape of either LDSingleKindContext or LDMultiKindContext.

* Update swift and android sdk dependencies

* Initial commit

* TODO: comment out private attributes config and figure out later

* Remove erroneous type annotation

* TODO: fix deprecated config settings

* Added todos to map deprecated android config

* Initial refactor to move deprecated android config items

* Start implementing deprecated config options

* Implement android sdk major changes

* Removed deprecated config options

* Remove pollUri to use streaming and default endpoints

* Implemented typescript changes

* Renamed xxxUri to xxxUrl

* Implemented swift config option changes

* Fixed Reference creation for private context attributes

* Update modd.conf

* Removed jcenter

* Reinstate user.privateAttributeNames because that should stay frozen

* PR feedback

* Update test-types.ts

* Remove unnecessary stream: true config default

* [sc-188224] Adios old rn versions

* Set example app min ios target to 12.4 as mandated by rn 0.70. Improve local dev modd experience.

* Added yarn-all scripts

* Fixed broken tests by adding babel config and removing redundant transform.js

* Remove old rn versions from CI

* Force npm i to get around rn 6.3.0 still supporting old rn versions

* Increase circleci macos resource to large

* [sc-188335] Add u2c support (#140)

* Added js common sdk context helper files. First attempt to implement glue code from js to android sdk.

* Validate context in js before initializing ldclient

* Added multi context support. Dry'd context manipulation logic.

* Copy src folder to node_modules so its part of the npm package

* Added arbitrary attributes mapping logic

* Replaced src/common sdk files with actual js common sdk package

* Refactored init code to be more robust with errors. Dry'd init logic.

* Implemented identify logic for context. Changed example app to use multi context.

* Autogenerate keys for anonymous context

* Removed console logs and dry'd logic

* Added contextUtils. Refactored isContext to js.

* Initial attempt at ios context implementation

* First cut ios implementation

* Refactored helper functions to its own utils class. Added android unit tests.

* Added multicontext tests

* Added ios Podfile and fix dev build. Added swift unit tests.

* Added swift unit test scaffold

* Update Tests.swift

* Improve ios unit tests

* Speed up hot reload by replacing cp with rsync. Dry'd dir paths eliminating repetitions.

* Update Tests.swift

* Update .gitignore

* Added more context and config tests

* Add unit test for config build

* Update modd-android.conf

* Added contextUtils tests

* Added typescript support for example app to test types. Replaced cp with rsync to speed up local dev. Improved tsconfig to use out of the box rn config.

* Use common types for LDUser, LDContext and LDMultiKindContext

* Update LaunchdarklyReactNativeClient.xcscheme

* Update App.tsx

* Prettified changelog

* Updated common sdk version

* Replaced user references with context

* Use trySetValue for key, name and anonymous

* Update config.yml

* Added files property to specify only necessary files for npm publish

* Exclude android test files from npm publish

* Replace print with NSLog

* Revert prettier changes. Ignore changelog from prettier.

* Corrected misspelling of filename.

* Added newline at eof

* [sc-189696] Fix auto generation of anonymous keys (#141)

* Initial commit

* Rollback swift changes

* Swift changes.

* Updated js tests

* Don't generate keys in js and defer context validation to native sdks

* Update Tests.swift

* Add java anonymous key test

* Add github actions for tests

* Update main.yml

* Remove js tests from cicleci to github action. Prettified circleci config.

* Update config.yml

* Update config.yml

* Update config.yml

* Update config.yml

* Add ios test job

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Cache pods and quiet xcodebuild

* Update main.yml

* Update main.yml

* Update main.yml

* Update main.yml

* Restore other tests

---------

Co-authored-by: Yusinto Ngadiman <yus@launchdarkly.com>

* Fixed formatting of ga yml

---------

Co-authored-by: Yusinto Ngadiman <yus@launchdarkly.com>

* [sc-169352] Add ldClient nil guards (#142)

Update LaunchdarklyReactNativeClient.swift

* Attempt to fix broken ios tests

* Bust Pod cache

* Update config.yml

---------

Co-authored-by: Yusinto Ngadiman <yus@launchdarkly.com>
@LaunchDarklyReleaseBot LaunchDarklyReleaseBot merged commit 8087b98 into main Feb 24, 2023
@LaunchDarklyReleaseBot LaunchDarklyReleaseBot deleted the release-7.0.0 branch February 24, 2023 17:50
LaunchDarklyReleaseBot pushed a commit that referenced this pull request Feb 9, 2024
…he context have a kind. (#182)

Validated using MaunalTestApp
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