Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Staging branch for next major release 3.0.0 #161

Merged
merged 28 commits into from
Oct 23, 2024
Merged

Staging branch for next major release 3.0.0 #161

merged 28 commits into from
Oct 23, 2024

Conversation

evan-masseau
Copy link
Contributor

@evan-masseau evan-masseau commented May 1, 2024

Individual PRs to this branch should get reviewed like they were going in to master, and we will conduct final review of the whole set of changes together prior to 3.0.0 release.

evan-masseau and others added 11 commits May 1, 2024 12:35
* Separation of API, State and Side Effects. Largely left tests alone except for adding a couple and adjusting setup to accommodate changes.

* Use consistent nullability pattern so we aren't converting between empty string and null with identifiers.
Added proper deserializing of the profile attributes store property

* There is indeed a better way to do that

* Renamed some of the new classes and added new tests for them

* Doc blocks, minor cleanup, naming conventions

* Fix nullability test
Don't need immutable profile to expose attributes, but would be good to expose single attribute getter

* First round of PR comments

* missed another arg label

---------

Co-authored-by: Evan Masseau <>
Co-authored-by: Evan Masseau <>
Co-authored-by: Evan Masseau <>
…polarity of how we check background data (#166)

Co-authored-by: Evan Masseau <>
* Added test coverage for publishing old value with change callback

* Broadcast on reset, and tests

* Reset as a cleanup step, not a setup step.

---------

Co-authored-by: Evan Masseau <>
…t in SDK state (#168)

* making token request if token is present

* minor refactor

* fixed tests

* added some tests

* removed push state when resetting

* updated tests

* fixed side effects tests

* removed unused comment

* updated readme

* finally fixed tests

* Fix some setup/teardown in tests to take care of isolation issues. (#169)

Co-authored-by: Evan Masseau <>

---------

Co-authored-by: Evan C Masseau <[email protected]>
…st headers into the url connection. (#170)

Co-authored-by: Evan Masseau <>
@evan-masseau evan-masseau added the major-release For PRs that contain breaking changes and belong in a major release label Jun 4, 2024
# Conflicts:
#	README.md
#	docs/index.html
#	sdk/analytics/src/main/java/com/klaviyo/analytics/Klaviyo.kt
#	sdk/analytics/src/test/java/com/klaviyo/analytics/KlaviyoTest.kt
#	sdk/analytics/src/test/java/com/klaviyo/analytics/KlaviyoUninitializedTest.kt
#	sdk/analytics/src/test/java/com/klaviyo/analytics/networking/requests/KlaviyoApiRequestTest.kt
#	versions.properties
Copy link

This PR has not seen any updates in the last 16 days. Without further action this PR will be closed in 14 days. To disable further staleness checks add the evergreen label.

@github-actions github-actions bot added the stale label Jun 27, 2024
Copy link

This PR has seen no updates in the past 30 days and will now be closed. Restore the branch and create a new PR if you wish to continue work.

…ing (#179)

* changing profile attribute to accept serializable

* updating for 3.0 release

* logging incorrectly typed profile attribute
* using synchronized list for observers

* adding concurreny safe structure to all observer instances

* Refresh versions syntax for dependencies

* removing concurrent suffix

---------

Co-authored-by: Evan Masseau <>
* Sending 503 through retry logic

* removing version.properties unecessary changes

* fixing http import
* Adding consumer rules and updating docs

* progaurd changes
@klaviyo klaviyo deleted a comment from evan-masseau Sep 9, 2024
evan-masseau and others added 5 commits September 10, 2024 12:06
* Introduce tag support so we have the option to de-dupe push notifications similar to how stock FCM sdk can.

* adding constant id and null-checked notification tag

---------

Co-authored-by: Evan Masseau <>
Co-authored-by: Daniel Peluso <[email protected]>
* Remove identifiers from state if API reports format errors

* pr comments

* removing extraneous decoder test
* added klaviyo sdk name and version

* Update sdk/analytics/src/main/java/com/klaviyo/analytics/DeviceProperties.kt

Co-authored-by: dan-peluso <[email protected]>

* fixed some formatting

* updated the SDK name to be non lazy

---------

Co-authored-by: dan-peluso <[email protected]>
* Convert SystemClock to class

* These shouldn't have been mocked in this test class, its masking a bug.

* Remove unnecessary, slightly risky, object initializers in core.

* Restore system clock to object -- I take it back, we don't have to get rid of objects, just have to be more particular about using object initializers.

* KLog can be a singleton object, no risk there.

* This simple fix would take care of the issue, but i still don't love KlaviyoApiClient being a singleton object that can hit an unrecoverable exception in its initializer...

* Found a balanced solution for KlaviyoApiClient -- converting this to a class was complicated by the inner class, and besides it works well as a singleton. The initializer was the real problem, so I extract the listeners from the initializer and created a startService method. This is safe to run multiple times if the SDK is re-initialized.

* Prefer this way: we don't need to wrap any of the code in this method body except the methods that are themselves protected anyway

* Forgot to add back starting the service in these tests' setup

* Naming convention things

* First shot at a pre-init buffer for failed operations. Needs tests

* Added test of in-memory slate

* I don't like import *

* Added comments, logging, and wrapped the retry operations in safeCall

* Trivial: move error logging out of exception class. Now that we wrap all SDK functions in safeCall, it is more straightforward to log from there.

* Allow ONLY handlePush to be buffered

* Remove unused test

* keep 3.0 version increment

* don't add this back

* never trust github

* Update versions.properties

---------

Co-authored-by: Evan Masseau <>
# Conflicts:
#	README.md
#	docs/index.html
#	sdk/core/src/main/java/com/klaviyo/core/lifecycle/KlaviyoLifecycleMonitor.kt
#	sdk/core/src/main/java/com/klaviyo/core/model/SharedPreferencesDataStore.kt
#	sdk/core/src/main/java/com/klaviyo/core/networking/KlaviyoNetworkMonitor.kt
#	versions.properties
evan-masseau and others added 4 commits October 3, 2024 11:49
* Protect against double subscriptions
* readme and migration guide updates

---------

Co-authored-by: Evan Masseau <>
…nd version for config (#191)

* resource reading maven attmept

* working resource share attempt

* update log level

* fixing unit tests and working resource sharing

* pr comments

* fixing config

* replace bump version task with xml-based task

* fixing unit test

* fixing file pathing for composite builds

* fixing bump version task

* removing build config field from build.gradle

* using readXml for default config

* removing unused versionFor import
@dan-peluso dan-peluso marked this pull request as ready for review October 18, 2024 15:22
@dan-peluso dan-peluso requested a review from a team as a code owner October 18, 2024 15:22
@dan-peluso dan-peluso changed the title [WIP] Staging branch for next major release 3.0.0 Staging branch for next major release 3.0.0 Oct 18, 2024
MIGRATION_GUIDE.md Outdated Show resolved Hide resolved
Copy link
Contributor

@dan-peluso dan-peluso left a comment

Choose a reason for hiding this comment

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

LGTM

@dan-peluso dan-peluso merged commit 798d03d into master Oct 23, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
evergreen major-release For PRs that contain breaking changes and belong in a major release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants