From 1f6152a9d7cd43a8ac52415bca78a781afd68d4d Mon Sep 17 00:00:00 2001 From: Mateusz Armatys Date: Tue, 25 Oct 2022 11:52:46 +0200 Subject: [PATCH] Update Core libs to 9.2.0. Third-party library updates & emulator version update for instrumentation tests. - Change device for instrumentation tests (due to SIGSEGV crash on API 28, x86) - Update compileSdk to 32 (required by Compose) - AGP 7.3.1 (needed to fix jacoco issue for instrumented tests) - Kotlin 1.6.21 (1.6.20 is required by AGP and 1.6.21 required by Compose) - Remove `buildToolsVersion` - it's determined by Android Gradle Plugin - Hilt 2.44 - Android Test 1.4.0 - Android Test Orchestrator 1.4.1 - Dagger 2.44 - Fragment 1.5.4 --- .gitlab-ci.yml | 2 +- app/build.gradle.kts | 4 ++++ buildSrc/build.gradle.kts | 4 ++-- buildSrc/src/main/kotlin/AndroidConfig.kt | 6 +++--- buildSrc/src/main/kotlin/ProtonMail.kt | 5 +++++ buildSrc/src/main/kotlin/libraries.kt | 2 +- buildSrc/src/main/kotlin/versionsConfig.kt | 15 ++++++++------- domain/build.gradle.kts | 1 + proton-libs | 2 +- 9 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd6a21b9c..02b67a4bf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -205,7 +205,7 @@ firebase instrumentation tests: --app app/build/outputs/apk/beta/debug/ProtonMail-Android-${VERSION_NAME}-beta-debug.apk --test app/build/outputs/apk/androidTest/beta/debug/ProtonMail-Android-${VERSION_NAME}-beta-debug-androidTest.apk --type=instrumentation - --device model=Pixel2,version=28 + --device model=Pixel2.arm,version=28 --test-targets "notPackage ch.protonmail.android.uitests" --use-orchestrator --num-flaky-test-attempts=1 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8792ff237..b4fe3136d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -267,6 +267,10 @@ tasks.withType { systemProperty("kotlinx.coroutines.debug", "on") } +tasks.withType { + kotlinOptions { jvmTarget = ProtonMail.jvmTarget.toString() } +} + dependencies { androidTestImplementation(files("libs/fusion-release.aar")) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 294d24e88..401b76edc 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { `kotlin-dsl` - kotlin("jvm") version "1.6.10" + kotlin("jvm") version "1.6.21" } repositories { @@ -31,7 +31,7 @@ repositories { } dependencies { - val android = "7.2.2" + val android = "7.3.1" val easyGradle = "2.8" // Needed for setup Android config diff --git a/buildSrc/src/main/kotlin/AndroidConfig.kt b/buildSrc/src/main/kotlin/AndroidConfig.kt index 9f86af3e7..668c43a23 100644 --- a/buildSrc/src/main/kotlin/AndroidConfig.kt +++ b/buildSrc/src/main/kotlin/AndroidConfig.kt @@ -32,6 +32,7 @@ import studio.forface.easygradle.dsl.android.* fun org.gradle.api.Project.android( appIdSuffix: String? = null, + compileSdk: Int = ProtonMail.compileSdk, minSdk: Int = ProtonMail.minSdk, targetSdk: Int = ProtonMail.targetSdk, version: Version? = null, @@ -41,8 +42,7 @@ fun org.gradle.api.Project.android( ) = (this as ExtensionAware).extensions.configure { - compileSdkVersion(targetSdk) - buildToolsVersion("30.0.2") // Latest in Doker image + compileSdkVersion(compileSdk) ndkVersion = "21.3.6528147" // Same as Docker image defaultConfig { @@ -79,7 +79,7 @@ fun org.gradle.api.Project.android( compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = ProtonMail.jvmTarget targetCompatibility = sourceCompatibility } diff --git a/buildSrc/src/main/kotlin/ProtonMail.kt b/buildSrc/src/main/kotlin/ProtonMail.kt index 50a4185dd..9aacbbbc6 100644 --- a/buildSrc/src/main/kotlin/ProtonMail.kt +++ b/buildSrc/src/main/kotlin/ProtonMail.kt @@ -1,3 +1,5 @@ +import org.gradle.api.JavaVersion + /* * Copyright (c) 2022 Proton AG * @@ -26,6 +28,9 @@ object ProtonMail { const val versionName = "3.0.7" const val versionCode = 919 + const val compileSdk = 32 const val targetSdk = 31 const val minSdk = 23 + + val jvmTarget = JavaVersion.VERSION_11 } diff --git a/buildSrc/src/main/kotlin/libraries.kt b/buildSrc/src/main/kotlin/libraries.kt index 13407ec4f..8b824f127 100644 --- a/buildSrc/src/main/kotlin/libraries.kt +++ b/buildSrc/src/main/kotlin/libraries.kt @@ -151,7 +151,7 @@ val DependencyHandler.`espresso-contrib` get() = androidx("test.espresso", modu val DependencyHandler.`espresso-intents` get() = androidx("test.espresso", module = "espresso-intents") version `espresso version` val DependencyHandler.`espresso-web` get() = androidx("test.espresso", module = "espresso-web") version `espresso version` val DependencyHandler.falcon get() = dependency("com.jraska", module = "falcon") version `falcon version` -val DependencyHandler.`orchestrator` get() = androidx("test", module = "orchestrator") version `android-test version` +val DependencyHandler.`orchestrator` get() = androidx("test", module = "orchestrator") version `android-test-orchestrator version` val DependencyHandler.`browserstack-gradle-plugin` get() = dependency("gradle.plugin.com.browserstack.gradle", module = "browserstack-gradle-plugin") version `browserstack-plugin version` val DependencyHandler.`uiautomator` get() = androidx("test.uiautomator", module = "uiautomator") version `uiautomator version` val DependencyHandler.`android-activation` get() = dependency("com.sun.mail", module = "android-activation") version `sun-mail-android version` diff --git a/buildSrc/src/main/kotlin/versionsConfig.kt b/buildSrc/src/main/kotlin/versionsConfig.kt index d1cad78ff..f40897cf7 100644 --- a/buildSrc/src/main/kotlin/versionsConfig.kt +++ b/buildSrc/src/main/kotlin/versionsConfig.kt @@ -23,20 +23,20 @@ import studio.forface.easygradle.dsl.android.* fun initVersions() { // region Kotlin - `kotlin version` = "1.6.10" // Released: Dec 14, 2021 + `kotlin version` = "1.6.21" // Released: Dec 14, 2021 `coroutines version` = "1.5.2" // Released: Sep 02, 2021 `serialization version` = "1.3.2" // Released: Dec 23, 2021 // endregion // region Android - `android-gradle-plugin version` = "7.2.2" + `android-gradle-plugin version` = "7.3.1" `android-annotation version` = "1.1.0" // Released: Jun 05, 2019 `appcompat version` = "1.2.0" // Released: Aug 19, 2020 `android-arch version` = "2.1.0" // Released: Sep 06, 2019 `constraint-layout version` = "2.0.4" // Released: Oct 31, 2020 `espresso version` = "3.4.0" // Released: Jul 04, 2021 - `hilt-android version` = "2.40.5" // Released: Dec 07, 2021 + `hilt-android version` = "2.44" // Released: Dec 07, 2021 `hilt-androidx version` = "1.0.0" // Released: May 05, 2021 `ktx version` = "1.6.0" // Released: Jun 30, 2021 `lifecycle version` = "2.4.0-alpha01" // Released: Mar 24, 2021 @@ -45,13 +45,13 @@ fun initVersions() { `android-room version` = "2.4.2" // Released: Feb 23, 2022 `android-work version` = "2.7.1" // Released: Nov 17, 2021 - `android-test version` = "1.4.0-beta01" // Released: May 15, 2021 + `android-test version` = "1.4.0" // Released: Jun 06, 2021 // endregion // region Others `assert4k version` = "0.7.1" // Released: May 04, 2021 `assistedInject version` = "0.6.0" // Released: Sep 14, 2020 - `dagger version` = "2.40.5" // Released: Dec 07, 2021 + `dagger version` = "2.44" // Released: Dec 07, 2021 `mockK version` = "1.13.2" `retrofit version` = "2.9.0" // Released: May 20, 2020 @@ -62,11 +62,12 @@ fun initVersions() { } // Proton Core -const val `Proton-core version` = "9.1.2" +const val `Proton-core version` = "9.2.0" // Test const val `aerogear version` = "1.0.0" // Released: Mar 23, 2013 const val `android-test-ext version` = "1.1.3-rc01" // Released: Jun 22, 2021 +const val `android-test-orchestrator version` = "1.4.1" // Released: Dec 13, 2021 const val `assertJ version` = "3.13.2" // Released: Aug 04, 2019 const val `falcon version` = "2.1.1" // Released: Sep 24, 2018 const val `hamcrest version` = "1.3" // Released: @@ -80,7 +81,7 @@ const val `junit-ktx version` = "1.1.2" // Released: Aug // Android const val `android-biometric version` = "1.0.1" // Released: Jan 23, 2020 const val `android-core-splashscreen version` = "1.0.0-beta02" // Released: Mar 23, 2022 -const val `android-fragment version` = "1.3.6" // Released: Jul 21, 2021 +const val `android-fragment version` = "1.5.4" // Released: Oct 10, 2022 const val `android-media version` = "1.1.0" // Released: Sep 06, 2019 const val `android-preference version` = "1.1.1" // Released: Apr 15, 2020 const val `android-startup version` = "1.1.0" // Released: Aug 04, 2021 diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 6e671d689..762bcb8aa 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -52,5 +52,6 @@ tasks.withType { freeCompilerArgs = freeCompilerArgs + // Allow to use kotlin.Result as return type "-Xallow-result-return-type" + jvmTarget = ProtonMail.jvmTarget.toString() } } diff --git a/proton-libs b/proton-libs index 3f00767c0..ca808bf08 160000 --- a/proton-libs +++ b/proton-libs @@ -1 +1 @@ -Subproject commit 3f00767c045209a56d3e0565e425936e971b49ac +Subproject commit ca808bf081dca72795a229fad0dc34a8c1a31359