From 1537b2ed3d8f3f40412c951cc7a335e12e27f0e1 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 10 May 2022 23:42:33 +0200 Subject: [PATCH] Update duckduckgo regression benchmarks Make it compatible with Kotlin 1.7.0 release. --- .../benchmarkScripts/duckduckgo.benchmark.kts | 20 +- .../files/duckduckgo-kotlin-current.patch | 237 +++++++++++++++++- 2 files changed, 234 insertions(+), 23 deletions(-) diff --git a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts index 9253cc56c90..41f1e421d40 100644 --- a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts +++ b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts @@ -4,15 +4,11 @@ @file:BenchmarkProject( name = "duckduckgo", gitUrl = "https://github.com/duckduckgo/Android.git", - gitCommitSha = "18e2fcb53a6de6f4f9ef90f27a587d88b6d2e140" + gitCommitSha = "9c808cfda9877fbee5bbc8a542f6c80ede48e95f" ) import java.io.File -val stableReleasePatch = { - "duckduckgo-kotlin-1.6.20.patch" to File("benchmarkScripts/files/duckduckgo-kotlin-1.6.20.patch").inputStream() -} - val currentReleasePatch = { "duckduckgo-kotlin-current.patch" to File("benchmarkScripts/files/duckduckgo-kotlin-current.patch") .readText() @@ -26,7 +22,7 @@ runAllBenchmarks( title = "Clean build" useGradleArgs("--no-build-cache") - runTasks("assembleDebug") + runTasks(":app:assemblePlayDebug") runCleanupTasks("clean") } @@ -34,29 +30,29 @@ runAllBenchmarks( title = "Incremental build with ABI change in common ViewModelFactory" useGradleArgs("--no-build-cache") - runTasks("assembleDebug") - applyAbiChangeTo("common/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt") + runTasks(":app:assemblePlayDebug") + applyAbiChangeTo("common/src/main/java/com/duckduckgo/app/global/VpnViewModelFactory.kt") } scenario { title = "Incremetal build with ABI change in Kapt component" useGradleArgs("--no-build-cache") - runTasks("assembleDebug") - applyAbiChangeTo("vpn-main/src/main/java/com/duckduckgo/mobile/android/vpn/di/VpnComponent.kt") + runTasks(":app:assemblePlayDebug") + applyAbiChangeTo("vpn/src/main/java/com/duckduckgo/mobile/android/vpn/di/VpnModule.kt") } scenario { title = "Incremental build with change in Android common string resource" useGradleArgs("--no-build-cache") - runTasks("assembleDebug") + runTasks(":app:assemblePlayDebug") applyAndroidResourceValueChange("common-ui/src/main/res/values/strings.xml") } }, mapOf( - "1.6.20" to stableReleasePatch, + "1.6.20" to null, "1.7.0" to currentReleasePatch ) ) diff --git a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-current.patch b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-current.patch index b54378212e2..4d00b5f33bc 100644 --- a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-current.patch +++ b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-current.patch @@ -1,17 +1,184 @@ +diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt +index 8e4a4e16..fd280da8 100644 +--- a/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt ++++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt +@@ -342,6 +342,7 @@ open class BrowserActivity : DuckDuckGoActivity(), CoroutineScope by MainScope() + is Command.ShowAppRatingPrompt -> showAppEnjoymentPrompt(RateAppDialogFragment.create(command.promptCount, viewModel)) + is Command.ShowAppFeedbackPrompt -> showAppEnjoymentPrompt(GiveFeedbackDialogFragment.create(command.promptCount, viewModel)) + is Command.LaunchFeedbackView -> startActivity(FeedbackActivity.intent(this)) ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +index 1a75280d..bb4c5969 100644 +--- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt ++++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +@@ -633,6 +633,7 @@ class BrowserTabFragment : + is DownloadCommand.ShowDownloadStartedMessage -> downloadStarted(command) + is DownloadCommand.ShowDownloadFailedMessage -> downloadFailed(command) + is DownloadCommand.ShowDownloadSuccessMessage -> downloadSucceeded(command) ++ else -> Unit + } + } + +@@ -863,6 +864,7 @@ class BrowserTabFragment : + omnibarTextInput.setText(it.query) + omnibarTextInput.setSelection(it.query.length) + } ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +index e59c99e3..fab2910d 100644 +--- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt ++++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +@@ -1066,6 +1066,7 @@ class BrowserTabViewModel @Inject constructor( + is WebNavigationStateChange.PageCleared -> pageCleared() + is WebNavigationStateChange.UrlUpdated -> urlUpdated(stateChange.url) + is WebNavigationStateChange.PageNavigationCleared -> disableUserNavigation() ++ else -> Unit + } + + if (newWebNavigationState.progress ?: 0 >= SHOW_CONTENT_MIN_PROGRESS) { +diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserViewModel.kt +index 399a2f56..0e4449e1 100644 +--- a/app/src/main/java/com/duckduckgo/app/browser/BrowserViewModel.kt ++++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserViewModel.kt +@@ -117,6 +117,7 @@ class BrowserViewModel @Inject constructor( + is AppEnjoymentPromptOptions.ShowFeedbackPrompt -> { + command.value = Command.ShowAppFeedbackPrompt(promptType.promptCount) + } ++ else -> Unit + } + } + } +diff --git a/app/src/main/java/com/duckduckgo/app/fire/AutomaticDataClearer.kt b/app/src/main/java/com/duckduckgo/app/fire/AutomaticDataClearer.kt +index a0d65823..17fc73b8 100644 +--- a/app/src/main/java/com/duckduckgo/app/fire/AutomaticDataClearer.kt ++++ b/app/src/main/java/com/duckduckgo/app/fire/AutomaticDataClearer.kt +@@ -195,6 +195,7 @@ class AutomaticDataClearer @Inject constructor( + dataClearerState.value = FINISHED + } + } ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/fire/fireproofwebsite/ui/FireproofWebsiteAdapter.kt b/app/src/main/java/com/duckduckgo/app/fire/fireproofwebsite/ui/FireproofWebsiteAdapter.kt +index 6b3b1f4c..a54ab9e3 100644 +--- a/app/src/main/java/com/duckduckgo/app/fire/fireproofwebsite/ui/FireproofWebsiteAdapter.kt ++++ b/app/src/main/java/com/duckduckgo/app/fire/fireproofwebsite/ui/FireproofWebsiteAdapter.kt +@@ -137,6 +137,7 @@ class FireproofWebsiteAdapter( + ) + ] + ) ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt b/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt +index 5904e811..3e6eea27 100644 +--- a/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt ++++ b/app/src/main/java/com/duckduckgo/app/icon/ui/ChangeIconActivity.kt +@@ -92,6 +92,7 @@ class ChangeIconActivity : DuckDuckGoActivity() { + } + .show() + } ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/launch/LaunchBridgeActivity.kt b/app/src/main/java/com/duckduckgo/app/launch/LaunchBridgeActivity.kt +index ef708ab5..09fef2f8 100644 +--- a/app/src/main/java/com/duckduckgo/app/launch/LaunchBridgeActivity.kt ++++ b/app/src/main/java/com/duckduckgo/app/launch/LaunchBridgeActivity.kt +@@ -59,6 +59,7 @@ class LaunchBridgeActivity : DuckDuckGoActivity() { + is LaunchViewModel.Command.Home -> { + showHome() + } ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/location/ui/LocationPermissionsAdapter.kt b/app/src/main/java/com/duckduckgo/app/location/ui/LocationPermissionsAdapter.kt +index 31750b34..a10a4e1b 100644 +--- a/app/src/main/java/com/duckduckgo/app/location/ui/LocationPermissionsAdapter.kt ++++ b/app/src/main/java/com/duckduckgo/app/location/ui/LocationPermissionsAdapter.kt +@@ -167,6 +167,7 @@ class LocationPermissionsAdapter( + is LocationPermissionsViewHolder.LocationPermissionsItemViewHolder -> { + holder.bind(getLocationPermission(position)) + } ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/privacy/ui/WebsitesAdapter.kt b/app/src/main/java/com/duckduckgo/app/privacy/ui/WebsitesAdapter.kt +index 4cf9ded9..50beedbe 100644 +--- a/app/src/main/java/com/duckduckgo/app/privacy/ui/WebsitesAdapter.kt ++++ b/app/src/main/java/com/duckduckgo/app/privacy/ui/WebsitesAdapter.kt +@@ -143,6 +143,7 @@ class WebsitesAdapter( + is WebsiteViewHolder.WebsiteItemViewHolder -> { + holder.bind(entries[getWebsiteItemPosition(position)]) + } ++ else -> Unit + } + } + } +diff --git a/app/src/main/java/com/duckduckgo/app/privacy/ui/WhitelistActivity.kt b/app/src/main/java/com/duckduckgo/app/privacy/ui/WhitelistActivity.kt +index e8bc2912..5d31bcd1 100644 +--- a/app/src/main/java/com/duckduckgo/app/privacy/ui/WhitelistActivity.kt ++++ b/app/src/main/java/com/duckduckgo/app/privacy/ui/WhitelistActivity.kt +@@ -103,6 +103,7 @@ class WhitelistActivity : DuckDuckGoActivity() { + is ShowEdit -> showEditDialog(command.entry) + is ConfirmDelete -> showDeleteDialog(command.entry) + is ShowWhitelistFormatError -> showWhitelistFormatError() ++ else -> Unit + } + } + +diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt +index 97627faf..eb51c8d9 100644 +--- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt ++++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt +@@ -174,6 +174,7 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherListener, Coroutine + private fun processCommand(command: Command?) { + when (command) { + is Close -> finishAfterTransition() ++ else -> Unit + } + } + +diff --git a/app/src/play/java/com/duckduckgo/referral/PlayStoreAppReferrerStateListener.kt b/app/src/play/java/com/duckduckgo/referral/PlayStoreAppReferrerStateListener.kt +index d8dfa642..988cf1f9 100644 +--- a/app/src/play/java/com/duckduckgo/referral/PlayStoreAppReferrerStateListener.kt ++++ b/app/src/play/java/com/duckduckgo/referral/PlayStoreAppReferrerStateListener.kt +@@ -165,6 +165,7 @@ class PlayStoreAppReferrerStateListener @Inject constructor( + variantManager.updateAppReferrerVariant(VariantManager.RESERVED_EU_AUCTION_VARIANT) + appReferrerDataStore.installedFromEuAuction = true + } ++ else -> Unit + } + + appReferrerDataStore.referrerCheckedPreviously = true diff --git a/build.gradle b/build.gradle -index 5e2a7230..9b06a640 100644 +index 8a5b9c6e..03f70375 100644 --- a/build.gradle +++ b/build.gradle -@@ -2,7 +2,7 @@ +@@ -2,9 +2,9 @@ buildscript { ext { -- kotlin_version = '1.6.10' +- kotlin_version = '1.6.21' + kotlin_version = '' spotless = "6.1.2" - anvil_version = "2.3.11-1-6-10" - gradle_plugin = "7.0.3" -@@ -13,6 +13,7 @@ buildscript { +- anvil_version = "2.4.0" ++ anvil_version = "2.4.1-1.7.0-Beta-25-SNAPSHOT" + gradle_plugin = "7.0.4" + min_sdk = 23 + target_sdk = 30 +@@ -13,13 +13,19 @@ buildscript { } repositories { @@ -19,15 +186,39 @@ index 5e2a7230..9b06a640 100644 google() mavenCentral() maven { url "https://plugins.gradle.org/m2/" } -@@ -36,6 +37,7 @@ apply plugin: 'com.osacky.fulladle' ++ maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" } + flatDir { + dirs "$rootProject.projectDir/libs" + } + } ++ configurations.classpath.resolutionStrategy { ++ force 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:' ++ force 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:' ++ } + dependencies { + classpath "com.android.tools.build:gradle:$gradle_plugin" + classpath "com.diffplug.spotless:spotless-plugin-gradle:$spotless" +@@ -36,11 +42,18 @@ apply plugin: 'com.osacky.fulladle' allprojects { repositories { + mavenLocal() google() mavenCentral() ++ maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" } } -@@ -70,4 +72,4 @@ fladle { + configurations.all { +- resolutionStrategy.force 'org.objenesis:objenesis:2.6' ++ resolutionStrategy { ++ force 'org.objenesis:objenesis:2.6' ++ force 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:' ++ force 'org.jetbrains.kotlin:kotlin-compiler-embeddable:' ++ force 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2' ++ } + } + } + +@@ -70,4 +83,4 @@ fladle { } } @@ -35,15 +226,39 @@ index 5e2a7230..9b06a640 100644 \ No newline at end of file +apply plugin: 'android-reporting' diff --git a/versions.properties b/versions.properties -index 72231792..b6fea830 100644 +index 069ab45e..26f56990 100644 --- a/versions.properties +++ b/versions.properties -@@ -77,7 +77,7 @@ version.io.reactivex.rxjava2..rxjava=2.2.9 +@@ -69,7 +69,7 @@ version.jakewharton.rxrelay2=2.0.0 version.jakewharton.timber=5.0.1 --version.kotlin=1.6.20 +-version.kotlin=1.6.21 +version.kotlin= version.kotlinx.coroutines=1.6.1 +diff --git a/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/apps/ui/TrackingProtectionExclusionListActivity.kt b/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/apps/ui/TrackingProtectionExclusionListActivity.kt +index ffa80389..caa53aa3 100644 +--- a/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/apps/ui/TrackingProtectionExclusionListActivity.kt ++++ b/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/apps/ui/TrackingProtectionExclusionListActivity.kt +@@ -183,6 +183,7 @@ class TrackingProtectionExclusionListActivity : + command.position + ) + is Command.LaunchFeedback -> reportBreakage.launch(command.reportBreakageScreen) ++ else -> Unit + } + } + +diff --git a/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt b/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt +index bdc8881c..7c8f067e 100644 +--- a/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt ++++ b/vpn/src/main/java/com/duckduckgo/mobile/android/vpn/ui/tracker_activity/DeviceShieldTrackerActivity.kt +@@ -228,6 +228,7 @@ class DeviceShieldTrackerActivity : + is DeviceShieldTrackerActivityViewModel.Command.ShowRemoveFeatureConfirmationDialog -> launchRemoveFeatureConfirmationDialog() + is DeviceShieldTrackerActivityViewModel.Command.CloseScreen -> finish() + is DeviceShieldTrackerActivityViewModel.Command.OpenVpnSettings -> openVPNSettings() ++ else -> Unit + } + } +