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

Unit Test(s) Migration #287

Merged
merged 20 commits into from
Dec 12, 2024
Merged

Unit Test(s) Migration #287

merged 20 commits into from
Dec 12, 2024

Conversation

andhikayuana
Copy link
Contributor

@andhikayuana andhikayuana commented Nov 30, 2024

Overview

Introducing new test framework for litewallet-android project. As for now we will use JUnit4 and MockK. more details, will share the docs on slack later and also probably we can have sharing session for this.

Background Problem

The existing codebase is relatively hard to maintain, since most of the code uses singleton everywhere and not using dependency inversion principle. The current tests use androidTest, which is actually for UI Test, it’s (not suitable for Unit Test (AFAIK) and if we run the test it will require more resources (need emulator). More consideration is, we also need to make the codebase not so old by fully migrating to kotlin in the future. That’s why we need to create a new test strategy, especially for Unit Test.

Unit Test Migration

  • com/litewallet/tools/util/BRConstantsTest.kt
  • com/litewallet/tools/sqlite/TransactionDataSourceTest.java
  • com/platform/kvstore/ReplicatedKVStoreTest.java
  • com/litewallet/tools/util/Bip39ReaderTest.java

CI/CD

Currently the CI/CD can't run the unit tests because of mallformed env file that placed on circleci, will revisit later

@andhikayuana andhikayuana self-assigned this Nov 30, 2024
@andhikayuana andhikayuana force-pushed the chore/test-regime-plan branch from 2cdf887 to 8d2b9f3 Compare December 2, 2024 19:41
@andhikayuana
Copy link
Contributor Author

will revisit this later, need to provide google-services.json

@andhikayuana andhikayuana changed the title [DRAFT] Test Migration Unit Test(s) Migration Dec 5, 2024
command: "git submodule init && git submodule update --init --recursive"
- run:
name: "Copy google-services.json"
command: echo "$GOOGLE_SERVICES_JSON" | base64 --decode > app/google-services.json
Copy link
Contributor Author

Choose a reason for hiding this comment

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

the error from circleci mallformed here, need recheck the base64 encoded from google-services.json

Copy link
Contributor

Choose a reason for hiding this comment

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

@andhikayuana yes we need to add a debug version to circleci TODO

import org.junit.Assert.assertEquals
import org.junit.Test

class ExampleTest {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is some example basic unit tests

cc @kcw-grunt @josikie

Copy link
Contributor

Choose a reason for hiding this comment

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

Tx @andhikayuana we should transcode from existing java tests. Will you confirm?

import org.junit.Test

//TODO: migrate from [com.litewallet.analytics.ConstantsTests]
class BRConstantsTest {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

need to fill, please let me know if have questions

Copy link
Contributor

Choose a reason for hiding this comment

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

@andhikayuana may check in the values onto this PR

package com.litewallet.tools.util

//TODO: pls fill this
class Bip39ReaderTest
Copy link
Contributor Author

Choose a reason for hiding this comment

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

need to fill, please let me know if have questions

Copy link
Contributor

Choose a reason for hiding this comment

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

@andhikayuana may check in the values onto this PR. Migrating away to just English until the new UI is released

package com.litewallet.tools.sqlite

//TODO: pls fill this
class TransactionDataSourceTest
Copy link
Contributor Author

Choose a reason for hiding this comment

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

need to fill, please let me know if have questions

package com.litewallet.tools.security

//TODO: pls fill this
class BRKeyStoreTest
Copy link
Contributor Author

Choose a reason for hiding this comment

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

need to fill, please let me know if have questions

package com.platform.kvstore

//TODO: pls fill this
class ReplicatedKVStoreTest
Copy link
Contributor Author

Choose a reason for hiding this comment

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

need to fill, please let me know if have questions

@andhikayuana andhikayuana marked this pull request as ready for review December 5, 2024 01:41
@andhikayuana andhikayuana marked this pull request as draft December 5, 2024 01:47
@kcw-grunt
Copy link
Contributor

Pedas sama Ny. Suharti @andhikayuana !

@kcw-grunt kcw-grunt added the 🏡 moderate-priority These are important and should be in progress now or soon label Dec 5, 2024
@kcw-grunt kcw-grunt added this to the v2.13.X milestone Dec 5, 2024
- Removed cruft
- Moved all tests to the unitTest directory
- Remove poorly placed tests into (AndroidTest)
- Commented  old code into the new Kotlin class(es)
- working in the first test of currency
- Removed the paymentRequest method
- Renamed Classes
Copy link
Contributor

@kcw-grunt kcw-grunt left a comment

Choose a reason for hiding this comment

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

Need a look from @andhikayuana

class FiatCurrency(val code: String, val valuePerLitecoin: Double)
class Amount(val value: Double)

class CurrencySystemUnderTest(
Copy link
Contributor

Choose a reason for hiding this comment

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

@andhikayuana does this make sense?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I just removed this, pls check this commit


//
//
//package com.litewallet;
Copy link
Contributor

Choose a reason for hiding this comment

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

cc: @josikie , @andhikayuana
This is just a place holder as techdebt

@kcw-grunt kcw-grunt marked this pull request as ready for review December 10, 2024 09:52
Copy link
Contributor

@kcw-grunt kcw-grunt left a comment

Choose a reason for hiding this comment

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

Looks Better to Me. We will continue working on this.

@kcw-grunt kcw-grunt merged commit d6ee1f7 into develop Dec 12, 2024
1 of 2 checks passed
@kcw-grunt kcw-grunt deleted the chore/test-regime-plan branch December 12, 2024 08:46
kcw-grunt added a commit that referenced this pull request Dec 19, 2024
* 🚀[Release v2.11.1 071024] Merge into Develop (#245)

* replaced the control in PeerManager.c

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* reverted BRBitcoinAmount

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Cleaning up the files

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed Pusher remnants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Added Fiat feature, and FCM for push notifications (#247)

* Added fiat feature based on language user chose

* added fcm for push notifications

* Update PushNotificationService.kt

* Added new Icon, removed duplicate fcm library, added in app messaging

* Added new Icon, removed duplicate fcm library, added in app messaging

* Tech debt/add af sdk (#248)

* Recent newline

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* AF added

Refactored cruft

- AF working

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/refactor brevents syncmarkers (#254)

* Tech debt/add af sdk (#248)

- AF working
- Changed requiredActivity
- Added analytics error report
- test this.Activity is null or not
- Bugfix - Phrase Reminder crash
- added an exception handler for UserNotAuthenticatedException.
		 - note: this should allow for the system to display the native authorization UI when needed
		 - fixes issue - https://console.firebase.google.com/u/0/project/litewallet-beta/crashlytics/app/android:com.loafwallet/issues/09dac17241309f0e823ef597a9a82cd4
- Added dev note
- remove calls to BREventManager
- removed BREventManager
- renamed error message
- fixed Firebase Analytics event error

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* version bump

update gitignore

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/ fixed send issue add syncing measurements (#255)

* removed unused BRSharedPreferences

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* started commenting out more Timber

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Added more shared preferences for syncing

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Commented out many verbose Timber logs

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* WIP

Still trying to figure out the eplased time and last and start timestamps…???
I dunno

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Moved sync measurment into the method calls

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Debugged the install issue with send

- Moved all the measurements in new methods
- recalculated measure points
- Added analytics
- event did_complete_sync was shown!
- adding a dummy file to make sure file system is set
||||WIP still verifying the JSON is present
- added a blockheight label
-  changed the sleep time (a hack to allow the device time to refresh the view) to 100 ms from 500ms!!
-WIP Why is the bundle not showing on time
Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* replaces afID to first location

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed redundant sync measurements

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/test refactor cruft removal (#250)

* Removed non english seed words

-Refactor tests
- Reset AnalyticsTests

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Rename Bitcoinletter to Litecoinletters

-added tests
testLitecoinSymbolConstants
testAppExternalURLConstants
testFirebaseAnalyticsConstants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: [#152] make sure using Fragment, FragmentManager and FragmentTransaction from androidx (#260)

* fix: [#126] the issue came from FragmentBalanceSeedReminder.fetchSeedPhrase, so we just wrap with runCatching for now to avoid crash (#263)

* fix: [#264] add null checking for BRKeyStore.removeAliasAndFiles (#270)

* fix: [#265] add null checking, migrate viewpage… (#271)

* fix: [WIP][#265] work in progress add null checking, migrate viewpager to viewpager2 and more

* fix: [#265] finalize migration some deprecated class and implement null checking at FragmentTransactionItem

* fix: dix dismiss outside FragmentTransactionDetails

* 🚀[Release v2.12.2 20241118] Merge into Develop (#272)

* 🚀[Release v2.11.1 071024] Merge into Main (#246)

* replaced the control in PeerManager.c

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* reverted BRBitcoinAmount

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Cleaning up the files

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed Pusher remnants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* version bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed donation button

removed xml
removed fragments
removed references of the donation
removed analytical events

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: prevent activity close

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* enabled for Debug

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: [#264] add null checking for BRKeyStore.removeAliasAndFiles (#270)

* fix: [#265] add null checking, migrate viewpage… (#271)

* fix: [WIP][#265] work in progress add null checking, migrate viewpager to viewpager2 and more

* fix: [#265] finalize migration some deprecated class and implement null checking at FragmentTransactionItem

* fix: dix dismiss outside FragmentTransactionDetails

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* version bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>
Co-authored-by: andhikayuana <andhikayuana@gmail.com>

* revert minSDkVersion to 29 (#276)

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: [#258] avoid OOM with cache the result of opsAll, previously called multiple times at onBindViewHolder (#277)

* fix: [#258] avoid OOM with cache the result of opsAll, previously called multiple times at onBindViewHolder

* chore: [#258] cleanup comment

* fix: [#266] add null checking and default value based on iOS since getCurrency can produce null (#278)

* fix: [#266] add null checking and default value based on iOS since getCurrency can produce null

* chore: [#266] cleanup comment

* fix: [#274] fixing locale on android 14 and setup test using junit & mockk (#282)

* chore: [#274] initial setup test using JUnit & MockK

* chore: [#274] add more test case at LocaleHelperTest

* fix: [#274] fix default language from shared preferences

* fix: [#274] disable language split on AAB

* chore: [#274] rename method

* chore: [#126] simplify exception handling at BRKeyStore._getData and record exception to Firebase Crashlytics (#283)

* Techdebt/remove auth prompt (#256)

* Check reenter pin freeze after the auth prompt deleted.

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* cleaned up deletion

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Many removals

- Removed the fingerprint xml
- Removed the Fingerprint Fragment and java files
- Removed the enum referencing the fingerprint prompt
- Removed check of fingerprint enrollment and checks
- Removed biometrics and fingerprint permissions

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* removed fingerprint image

code and version bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* chore: remove FragmentFingerprint.java since, not used and failed to build

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>
Co-authored-by: josikie <kiejosi12@gmail.com>
Co-authored-by: andhikayuana <andhikayuana@gmail.com>

* 🚀[Release v2.12.4 20241130] Merge into Develop (#286)

* 🚀[Release v2.11.1 071024] Merge into Main (#246)

* replaced the control in PeerManager.c

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* reverted BRBitcoinAmount

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Cleaning up the files

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed Pusher remnants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* 🚀[Release v2.12.2 20241118] Merge into Main (#273)

* 🚀[Release v2.11.1 071024] Merge into Develop (#245)

* replaced the control in PeerManager.c

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* reverted BRBitcoinAmount

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Cleaning up the files

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed Pusher remnants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Added Fiat feature, and FCM for push notifications (#247)

* Added fiat feature based on language user chose

* added fcm for push notifications

* Update PushNotificationService.kt

* Added new Icon, removed duplicate fcm library, added in app messaging

* Added new Icon, removed duplicate fcm library, added in app messaging

* Tech debt/add af sdk (#248)

* Recent newline

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* AF added

Refactored cruft

- AF working

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/refactor brevents syncmarkers (#254)

* Tech debt/add af sdk (#248)

- AF working
- Changed requiredActivity
- Added analytics error report
- test this.Activity is null or not
- Bugfix - Phrase Reminder crash
- added an exception handler for UserNotAuthenticatedException.
		 - note: this should allow for the system to display the native authorization UI when needed
		 - fixes issue - https://console.firebase.google.com/u/0/project/litewallet-beta/crashlytics/app/android:com.loafwallet/issues/09dac17241309f0e823ef597a9a82cd4
- Added dev note
- remove calls to BREventManager
- removed BREventManager
- renamed error message
- fixed Firebase Analytics event error

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* version bump

update gitignore

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/ fixed send issue add syncing measurements (#255)

* removed unused BRSharedPreferences

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* started commenting out more Timber

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Added more shared preferences for syncing

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Commented out many verbose Timber logs

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* WIP

Still trying to figure out the eplased time and last and start timestamps…???
I dunno

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Moved sync measurment into the method calls

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Debugged the install issue with send

- Moved all the measurements in new methods
- recalculated measure points
- Added analytics
- event did_complete_sync was shown!
- adding a dummy file to make sure file system is set
||||WIP still verifying the JSON is present
- added a blockheight label
-  changed the sleep time (a hack to allow the device time to refresh the view) to 100 ms from 500ms!!
-WIP Why is the bundle not showing on time
Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* replaces afID to first location

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed redundant sync measurements

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Techdebt/test refactor cruft removal (#250)

* Removed non english seed words

-Refactor tests
- Reset AnalyticsTests

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Rename Bitcoinletter to Litecoinletters

-added tests
testLitecoinSymbolConstants
testAppExternalURLConstants
testFirebaseAnalyticsConstants

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: [#152] make sure using Fragment, FragmentManager and FragmentTransaction from androidx (#260)

* fix: [#126] the issue came from FragmentBalanceSeedReminder.fetchSeedPhrase, so we just wrap with runCatching for now to avoid crash (#263)

* version bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* Removed donation button

removed xml
removed fragments
removed references of the donation
removed analytical events

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: prevent activity close

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* enabled for Debug

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* fix: [#264] add null checking for BRKeyStore.removeAliasAndFiles (#270)

* fix: [#265] add null checking, migrate viewpage… (#271)

* fix: [WIP][#265] work in progress add null checking, migrate viewpager to viewpager2 and more

* fix: [#265] finalize migration some deprecated class and implement null checking at FragmentTransactionItem

* fix: dix dismiss outside FragmentTransactionDetails

* code bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

* version bump

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>
Co-authored-by: Josi Kie <54074780+josikie@users.noreply.github.com>
Co-authored-by: Andhika Yuana <andhikayuana@gmail.com>

* bumped version and code

* compiled the env (#284)

please check @andhikayuana @josikie  that you are able to compile

* Users complained that recyclerView was setting to the wrong language

- Polished to index to a language
- bump code

* chore: [#126] simplify exception handling at BRKeyStore._getData and record exception to Firebase Crashlytics (#283)

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>
Co-authored-by: Josi Kie <54074780+josikie@users.noreply.github.com>
Co-authored-by: Andhika Yuana <andhikayuana@gmail.com>

* Added abilities to copy transaction id by click the transaction id (#290)

* Added abilities to copy transaction id by click the transaction id

* Update build.gradle

* version and code bump

* Unit Test(s) Migration (#287)

* chore: [test] add BRConstantsTest for unitTest and deprecated ConstantsTests inside androidTest

* chore: [test] remove unused test files

* chore: [test] add todo to fill the tests and change package name

* chore: [test] add basic example

* chore: [test] integrate with ci/cd

* chore: [test][ci] fix Cannot find a definition for command named android/restore-gradle-cache

* chore: [test][ci] fix Cannot find a definition for command named android/run-tests

* chore: [test][ci] fix Unexpected argument(s): test-command

* chore: [test][ci] fix Cannot find a definition for executor named android/android-docker

* chore: [test][ci] add default for gradle.properties

* chore: [test][ci] avoid breaking in build.gradle

* chore: [test][ci] enable androidx and jetifier

* chore: [test][ci] init submodule

* chore: [test][ci] just using run command for execute unit test step

* chore: [test][ci] add env for google-services.json

* chore: [test][ci] add env for google-services.json

* chore: [test][ci] add env for google-services.json

* Major refactor of code to move classes to the ideal location

- Removed cruft
- Moved all tests to the unitTest directory
- Remove poorly placed tests into (AndroidTest)
- Commented  old code into the new Kotlin class(es)
- working in the first test of currency
- Removed the paymentRequest method
- Renamed Classes

* chore: resolve CurrencyTests

* Added notes

---------

Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com>

* feat: remote config feature toggle (#293)

* feat: [remote-config] wip for remote config feature toggle

* feat: [remote-config] implement base url toggle for prod and dev

* feat: [test] add BRApiManagerTest

* fix: fix getBaseUrlProd for FragmentBuy and add test

* chore: change BRApiManager.fetchRates using getBaseUrlProd

* version and code bump

* Update .gitignore

---------

Signed-off-by: kcw-grunt <mrkerrywashington@icloud.com>
Co-authored-by: Josi Kie <54074780+josikie@users.noreply.github.com>
Co-authored-by: Andhika Yuana <andhikayuana@gmail.com>
Co-authored-by: josikie <kiejosi12@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏡 moderate-priority These are important and should be in progress now or soon
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants