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

refactor: clone to prevent shallow copy #25

Merged
merged 3 commits into from
Feb 22, 2024

Conversation

grablack
Copy link
Contributor

@grablack grablack commented Feb 13, 2024

Description

Verify if sharing a config class across multiple messages can cause an unexpected impact.

Clone data class to prevent shallow copy on complex objects

Screenshots

Testing instructions

@grablack grablack marked this pull request as ready for review February 14, 2024 15:57
Copy link
Contributor

@merlinpaypal merlinpaypal left a comment

Choose a reason for hiding this comment

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

Everything here looks pretty good. I only noticed 2 things.

  1. Style does not have a clone option. I think for consistency and to ensure nothing is at risk of a shared config, it would be good to put a clone option on it.
  2. For the code coverage, it's looking for tests on the new clone functions, so can we add a testClone to each set of tests for config, style, data, events, and viewstate?

@merlinpaypal merlinpaypal merged commit acfc3ff into develop Feb 22, 2024
6 checks passed
@merlinpaypal merlinpaypal deleted the refactor/mulitMessageConfig branch February 22, 2024 18:27
github-actions bot pushed a commit that referenced this pull request Feb 27, 2024
## 1.0.0 (2024-02-27)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
Copy link
Contributor

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Feb 28, 2024
## 1.0.0-ci-semantic-release.1 (2024-02-28)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
Copy link
Contributor

🎉 This PR is included in version 1.0.0-ci-semantic-release.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Feb 29, 2024
## 1.0.0-ci-semantic-release.1 (2024-02-29)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
github-actions bot pushed a commit that referenced this pull request Feb 29, 2024
## 1.0.0-ci-semantic-release.1 (2024-02-29)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
github-actions bot pushed a commit that referenced this pull request Feb 29, 2024
## 1.0.0-ci-semantic-release.1 (2024-02-29)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
Copy link
Contributor

🎉 This PR is included in version 1.0.0-ci-semantic-release.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Mar 2, 2024
## 1.0.0-ci-semantic-release.1 (2024-03-02)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
github-actions bot pushed a commit that referenced this pull request Mar 2, 2024
## 1.0.0-ci-semantic-release.1 (2024-03-02)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([d3004fd](d3004fd))
Copy link
Contributor

github-actions bot commented Mar 2, 2024

🎉 This PR is included in version 1.0.0-ci-semantic-release.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Apr 3, 2024
## 1.0.0-minSdkMatch.1 (2024-04-03)

### Features

* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* page type ([#26](#26)) ([c79e439](c79e439))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([#21](#21)) ([a9a3fb8](a9a3fb8))
Copy link
Contributor

github-actions bot commented Apr 3, 2024

🎉 This PR is included in version 1.0.0-minSdkMatch.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Apr 11, 2024
## 1.0.0-develop.1 (2024-04-11)

### Features

* accessibility ([#31](#31)) ([20644c8](20644c8))
* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* create a snapshot workflow ([#22](#22)) ([5bc02da](5bc02da))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* modal updates ([#28](#28)) ([101ade5](101ade5))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* page type ([#26](#26)) ([c79e439](c79e439))
* session id and device id ([#30](#30)) ([a7208eb](a7208eb))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* correct urls ([#32](#32)) ([f72ffda](f72ffda))
* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* prevent empty values ([#29](#29)) ([b7b746f](b7b746f))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([#21](#21)) ([a9a3fb8](a9a3fb8))
Copy link
Contributor

🎉 This PR is included in version 1.0.0-develop.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request May 14, 2024
## 1.0.0 (2024-05-14)

### Features

* accessibility ([#31](#31)) ([20644c8](20644c8))
* add instance_id  ([#4](#4)) ([d72ccee](d72ccee))
* base of GitHub workflows ([#5](#5)) ([c32defe](c32defe))
* create a snapshot workflow ([#22](#22)) ([5bc02da](5bc02da))
* debounce config updates ([#24](#24)) ([7d0a043](7d0a043))
* jetpack compose demo ([#10](#10)) ([a47065e](a47065e))
* modal updates ([#28](#28)) ([101ade5](101ade5))
* package pre-release ([#14](#14)) ([d63f834](d63f834))
* page type ([#26](#26)) ([c79e439](c79e439))
* remove session id and device id ([#35](#35)) ([20367ca](20367ca))
* session id and device id ([#30](#30)) ([a7208eb](a7208eb))
* update message view to use its own instance id ([#20](#20)) ([9efb3bb](9efb3bb))
* use nested coroutine to prevent blocking ([#19](#19)) ([b06039c](b06039c))
* xml demo ([#6](#6)) ([4b33504](4b33504))

### Bug Fixes

* allow messages to be updated any time ([#34](#34)) ([ef69ce9](ef69ce9))
* correct urls ([#32](#32)) ([f72ffda](f72ffda))
* general analytics fixes ([#36](#36)) ([ff2ac5a](ff2ac5a))
* modal analytics fixes ([#37](#37)) ([c95246f](c95246f))
* remove kotlinter ([1550f44](1550f44))
* update shared data ([#7](#7)) ([2fa1ea1](2fa1ea1))
* update tracking format ([#33](#33)) ([dc8dd61](dc8dd61))

### Code Refactoring

* adjust logo alignment ([#23](#23)) ([6347be3](6347be3))
* clone to prevent shallow copy ([#25](#25)) ([acfc3ff](acfc3ff))
* prevent destroying modal on close ([#3](#3)) ([ae7e032](ae7e032))
* prevent empty values ([#29](#29)) ([b7b746f](b7b746f))
* radio offer type and other things ([#11](#11)) ([960a48a](960a48a))
* route changes ([#13](#13)) ([6434e30](6434e30))
* use dot getters and setters ([#9](#9)) ([84316bb](84316bb))

### Continuous Integration

* change os ([#38](#38)) ([f7da086](f7da086))
* functional tests ([#16](#16)) ([51d9ec6](51d9ec6))
* lint and test ([#8](#8)) ([8a22f0b](8a22f0b))
* update semantic release ([#21](#21)) ([a9a3fb8](a9a3fb8))
Copy link
Contributor

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants