From a9042535354366ccf1f5ad95ebd60d4b4d343272 Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Mon, 26 Sep 2022 23:38:15 +0200 Subject: [PATCH 1/6] Update AGP to 7.3.0, java to 11, kotlin to 1.6.10 --- .github/workflows/test-publish-dry-run.yaml | 15 ++++++--------- buildSrc/src/main/java/Dependencies.kt | 12 +++++++----- examples/android-gradle-kts/build.gradle.kts | 7 ++++--- .../src/main/AndroidManifest.xml | 3 +-- examples/android-gradle/build.gradle | 7 ++++--- .../android-gradle/src/main/AndroidManifest.xml | 11 ++--------- .../android-guardsquare-proguard/build.gradle | 7 ++++--- .../src/main/AndroidManifest.xml | 3 +-- .../build.gradle.kts | 7 ++++--- .../src/main/AndroidManifest.xml | 6 +++--- examples/android-ndk/build.gradle | 7 ++++--- .../android-ndk/src/main/AndroidManifest.xml | 3 +-- examples/android-room-lib/build.gradle.kts | 7 ++++--- .../src/main/AndroidManifest.xml | 2 -- plugin-build/build.gradle.kts | 17 +++++++++-------- plugin-build/gradle.properties | 2 ++ .../android/gradle/BaseSentryPluginTest.kt | 11 ++++------- 17 files changed, 60 insertions(+), 67 deletions(-) delete mode 100644 examples/android-room-lib/src/main/AndroidManifest.xml diff --git a/.github/workflows/test-publish-dry-run.yaml b/.github/workflows/test-publish-dry-run.yaml index be6f002f..16a88b20 100644 --- a/.github/workflows/test-publish-dry-run.yaml +++ b/.github/workflows/test-publish-dry-run.yaml @@ -26,25 +26,22 @@ jobs: - agp: "7.1.3" gradle: "7.3.3" java: "11" - - agp: "7.1.3" + - agp: "7.2.1" gradle: "7.4" java: "11" - - agp: "7.1.3" - gradle: "7.5" - java: "11" - agp: "7.2.1" - gradle: "7.3.3" + gradle: "7.5" java: "11" - - agp: "7.2.1" + - agp: "7.3.0" gradle: "7.4" java: "11" - - agp: "7.2.1" + - agp: "7.3.0" gradle: "7.5" java: "11" - - agp: "7.3.0-beta05" + - agp: "7.4.0-beta01" gradle: "7.5" java: "11" - - agp: "7.4.0-alpha03" + - agp: "8.0.0-alpha01" gradle: "7.5" java: "11" diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 6e1eeccf..094794be 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -1,8 +1,7 @@ object BuildPluginsVersion { - val AGP = System.getenv("VERSION_AGP") ?: "7.2.1" - const val DOKKA = "1.5.31" - const val KOTLIN = "1.5.31" - const val KOTLIN_LANG_VERSION = "1.5" + val AGP = System.getenv("VERSION_AGP") ?: "7.3.0" + const val DOKKA = "1.6.10" + const val KOTLIN = "1.6.10" const val AAR_2_JAR = "0.6" const val KTLINT = "10.2.1" // do not upgrade to 0.18.0, it does not generate the pom-default.xml and module.json under @@ -12,6 +11,9 @@ object BuildPluginsVersion { } object LibsVersion { + const val SDK_VERSION = 33 + const val MIN_SDK_VERSION = 21 + const val JUNIT = "4.13.2" const val ASM = "7.0" // compatibility matrix -> https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/instrumentation/InstrumentationContext#apiversion const val SQLITE = "2.1.0" @@ -55,7 +57,7 @@ object Samples { } object Room { - private const val version = "2.3.0" + private const val version = "2.4.3" const val runtime = "androidx.room:room-runtime:${version}" const val ktx = "androidx.room:room-ktx:${version}" const val compiler = "androidx.room:room-compiler:${version}" diff --git a/examples/android-gradle-kts/build.gradle.kts b/examples/android-gradle-kts/build.gradle.kts index a3f773ee..edbfc64d 100644 --- a/examples/android-gradle-kts/build.gradle.kts +++ b/examples/android-gradle-kts/build.gradle.kts @@ -4,10 +4,10 @@ plugins { } android { - compileSdk = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdk = 21 - targetSdk = 30 + minSdk = LibsVersion.MIN_SDK_VERSION + targetSdk = LibsVersion.SDK_VERSION versionCode = 1 versionName = "1.0" } @@ -17,6 +17,7 @@ android { proguardFiles.add(getDefaultProguardFile("proguard-android-optimize.txt")) } } + namespace = "com.example.sampleapp" } sentry { diff --git a/examples/android-gradle-kts/src/main/AndroidManifest.xml b/examples/android-gradle-kts/src/main/AndroidManifest.xml index e7972de3..dba01bc3 100644 --- a/examples/android-gradle-kts/src/main/AndroidManifest.xml +++ b/examples/android-gradle-kts/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/examples/android-gradle/build.gradle b/examples/android-gradle/build.gradle index 2d1c899b..9b43efa6 100644 --- a/examples/android-gradle/build.gradle +++ b/examples/android-gradle/build.gradle @@ -14,10 +14,10 @@ apply plugin: 'com.android.application' apply plugin: 'io.sentry.android.gradle' android { - compileSdkVersion = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdkVersion 21 - targetSdkVersion 30 + minSdk LibsVersion.MIN_SDK_VERSION + targetSdk LibsVersion.SDK_VERSION versionCode = 1 versionName = "1.0" } @@ -28,6 +28,7 @@ android { 'proguard-android-optimize.txt') } } + namespace 'com.example.sampleapp' } sentry { diff --git a/examples/android-gradle/src/main/AndroidManifest.xml b/examples/android-gradle/src/main/AndroidManifest.xml index 17b6b62d..dba01bc3 100644 --- a/examples/android-gradle/src/main/AndroidManifest.xml +++ b/examples/android-gradle/src/main/AndroidManifest.xml @@ -1,12 +1,5 @@ - + - - - - - - - + diff --git a/examples/android-guardsquare-proguard/build.gradle b/examples/android-guardsquare-proguard/build.gradle index 57801534..6f790bb9 100644 --- a/examples/android-guardsquare-proguard/build.gradle +++ b/examples/android-guardsquare-proguard/build.gradle @@ -16,10 +16,10 @@ apply plugin: 'io.sentry.android.gradle' apply plugin: 'com.guardsquare.proguard' android { - compileSdkVersion = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdkVersion 21 - targetSdkVersion 30 + minSdk LibsVersion.MIN_SDK_VERSION + targetSdk LibsVersion.SDK_VERSION versionCode = 1 versionName = "1.0" } @@ -29,6 +29,7 @@ android { minifyEnabled false } } + namespace 'com.example.sampleapp' } proguard { diff --git a/examples/android-guardsquare-proguard/src/main/AndroidManifest.xml b/examples/android-guardsquare-proguard/src/main/AndroidManifest.xml index e7972de3..dba01bc3 100644 --- a/examples/android-guardsquare-proguard/src/main/AndroidManifest.xml +++ b/examples/android-guardsquare-proguard/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/examples/android-instrumentation-sample/build.gradle.kts b/examples/android-instrumentation-sample/build.gradle.kts index 46945177..9a767546 100644 --- a/examples/android-instrumentation-sample/build.gradle.kts +++ b/examples/android-instrumentation-sample/build.gradle.kts @@ -14,10 +14,10 @@ plugins { // } android { - compileSdk = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdk = 21 - targetSdk = 30 + minSdk = LibsVersion.MIN_SDK_VERSION + targetSdk = LibsVersion.SDK_VERSION versionCode = 1 versionName = "1.0" } @@ -41,6 +41,7 @@ android { kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() } + namespace = "io.sentry.samples.instrumentation" } // useful, when we want to modify room-generated classes, and then compile them into .class files diff --git a/examples/android-instrumentation-sample/src/main/AndroidManifest.xml b/examples/android-instrumentation-sample/src/main/AndroidManifest.xml index d476ab5c..e849c17b 100644 --- a/examples/android-instrumentation-sample/src/main/AndroidManifest.xml +++ b/examples/android-instrumentation-sample/src/main/AndroidManifest.xml @@ -1,11 +1,11 @@ - + + android:theme="@style/Theme.AppCompat.NoActionBar" + android:exported="true"> diff --git a/examples/android-ndk/build.gradle b/examples/android-ndk/build.gradle index 01a61020..5345ec5f 100644 --- a/examples/android-ndk/build.gradle +++ b/examples/android-ndk/build.gradle @@ -13,10 +13,10 @@ buildscript { apply plugin: 'com.android.application' android { - compileSdkVersion = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdkVersion 21 - targetSdkVersion 30 + minSdkVersion LibsVersion.MIN_SDK_VERSION + targetSdk LibsVersion.SDK_VERSION versionCode = 1 versionName = "1.0" } @@ -30,6 +30,7 @@ android { path "jni/Android.mk" } } + namespace 'com.example.sampleapp' } if (System.getenv("AUTO_UPLOAD")) { diff --git a/examples/android-ndk/src/main/AndroidManifest.xml b/examples/android-ndk/src/main/AndroidManifest.xml index e7972de3..dba01bc3 100644 --- a/examples/android-ndk/src/main/AndroidManifest.xml +++ b/examples/android-ndk/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/examples/android-room-lib/build.gradle.kts b/examples/android-room-lib/build.gradle.kts index 125e5e21..3e456983 100644 --- a/examples/android-room-lib/build.gradle.kts +++ b/examples/android-room-lib/build.gradle.kts @@ -4,15 +4,16 @@ plugins { } android { - compileSdk = 30 + compileSdk = LibsVersion.SDK_VERSION defaultConfig { - minSdk = 21 - targetSdk = 30 + minSdk = LibsVersion.MIN_SDK_VERSION + targetSdk = LibsVersion.SDK_VERSION } kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() } + namespace = "io.sentry.android.instrumentation.lib" } dependencies { diff --git a/examples/android-room-lib/src/main/AndroidManifest.xml b/examples/android-room-lib/src/main/AndroidManifest.xml deleted file mode 100644 index 3ece8a39..00000000 --- a/examples/android-room-lib/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/plugin-build/build.gradle.kts b/plugin-build/build.gradle.kts index 386fd9fa..7cb58507 100644 --- a/plugin-build/build.gradle.kts +++ b/plugin-build/build.gradle.kts @@ -62,27 +62,28 @@ dependencies { } configure { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } } // We need to compile Groovy first and let Kotlin depend on it. // See https://docs.gradle.org/6.1-rc-1/release-notes.html#compilation-order tasks.withType().configureEach { - sourceCompatibility = JavaVersion.VERSION_1_8.toString() - targetCompatibility = JavaVersion.VERSION_1_8.toString() + sourceCompatibility = JavaVersion.VERSION_11.toString() + targetCompatibility = JavaVersion.VERSION_11.toString() classpath = sourceSets["main"].compileClasspath } tasks.withType().configureEach { - sourceCompatibility = JavaVersion.VERSION_1_8.toString() - targetCompatibility = JavaVersion.VERSION_1_8.toString() + sourceCompatibility = JavaVersion.VERSION_11.toString() + targetCompatibility = JavaVersion.VERSION_11.toString() classpath += files(sourceSets["main"].groovy.classesDirectory) kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() + jvmTarget = JavaVersion.VERSION_11.toString() freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn", "-Xjvm-default=enable") - languageVersion = "1.3" + languageVersion = "1.4" } } diff --git a/plugin-build/gradle.properties b/plugin-build/gradle.properties index a8d41746..6dca2cb4 100644 --- a/plugin-build/gradle.properties +++ b/plugin-build/gradle.properties @@ -1,6 +1,8 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1536m -XX:MaxPermSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.daemon=false +kotlin.stdlib.default.dependency=false + # for debugging # org.gradle.logging.level=info diff --git a/plugin-build/src/test/kotlin/io/sentry/android/gradle/BaseSentryPluginTest.kt b/plugin-build/src/test/kotlin/io/sentry/android/gradle/BaseSentryPluginTest.kt index 7896393d..2aeec8c6 100644 --- a/plugin-build/src/test/kotlin/io/sentry/android/gradle/BaseSentryPluginTest.kt +++ b/plugin-build/src/test/kotlin/io/sentry/android/gradle/BaseSentryPluginTest.kt @@ -94,18 +94,15 @@ abstract class BaseSentryPluginTest( // The supported Gradle version can be found here: // https://developer.android.com/studio/releases/gradle-plugin#updating-gradle // The pair is [AGP Version, Gradle Version] - arrayOf("7.0.4", "7.0.2"), - arrayOf("7.0.4", "7.1.1"), arrayOf("7.0.4", "7.2"), arrayOf("7.1.3", "7.2"), - arrayOf("7.1.3", "7.3.3"), - arrayOf("7.1.3", "7.4"), - arrayOf("7.1.3", "7.5"), arrayOf("7.2.1", "7.3.3"), arrayOf("7.2.1", "7.4"), arrayOf("7.2.1", "7.5"), - arrayOf("7.3.0-beta05", "7.5"), - arrayOf("7.4.0-alpha03", "7.5") + arrayOf("7.3.0", "7.4"), + arrayOf("7.3.0", "7.5"), + arrayOf("7.4.0-beta01", "7.5"), + arrayOf("8.0.0-alpha01", "7.5") ) internal fun GradleRunner.appendArguments(vararg arguments: String) = From 24b65de6060941b1f9918145ee9da7f1dec0bf19 Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Tue, 27 Sep 2022 00:03:47 +0200 Subject: [PATCH 2/6] Revert removing stdlib --- plugin-build/gradle.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugin-build/gradle.properties b/plugin-build/gradle.properties index 6dca2cb4..a8d41746 100644 --- a/plugin-build/gradle.properties +++ b/plugin-build/gradle.properties @@ -1,8 +1,6 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1536m -XX:MaxPermSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.daemon=false -kotlin.stdlib.default.dependency=false - # for debugging # org.gradle.logging.level=info From 5e754e0097b8a74d7951bb6c9aee1fe785aa8941 Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Tue, 27 Sep 2022 00:08:31 +0200 Subject: [PATCH 3/6] Changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77d0c177..57e5476f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- Bump AGP to v7.3.0 + ## 3.1.6 ### Features From 5b8246575004cf9ca452901e4b80cd70a27b3b7d Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Tue, 27 Sep 2022 09:04:15 +0200 Subject: [PATCH 4/6] Do not apply proguard plugin on AGP > 8 --- buildSrc/src/main/java/Dependencies.kt | 4 ++++ .../android-guardsquare-proguard/build.gradle | 20 +++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 094794be..10dfa411 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -1,3 +1,5 @@ +import org.gradle.util.VersionNumber + object BuildPluginsVersion { val AGP = System.getenv("VERSION_AGP") ?: "7.3.0" const val DOKKA = "1.6.10" @@ -8,6 +10,8 @@ object BuildPluginsVersion { // build/publications/maven const val MAVEN_PUBLISH = "0.17.0" const val PROGUARD = "7.1.0" + + fun isProguardApplicable(): Boolean = VersionNumber.parse(AGP).major < 8 } object LibsVersion { diff --git a/examples/android-guardsquare-proguard/build.gradle b/examples/android-guardsquare-proguard/build.gradle index 6f790bb9..3f633267 100644 --- a/examples/android-guardsquare-proguard/build.gradle +++ b/examples/android-guardsquare-proguard/build.gradle @@ -13,7 +13,9 @@ buildscript { apply plugin: 'com.android.application' apply plugin: 'io.sentry.android.gradle' -apply plugin: 'com.guardsquare.proguard' +if (BuildPluginsVersion.INSTANCE.isProguardApplicable()) { + apply plugin: 'com.guardsquare.proguard' +} android { compileSdk = LibsVersion.SDK_VERSION @@ -32,13 +34,15 @@ android { namespace 'com.example.sampleapp' } -proguard { - configurations { - release { - defaultConfiguration "proguard-android-optimize.txt" - configuration "proguard-project.txt" - } - } +if (BuildPluginsVersion.INSTANCE.isProguardApplicable()) { + proguard { + configurations { + release { + defaultConfiguration "proguard-android-optimize.txt" + configuration "proguard-project.txt" + } + } + } } sentry { From 135bda4d68270b9b87d344ce5c62d7482cf25859 Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Tue, 27 Sep 2022 09:06:39 +0200 Subject: [PATCH 5/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57e5476f..ffe75145 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## Unreleased -- Bump AGP to v7.3.0 +- Bump AGP to v7.3.0 ([#378](https://github.com/getsentry/sentry-android-gradle-plugin/pull/378)) ## 3.1.6 From 799c5fa5eefdc8317e6df7a36dcd520cbbe8d596 Mon Sep 17 00:00:00 2001 From: Roman Zavarnitsyn Date: Tue, 27 Sep 2022 09:07:15 +0200 Subject: [PATCH 6/6] Update buildSrc/src/main/java/Dependencies.kt --- buildSrc/src/main/java/Dependencies.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 10dfa411..d01e06a7 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -10,7 +10,8 @@ object BuildPluginsVersion { // build/publications/maven const val MAVEN_PUBLISH = "0.17.0" const val PROGUARD = "7.1.0" - + + // proguard does not support AGP 8 yet fun isProguardApplicable(): Boolean = VersionNumber.parse(AGP).major < 8 }