diff --git a/agp-patch/src/main/kotlin/com/android/build/gradle/internal/DependencyConfigurator.kt b/agp-patch/src/main/kotlin/com/android/build/gradle/internal/DependencyConfigurator.kt index f7d176f9..326740f6 100644 --- a/agp-patch/src/main/kotlin/com/android/build/gradle/internal/DependencyConfigurator.kt +++ b/agp-patch/src/main/kotlin/com/android/build/gradle/internal/DependencyConfigurator.kt @@ -19,9 +19,7 @@ package com.android.build.gradle.internal -import com.android.build.api.artifact.impl.ArtifactsImpl import com.android.build.api.attributes.AgpVersionAttr -import com.android.build.api.attributes.BuildTypeAttr import com.android.build.api.attributes.BuildTypeAttr.Companion.ATTRIBUTE import com.android.build.api.attributes.ProductFlavorAttr import com.android.build.gradle.internal.component.ComponentCreationConfig @@ -39,16 +37,13 @@ import com.android.build.gradle.internal.dependency.AndroidXDependencySubstituti import com.android.build.gradle.internal.dependency.AsmClassesTransform.Companion.registerAsmTransformForComponent import com.android.build.gradle.internal.dependency.ClassesDirToClassesTransform import com.android.build.gradle.internal.dependency.CollectClassesTransform -import com.android.build.gradle.internal.dependency.CollectPackagesForR8Transform import com.android.build.gradle.internal.dependency.CollectResourceSymbolsTransform import com.android.build.gradle.internal.dependency.DexingRegistration import com.android.build.gradle.internal.dependency.EnumerateClassesTransform import com.android.build.gradle.internal.dependency.ExtractAarTransform -import com.android.build.gradle.internal.dependency.ExtractCompileSdkShimTransform -import com.android.build.gradle.internal.dependency.ExtractNavigationXmlTransform import com.android.build.gradle.internal.dependency.ExtractJniTransform +import com.android.build.gradle.internal.dependency.ExtractNavigationXmlTransform import com.android.build.gradle.internal.dependency.ExtractProGuardRulesTransform -import com.android.build.gradle.internal.dependency.ExtractSdkShimTransform import com.android.build.gradle.internal.dependency.FilterShrinkerRulesTransform import com.android.build.gradle.internal.dependency.GenericTransformParameters import com.android.build.gradle.internal.dependency.IdentityTransform @@ -67,22 +62,12 @@ import com.android.build.gradle.internal.dependency.registerDexingOutputSplitTra import com.android.build.gradle.internal.dsl.BaseFlavor import com.android.build.gradle.internal.dsl.BuildType import com.android.build.gradle.internal.dsl.DefaultConfig -import com.android.build.gradle.internal.dsl.ModulePropertyKey import com.android.build.gradle.internal.dsl.ProductFlavor import com.android.build.gradle.internal.dsl.SigningConfig -import com.android.build.gradle.internal.packaging.getDefaultDebugKeystoreSigningConfig -import com.android.build.gradle.internal.profile.AnalyticsService import com.android.build.gradle.internal.publishing.AarOrJarTypeToConsume import com.android.build.gradle.internal.publishing.AndroidArtifacts -import com.android.build.gradle.internal.res.namespaced.AutoNamespacePreProcessTransform -import com.android.build.gradle.internal.res.namespaced.AutoNamespaceTransform -import com.android.build.gradle.internal.scope.InternalArtifactType -import com.android.build.gradle.internal.services.AndroidLocationsBuildService import com.android.build.gradle.internal.services.ProjectServices import com.android.build.gradle.internal.services.getBuildService -import com.android.build.gradle.internal.signing.SigningConfigData -import com.android.build.gradle.internal.tasks.AsarToExtractedApksTransform -import com.android.build.gradle.internal.tasks.AsarTransform import com.android.build.gradle.internal.tasks.factory.BootClasspathConfig import com.android.build.gradle.internal.utils.ATTR_ENABLE_CORE_LIBRARY_DESUGARING import com.android.build.gradle.internal.utils.ATTR_LINT_MIN_SDK @@ -94,15 +79,11 @@ import com.android.build.gradle.internal.variant.VariantInputModel import com.android.build.gradle.options.BooleanOption import com.android.build.gradle.options.StringOption import com.android.build.gradle.options.SyncOptions -import com.android.builder.core.BuilderConstants import com.android.builder.dexing.R8Version -import com.android.repository.Revision import com.google.common.collect.Maps import org.gradle.api.ActionConfiguration import org.gradle.api.Project -import org.gradle.api.artifacts.ArtifactView import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.artifacts.transform.TransformAction import org.gradle.api.artifacts.transform.TransformSpec @@ -111,7 +92,6 @@ import org.gradle.api.artifacts.type.ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIB import org.gradle.api.attributes.AttributesSchema import org.gradle.api.attributes.Category import org.gradle.api.attributes.Usage -import org.gradle.api.provider.Provider import org.gradle.testing.jacoco.plugins.JacocoPluginExtension import java.lang.Boolean.FALSE import java.lang.Boolean.TRUE @@ -155,22 +135,14 @@ class DependencyConfigurator( } fun configureGeneralTransforms( - namespacedAndroidResources: Boolean, aarOrJarTypeToConsume: AarOrJarTypeToConsume ): DependencyConfigurator { val dependencies: DependencyHandler = project.dependencies val projectOptions = projectServices.projectOptions - // The aars/jars may need to be processed (e.g., jetified to AndroidX) before they can be - // used - val autoNamespaceDependencies = - namespacedAndroidResources && projectOptions[BooleanOption.CONVERT_NON_NAMESPACED_DEPENDENCIES] - val jetifiedAarOutputType = if (autoNamespaceDependencies) { - AndroidArtifacts.ArtifactType.MAYBE_NON_NAMESPACED_PROCESSED_AAR - } else { - AndroidArtifacts.ArtifactType.PROCESSED_AAR - } + val jetifiedAarOutputType = AndroidArtifacts.ArtifactType.PROCESSED_AAR + // Arguments passed to an ArtifactTransform must not be null val jetifierIgnoreList = projectOptions[StringOption.JETIFIER_IGNORE_LIST] ?: "" if (projectOptions.get(BooleanOption.ENABLE_JETIFIER)) { @@ -188,17 +160,10 @@ class DependencyConfigurator( ) { params -> params.ignoreListOption.setDisallowChanges(jetifierIgnoreList) } - } else if (autoNamespaceDependencies) { - // Namespaced resources code path is not optimized. Identity transforms are removed - // otherwise. + } else if (projectOptions[BooleanOption.ENABLE_IDENTITY_TRANSFORMS_FOR_PROCESSED_ARTIFACTS]) { + // These should not be needed in most scenarios now, but keeping the option for + // backwards compatibility. registerIdentityTransformWhenJetifierIsDisabled(jetifiedAarOutputType) - } else { - // Still register the transform if/when dagger plugin is applied - // TODO(b/288221106): Dagger plugin depends on our internal implementation, - // we need to eliminate their dependency on this to be able to remove the following. - project.plugins.withId("dagger.hilt.android.plugin") { - registerIdentityTransformWhenJetifierIsDisabled(jetifiedAarOutputType) - } } registerTransform( @@ -281,6 +246,9 @@ class DependencyConfigurator( spec.parameters.projectName.setDisallowChanges(project.name) spec.parameters.targetType.setDisallowChanges(transformTarget) spec.parameters.namespacedSharedLibSupport.setDisallowChanges(namespacedSharedLibSupport) + spec.parameters.filterOutGlobalRules.setDisallowChanges( + projectOptions[BooleanOption.R8_GLOBAL_OPTIONS_IN_CONSUMER_RULES_DISALLOWED] + ) } } if (projectOptions[BooleanOption.PRECOMPILE_DEPENDENCIES_RESOURCES]) { @@ -353,37 +321,19 @@ class DependencyConfigurator( ExtractProGuardRulesTransform::class.java, aarOrJarTypeToConsume.jar, AndroidArtifacts.ArtifactType.UNFILTERED_PROGUARD_RULES - ) + ) { params -> + params.filterOutGlobalRules.set( + projectServices.projectOptions.get( + BooleanOption.R8_GLOBAL_OPTIONS_IN_CONSUMER_RULES_DISALLOWED + ) + ) + } } registerTransform( LibrarySymbolTableTransform::class.java, AndroidArtifacts.ArtifactType.EXPLODED_AAR, AndroidArtifacts.ArtifactType.SYMBOL_LIST_WITH_PACKAGE_NAME ) - if (autoNamespaceDependencies) { - registerTransform( - AutoNamespacePreProcessTransform::class.java, - AndroidArtifacts.ArtifactType.MAYBE_NON_NAMESPACED_PROCESSED_AAR, - AndroidArtifacts.ArtifactType.PREPROCESSED_AAR_FOR_AUTO_NAMESPACE - ) { params -> - projectServices.initializeAapt2Input(params.aapt2, task = null) - } - registerTransform( - AutoNamespacePreProcessTransform::class.java, - AndroidArtifacts.ArtifactType.JAR, - AndroidArtifacts.ArtifactType.PREPROCESSED_AAR_FOR_AUTO_NAMESPACE - ) { params -> - projectServices.initializeAapt2Input(params.aapt2, task = null) - } - - registerTransform( - AutoNamespaceTransform::class.java, - AndroidArtifacts.ArtifactType.PREPROCESSED_AAR_FOR_AUTO_NAMESPACE, - AndroidArtifacts.ArtifactType.PROCESSED_AAR - ) { params -> - projectServices.initializeAapt2Input(params.aapt2, task = null) - } - } // Transform to go from external jars to CLASSES and JAVA_RES artifacts. This returns the // same exact file but with different types, since a jar file can contain both. for (classesOrResources in arrayOf( @@ -456,19 +406,6 @@ class DependencyConfigurator( AndroidArtifacts.ArtifactType.NAVIGATION_XML ) - if (projectOptions[BooleanOption.GRADUAL_R8_SHRINKING]) { - registerTransform( - CollectPackagesForR8Transform::class.java, - AndroidArtifacts.ArtifactType.EXPLODED_AAR, - AndroidArtifacts.ArtifactType.PACKAGES_FOR_R8 - ) - registerTransform( - CollectPackagesForR8Transform::class.java, - aarOrJarTypeToConsume.jar, - AndroidArtifacts.ArtifactType.PACKAGES_FOR_R8 - ) - } - return this } @@ -487,215 +424,6 @@ class DependencyConfigurator( ) } - fun configurePrivacySandboxSdkConsumerTransforms( - compileSdkHashString: String, - buildToolsRevision: Revision, - bootstrapCreationConfig: BootClasspathConfig, - privacySandboxExperimentalProperties: Map? - ) - : DependencyConfigurator { - for (from in AsarTransform.supportedAsarTransformTypes) { - registerTransform( - AsarTransform::class.java, - AndroidArtifacts.ArtifactType.ANDROID_PRIVACY_SANDBOX_SDK_ARCHIVE, - from - ) { - it.targetType.set(from) - } - } - - fun configureExtractSdkShimTransforms(privacySandboxSdkProperties: Map?) { - val extractSdkShimTransformParamConfig = - { reg: TransformSpec -> - val experimentalPropertiesApiGenerator: Dependency? = - privacySandboxSdkProperties?.let { - ModulePropertyKey.Dependencies.ANDROID_PRIVACY_SANDBOX_SDK_API_GENERATOR - .getValue(it)?.single() - } - val apigeneratorArtifact: Dependency = - experimentalPropertiesApiGenerator - ?: project.dependencies.create( - projectServices.projectOptions.get(StringOption.ANDROID_PRIVACY_SANDBOX_SDK_API_GENERATOR) - ?: MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_TOOLS_TOOLS_APIGENERATOR.toString() - ) as Dependency - - val experimentalPropertiesRuntimeApigeneratorDependencies = - privacySandboxSdkProperties?.let { - ModulePropertyKey.Dependencies.ANDROID_PRIVACY_SANDBOX_SDK_API_GENERATOR_GENERATED_RUNTIME_DEPENDENCIES.getValue( - it - ) - } - val runtimeDependenciesForShimSdk: List = - experimentalPropertiesRuntimeApigeneratorDependencies - ?: (projectServices.projectOptions - .get(StringOption.ANDROID_PRIVACY_SANDBOX_SDK_API_GENERATOR_GENERATED_RUNTIME_DEPENDENCIES) - ?.split(",") - ?: listOf( - MavenCoordinates.ORG_JETBRAINS_KOTLIN_KOTLIN_STDLIB.toString(), - MavenCoordinates.ORG_JETBRAINS_KOTLINX_KOTLINX_COROUTINES_ANDROID.toString(), - MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_UI_UI_CORE.toString(), - MavenCoordinates.ANDROIDX_CORE_CORE_KTX.toString(), - MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_ACTIVITY_ACTIVITY_CORE.toString(), - MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_ACTIVITY_ACTIVITY_PROVIDER.toString(), - MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_ACTIVITY_ACTIVITY_CLIENT.toString(), - MavenCoordinates.ANDROIDX_PRIVACYSANDBOX_UI_UI_CLIENT.toString(), - )) - .map { - project.dependencies.create(it) - } - - val params = reg.parameters - val apiGeneratorConfiguration = - project.configurations.detachedConfiguration(apigeneratorArtifact) - apiGeneratorConfiguration.isCanBeConsumed = false - apiGeneratorConfiguration.isCanBeResolved = true - params.apiGenerator.setFrom(apiGeneratorConfiguration) - params.buildTools.initialize( - task = null, - projectServices.buildServiceRegistry, - compileSdkHashString, - buildToolsRevision - ) - - // For kotlin compilation - params.bootstrapClasspath.from(bootstrapCreationConfig.fullBootClasspath) - - val kotlinEmbeddableCompiler = - privacySandboxSdkProperties?.let { - ModulePropertyKey.Dependencies.ANDROID_PRIVACY_SANDBOX_SDK_KOTLIN_COMPILER_EMBEDDABLE.getValue( - it - )?.single() - } - val kotlinCompiler: Configuration = - project.configurations.detachedConfiguration( - kotlinEmbeddableCompiler ?: project.dependencies.create( - projectServices.projectOptions.get(StringOption.ANDROID_PRIVACY_SANDBOX_SDK_KOTLIN_COMPILER_EMBEDDABLE) - ?: MavenCoordinates.ORG_JETBRAINS_KOTLIN_KOTLIN_COMPILER_EMBEDDABLE.toString() - ) - ) - kotlinCompiler.isCanBeConsumed = false - kotlinCompiler.isCanBeResolved = true - params.kotlinCompiler.from(kotlinCompiler) - params.requireServices.set( - projectServices.projectOptions[BooleanOption.PRIVACY_SANDBOX_SDK_REQUIRE_SERVICES] - ) - val configuration = project.configurations.detachedConfiguration( - *runtimeDependenciesForShimSdk.toTypedArray() - ) - configuration.isCanBeConsumed = false - configuration.isCanBeResolved = true - - configuration.attributes { - it.attribute( - BuildTypeAttr.ATTRIBUTE, - project.objects.named( - BuildTypeAttr::class.java, - BuilderConstants.RELEASE - ) - ) - } - params.runtimeDependencies.from(configuration.incoming.artifactView { config: ArtifactView.ViewConfiguration -> - config.attributes.apply { - attribute( - Usage.USAGE_ATTRIBUTE, - project.objects.named(Usage::class.java, Usage.JAVA_API) - ) - attribute( - AndroidArtifacts.ARTIFACT_TYPE, - AndroidArtifacts.ArtifactType.CLASSES_JAR.type - ) - } - }.artifacts.artifactFiles) - } - - fun registerExtractSdkShimTransform(usage: String) { - project.dependencies.registerTransform( - ExtractCompileSdkShimTransform::class.java, - ) { reg -> - val usageObj: Usage = project.objects.named(Usage::class.java, usage) - reg.from.attribute( - ARTIFACT_TYPE_ATTRIBUTE, - AndroidArtifacts.ArtifactType.ANDROID_PRIVACY_SANDBOX_SDK_INTERFACE_DESCRIPTOR.type - ) - reg.from.attribute( - Usage.USAGE_ATTRIBUTE, - usageObj - ) - reg.to.attribute( - ARTIFACT_TYPE_ATTRIBUTE, - AndroidArtifacts.ArtifactType.CLASSES_JAR.type - ) - reg.to.attribute( - Usage.USAGE_ATTRIBUTE, - usageObj - ) - extractSdkShimTransformParamConfig(reg) - } - } - registerExtractSdkShimTransform(Usage.JAVA_API) - registerExtractSdkShimTransform(Usage.JAVA_RUNTIME) - } - - configureExtractSdkShimTransforms(privacySandboxExperimentalProperties) - - return this - } - - fun configurePrivacySandboxSdkVariantTransforms( - variants: List, - ): DependencyConfigurator { - fun registerAsarToApksTransform(variants: List) { - // For signing privacy sandbox artifacts we allow per project signing configuration - // by the use of experimental properties. To reduce the expense of registering per - // variant we set a limit of one signing config in all variants, then register the - // AsarToApksTransform once. To maintain the semantic, the build file must explicitly - // declare the same signing config for all variants. - val variantSigningConfigs = variants.map { variant -> - val experimentalProps = variant.experimentalProperties - experimentalProps.finalizeValue() - SigningConfigData.fromExperimentalPropertiesSigningConfig(variant.experimentalProperties) - }.distinct() - - val signingConfigProvider: Provider = - when (variantSigningConfigs.count()) { - 0 -> return // No variants - 1 -> if (variantSigningConfigs.singleOrNull() != null) { - // An identical signing config is set in all variants by experimental properties. - variants.first().services.provider { - variantSigningConfigs.singleOrNull() - } - } else { - // No experimental properties are set, use the default. - getBuildService( - variants.first().services.buildServiceRegistry, - AndroidLocationsBuildService::class.java - ).map(AndroidLocationsBuildService::getDefaultDebugKeystoreSigningConfig) - } - - else -> throw UnsupportedOperationException( - "It is not possible to override Privacy Sandbox experimental properties per variant.\n" + - "Set the same signing config using experimental properties in each variant explicitly.") - } - registerTransform( - AsarToExtractedApksTransform::class.java, - AndroidArtifacts.ArtifactType.ANDROID_PRIVACY_SANDBOX_SDK_ARCHIVE, - AndroidArtifacts.ArtifactType.ANDROID_PRIVACY_SANDBOX_EXTRACTED_SDK_APKS - ) { params -> - projectServices.initializeAapt2Input(params.aapt2, task = null) - - params.signingConfigData.set(signingConfigProvider) - params.signingConfigValidationResultDir.set( - ArtifactsImpl(project, - "global").get(InternalArtifactType.VALIDATE_SIGNING_CONFIG) - ) - params.analyticsService.set(getBuildService(project.gradle.sharedServices)) - } - } - registerAsarToApksTransform(variants) - - return this - } - fun configureCalculateStackFramesTransforms( bootClasspathConfig: BootClasspathConfig) : DependencyConfigurator { registerGlobalRecalculateStackFramesTransform( diff --git a/build.gradle b/build.gradle index c5e5bc38..2f7e21d9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,6 @@ plugins { alias(libs.plugins.android.library) apply false alias(libs.plugins.kotlin.jvm) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.publish) alias(libs.plugins.spotless) alias(libs.plugins.wire) apply false diff --git a/buildLogic/convention/src/main/kotlin/app/cash/better/dynamic/features/Convention.kt b/buildLogic/convention/src/main/kotlin/app/cash/better/dynamic/features/Convention.kt index 65f241ed..92c8a222 100644 --- a/buildLogic/convention/src/main/kotlin/app/cash/better/dynamic/features/Convention.kt +++ b/buildLogic/convention/src/main/kotlin/app/cash/better/dynamic/features/Convention.kt @@ -46,7 +46,7 @@ class Convention : Plugin { } private companion object { - const val TOOLCHAIN_JDK = 17 - const val TARGET_JDK = 11 + const val TOOLCHAIN_JDK = 21 + const val TARGET_JDK = 21 } } diff --git a/gradle-plugin/build.gradle b/gradle-plugin/build.gradle index 06ae2411..581372d4 100644 --- a/gradle-plugin/build.gradle +++ b/gradle-plugin/build.gradle @@ -1,4 +1,4 @@ -import com.google.devtools.ksp.gradle.KspTaskJvm +import com.google.devtools.ksp.gradle.KspAATask import com.squareup.wire.gradle.WireTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -72,7 +72,7 @@ val KOTLIN_VERSION = "${libs.versions.kotlin.get()}" } tasks.withType(KotlinCompile).configureEach { dependsOn(pluginVersion) } -tasks.withType(KspTaskJvm).configureEach { dependsOn(pluginVersion) } +tasks.withType(KspAATask).configureEach { dependsOn(pluginVersion) } wire { kotlin {} @@ -80,7 +80,7 @@ wire { // https://github.com/square/wire/issues/2335 afterEvaluate { - tasks.withType(KspTaskJvm).configureEach { - dependsOn(tasks.withType(WireTask)) - } + tasks.withType(KspAATask).configureEach { + dependsOn(tasks.withType(WireTask)) + } } diff --git a/gradle-plugin/src/main/kotlin/app/cash/better/dynamic/features/BetterDynamicFeaturesPlugin.kt b/gradle-plugin/src/main/kotlin/app/cash/better/dynamic/features/BetterDynamicFeaturesPlugin.kt index 384a69f2..3fe6b091 100644 --- a/gradle-plugin/src/main/kotlin/app/cash/better/dynamic/features/BetterDynamicFeaturesPlugin.kt +++ b/gradle-plugin/src/main/kotlin/app/cash/better/dynamic/features/BetterDynamicFeaturesPlugin.kt @@ -35,8 +35,7 @@ import com.android.build.api.variant.Variant import com.android.build.gradle.internal.publishing.AndroidArtifacts import com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask import com.android.build.gradle.internal.tasks.factory.dependsOn -import com.google.devtools.ksp.gradle.KspTask -import com.google.devtools.ksp.gradle.KspTaskJvm +import com.google.devtools.ksp.gradle.KspAATask import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.ArtifactCollection @@ -374,7 +373,7 @@ class BetterDynamicFeaturesPlugin : Plugin { artifact.type = ARTIFACT_TYPE_FEATURE_IMPLEMENTATION_REPORT // TODO: Try and do this lazily - tasks.withType(KspTaskJvm::class.java) { task -> + tasks.withType(KspAATask::class.java) { task -> if (!kspTaskMatchesVariant(task, androidVariant)) return@withType logger.debug("Configuring KSP task ${task.path} for variant ${androidVariant.name}") @@ -468,6 +467,7 @@ class BetterDynamicFeaturesPlugin : Plugin { taskName("compile", androidVariant, "Implementations"), TypesafeImplementationsCompilationTask::class.java, ) { task -> + task.dependsOn(implementationsTask) task.generatedSources.set(implementationsTask.flatMap { it.generatedFilesDirectory }) val compileConfiguration = setupVariantCodegenDependencies(androidVariant.buildType!!) task.compileClasspath.setFrom(project.provider { compileConfiguration.files }) @@ -485,7 +485,7 @@ class BetterDynamicFeaturesPlugin : Plugin { } } - private fun kspTaskMatchesVariant(task: KspTask, variant: Variant): Boolean { + private fun kspTaskMatchesVariant(task: KspAATask, variant: Variant): Boolean { return task.name.contains(variant.name, ignoreCase = true) && !task.name.contains("UnitTest", ignoreCase = true) } diff --git a/gradle-plugin/src/test/fixtures/buildscript.gradle b/gradle-plugin/src/test/fixtures/buildscript.gradle index 7c2511ce..6a1965c3 100644 --- a/gradle-plugin/src/test/fixtures/buildscript.gradle +++ b/gradle-plugin/src/test/fixtures/buildscript.gradle @@ -12,18 +12,16 @@ project.buildscript.dependencies { } subprojects { - extensions.findByName("kotlin")?.jvmToolchain(17) - pluginManager.withPlugin("com.android.application") { android.compileOptions { - sourceCompatibility(JavaVersion.VERSION_17) - targetCompatibility(JavaVersion.VERSION_17) + sourceCompatibility(JavaVersion.VERSION_21) + targetCompatibility(JavaVersion.VERSION_21) } } pluginManager.withPlugin("com.android.dynamic-feature") { android.compileOptions { - sourceCompatibility(JavaVersion.VERSION_17) - targetCompatibility(JavaVersion.VERSION_17) + sourceCompatibility(JavaVersion.VERSION_21) + targetCompatibility(JavaVersion.VERSION_21) } } } \ No newline at end of file diff --git a/gradle-plugin/src/test/fixtures/codegen-fixture/base/build.gradle b/gradle-plugin/src/test/fixtures/codegen-fixture/base/build.gradle index 1aad5ec3..9f15c530 100644 --- a/gradle-plugin/src/test/fixtures/codegen-fixture/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/codegen-fixture/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { versionCode 1 diff --git a/gradle-plugin/src/test/fixtures/codegen-fixture/feature/build.gradle b/gradle-plugin/src/test/fixtures/codegen-fixture/feature/build.gradle index d5651aab..25c56e25 100644 --- a/gradle-plugin/src/test/fixtures/codegen-fixture/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/codegen-fixture/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk 24 diff --git a/gradle-plugin/src/test/fixtures/custom-build-type/base/build.gradle b/gradle-plugin/src/test/fixtures/custom-build-type/base/build.gradle index e1e9f647..a816d525 100644 --- a/gradle-plugin/src/test/fixtures/custom-build-type/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/custom-build-type/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 diff --git a/gradle-plugin/src/test/fixtures/custom-build-type/feature/build.gradle b/gradle-plugin/src/test/fixtures/custom-build-type/feature/build.gradle index 0ff8590f..ea818968 100644 --- a/gradle-plugin/src/test/fixtures/custom-build-type/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/custom-build-type/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/custom-lockfile/base/build.gradle b/gradle-plugin/src/test/fixtures/custom-lockfile/base/build.gradle index e290ef4a..f0651990 100644 --- a/gradle-plugin/src/test/fixtures/custom-lockfile/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/custom-lockfile/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/custom-lockfile/feature/build.gradle b/gradle-plugin/src/test/fixtures/custom-lockfile/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/custom-lockfile/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/custom-lockfile/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/different-versions-in-base/base/build.gradle b/gradle-plugin/src/test/fixtures/different-versions-in-base/base/build.gradle index 43dbadd8..1c7ebfc0 100644 --- a/gradle-plugin/src/test/fixtures/different-versions-in-base/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/different-versions-in-base/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/different-versions-in-base/feature/build.gradle b/gradle-plugin/src/test/fixtures/different-versions-in-base/feature/build.gradle index bc79273f..0c8c692a 100644 --- a/gradle-plugin/src/test/fixtures/different-versions-in-base/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/different-versions-in-base/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/different-versions/base/build.gradle b/gradle-plugin/src/test/fixtures/different-versions/base/build.gradle index a883efc8..63fca389 100644 --- a/gradle-plugin/src/test/fixtures/different-versions/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/different-versions/base/build.gradle @@ -1,11 +1,10 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/different-versions/feature/build.gradle b/gradle-plugin/src/test/fixtures/different-versions/feature/build.gradle index 828e39d4..df2cecb6 100644 --- a/gradle-plugin/src/test/fixtures/different-versions/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/different-versions/feature/build.gradle @@ -1,11 +1,10 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/feature-compile-classpath/base/build.gradle b/gradle-plugin/src/test/fixtures/feature-compile-classpath/base/build.gradle index 81df31a2..2c0b67df 100644 --- a/gradle-plugin/src/test/fixtures/feature-compile-classpath/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/feature-compile-classpath/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/feature-compile-classpath/feature/build.gradle b/gradle-plugin/src/test/fixtures/feature-compile-classpath/feature/build.gradle index 569accdf..8146c643 100644 --- a/gradle-plugin/src/test/fixtures/feature-compile-classpath/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/feature-compile-classpath/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/has-constraints/base/build.gradle b/gradle-plugin/src/test/fixtures/has-constraints/base/build.gradle index 09714c95..7917ab22 100644 --- a/gradle-plugin/src/test/fixtures/has-constraints/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/has-constraints/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/has-constraints/feature/build.gradle b/gradle-plugin/src/test/fixtures/has-constraints/feature/build.gradle index 50b78ca5..3e99981c 100644 --- a/gradle-plugin/src/test/fixtures/has-constraints/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/has-constraints/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/lockfile-activation/base/build.gradle b/gradle-plugin/src/test/fixtures/lockfile-activation/base/build.gradle index 4a9f9ca2..0b41b248 100644 --- a/gradle-plugin/src/test/fixtures/lockfile-activation/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/lockfile-activation/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/lockfile-activation/feature/build.gradle b/gradle-plugin/src/test/fixtures/lockfile-activation/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/lockfile-activation/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/lockfile-activation/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/missing-dex/base/build.gradle b/gradle-plugin/src/test/fixtures/missing-dex/base/build.gradle index c91348c4..592a4842 100644 --- a/gradle-plugin/src/test/fixtures/missing-dex/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/missing-dex/base/build.gradle @@ -1,5 +1,4 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' apply plugin: 'app.cash.better.dynamic.features.agp-patch' @@ -7,7 +6,7 @@ apply plugin: 'app.cash.better.dynamic.features.agp-patch' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 diff --git a/gradle-plugin/src/test/fixtures/missing-dex/base/gradle.lockfile b/gradle-plugin/src/test/fixtures/missing-dex/base/gradle.lockfile index 09a56a24..1bfeb720 100644 --- a/gradle-plugin/src/test/fixtures/missing-dex/base/gradle.lockfile +++ b/gradle-plugin/src/test/fixtures/missing-dex/base/gradle.lockfile @@ -25,10 +25,10 @@ com.google.android.play:feature-delivery-ktx:2.1.0=debugCompileClasspath,debugRu com.google.android.play:feature-delivery:2.1.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath com.squareup.okhttp3:okhttp:5.0.0-alpha.2=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath com.squareup.okio:okio:2.9.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:2.1.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.2.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:2.1.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.2.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath diff --git a/gradle-plugin/src/test/fixtures/missing-dex/feature/build.gradle b/gradle-plugin/src/test/fixtures/missing-dex/feature/build.gradle index 446df1a4..790bcb0a 100644 --- a/gradle-plugin/src/test/fixtures/missing-dex/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/missing-dex/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/multiplatform-dependency/base/build.gradle b/gradle-plugin/src/test/fixtures/multiplatform-dependency/base/build.gradle index 7eadbad4..b31d71a5 100644 --- a/gradle-plugin/src/test/fixtures/multiplatform-dependency/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/multiplatform-dependency/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/multiplatform-dependency/feature/build.gradle b/gradle-plugin/src/test/fixtures/multiplatform-dependency/feature/build.gradle index fe1b7a2b..7c0907bb 100644 --- a/gradle-plugin/src/test/fixtures/multiplatform-dependency/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/multiplatform-dependency/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/new-transitive-dependency/base/build.gradle b/gradle-plugin/src/test/fixtures/new-transitive-dependency/base/build.gradle index 2a0d973e..937cd437 100644 --- a/gradle-plugin/src/test/fixtures/new-transitive-dependency/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/new-transitive-dependency/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/new-transitive-dependency/feature/build.gradle b/gradle-plugin/src/test/fixtures/new-transitive-dependency/feature/build.gradle index 3c037051..f5421af6 100644 --- a/gradle-plugin/src/test/fixtures/new-transitive-dependency/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/new-transitive-dependency/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/out-of-date/base/build.gradle b/gradle-plugin/src/test/fixtures/out-of-date/base/build.gradle index 4a9f9ca2..0b41b248 100644 --- a/gradle-plugin/src/test/fixtures/out-of-date/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/out-of-date/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/out-of-date/feature/build.gradle b/gradle-plugin/src/test/fixtures/out-of-date/feature/build.gradle index 1e67e2c8..3da96a18 100644 --- a/gradle-plugin/src/test/fixtures/out-of-date/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/out-of-date/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/project-dependency/base/build.gradle b/gradle-plugin/src/test/fixtures/project-dependency/base/build.gradle index e6fb9989..b8fd7ded 100644 --- a/gradle-plugin/src/test/fixtures/project-dependency/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/project-dependency/base/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' -apply plugin: 'org.jetbrains.kotlin.android' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/project-dependency/feature/build.gradle b/gradle-plugin/src/test/fixtures/project-dependency/feature/build.gradle index f243b643..83615528 100644 --- a/gradle-plugin/src/test/fixtures/project-dependency/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/project-dependency/feature/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-correct-declaration/base/build.gradle b/gradle-plugin/src/test/fixtures/resources-correct-declaration/base/build.gradle index 9a705b67..9bfff37d 100644 --- a/gradle-plugin/src/test/fixtures/resources-correct-declaration/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-correct-declaration/base/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' -apply plugin: 'org.jetbrains.kotlin.android' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/resources-correct-declaration/feature/build.gradle b/gradle-plugin/src/test/fixtures/resources-correct-declaration/feature/build.gradle index f243b643..83615528 100644 --- a/gradle-plugin/src/test/fixtures/resources-correct-declaration/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-correct-declaration/feature/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-in-base/base/build.gradle b/gradle-plugin/src/test/fixtures/resources-in-base/base/build.gradle index e8ffd2ef..68c32215 100644 --- a/gradle-plugin/src/test/fixtures/resources-in-base/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-in-base/base/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' -apply plugin: 'org.jetbrains.kotlin.android' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/resources-in-base/feature/build.gradle b/gradle-plugin/src/test/fixtures/resources-in-base/feature/build.gradle index f243b643..83615528 100644 --- a/gradle-plugin/src/test/fixtures/resources-in-base/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-in-base/feature/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-missing-declaration/base/build.gradle b/gradle-plugin/src/test/fixtures/resources-missing-declaration/base/build.gradle index b701e4f7..68c32215 100644 --- a/gradle-plugin/src/test/fixtures/resources-missing-declaration/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-missing-declaration/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/resources-missing-declaration/feature/build.gradle b/gradle-plugin/src/test/fixtures/resources-missing-declaration/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/resources-missing-declaration/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-missing-declaration/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-normal/base/build.gradle b/gradle-plugin/src/test/fixtures/resources-normal/base/build.gradle index 4f00546b..04f8a76f 100644 --- a/gradle-plugin/src/test/fixtures/resources-normal/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-normal/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/resources-normal/feature/build.gradle b/gradle-plugin/src/test/fixtures/resources-normal/feature/build.gradle index 0e425d7d..99b919a6 100644 --- a/gradle-plugin/src/test/fixtures/resources-normal/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-normal/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-normal/library/build.gradle b/gradle-plugin/src/test/fixtures/resources-normal/library/build.gradle index 5849d737..842748a5 100644 --- a/gradle-plugin/src/test/fixtures/resources-normal/library/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-normal/library/build.gradle @@ -3,5 +3,5 @@ apply plugin: "com.android.library" android { namespace "app.cash.better.dynamic.features.integration.library" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } diff --git a/gradle-plugin/src/test/fixtures/resources-overwriting/base/build.gradle b/gradle-plugin/src/test/fixtures/resources-overwriting/base/build.gradle index 61a89df1..e97bd080 100644 --- a/gradle-plugin/src/test/fixtures/resources-overwriting/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-overwriting/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int defaultConfig { minSdk = 24 } diff --git a/gradle-plugin/src/test/fixtures/resources-overwriting/feature/build.gradle b/gradle-plugin/src/test/fixtures/resources-overwriting/feature/build.gradle index 0e425d7d..99b919a6 100644 --- a/gradle-plugin/src/test/fixtures/resources-overwriting/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-overwriting/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/resources-overwriting/library/build.gradle b/gradle-plugin/src/test/fixtures/resources-overwriting/library/build.gradle index 5849d737..842748a5 100644 --- a/gradle-plugin/src/test/fixtures/resources-overwriting/library/build.gradle +++ b/gradle-plugin/src/test/fixtures/resources-overwriting/library/build.gradle @@ -3,5 +3,5 @@ apply plugin: "com.android.library" android { namespace "app.cash.better.dynamic.features.integration.library" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } diff --git a/gradle-plugin/src/test/fixtures/same-versions/base/build.gradle b/gradle-plugin/src/test/fixtures/same-versions/base/build.gradle index a883efc8..63fca389 100644 --- a/gradle-plugin/src/test/fixtures/same-versions/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/same-versions/base/build.gradle @@ -1,11 +1,10 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/same-versions/feature/build.gradle b/gradle-plugin/src/test/fixtures/same-versions/feature/build.gradle index 5e285767..d45c663a 100644 --- a/gradle-plugin/src/test/fixtures/same-versions/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/same-versions/feature/build.gradle @@ -1,11 +1,10 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/base/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/base/build.gradle index 4049a1ca..b8fd7ded 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/feature/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/library/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/library/build.gradle index 0369fbd8..fcf9a349 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/library/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base-variant-aware/library/build.gradle @@ -1,10 +1,9 @@ apply plugin: 'com.android.library' -apply plugin: 'org.jetbrains.kotlin.android' android { namespace "app.cash.better.dynamic.features.integration.library" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/base/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/base/build.gradle index e6fb9989..b8fd7ded 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/base/build.gradle @@ -1,13 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' -apply plugin: 'org.jetbrains.kotlin.android' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/feature/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency-on-base/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency/base/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency/base/build.gradle index 4a9f9ca2..0b41b248 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/transitive-dependency/feature/build.gradle b/gradle-plugin/src/test/fixtures/transitive-dependency/feature/build.gradle index 917e4eea..adfd00bd 100644 --- a/gradle-plugin/src/test/fixtures/transitive-dependency/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/transitive-dependency/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/up-to-date/base/build.gradle b/gradle-plugin/src/test/fixtures/up-to-date/base/build.gradle index 4a9f9ca2..0b41b248 100644 --- a/gradle-plugin/src/test/fixtures/up-to-date/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/up-to-date/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/up-to-date/feature/build.gradle b/gradle-plugin/src/test/fixtures/up-to-date/feature/build.gradle index 1e67e2c8..3da96a18 100644 --- a/gradle-plugin/src/test/fixtures/up-to-date/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/up-to-date/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/variant-aware/base/build.gradle b/gradle-plugin/src/test/fixtures/variant-aware/base/build.gradle index 3acad7e8..58b4ef9f 100644 --- a/gradle-plugin/src/test/fixtures/variant-aware/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/variant-aware/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/variant-aware/feature/build.gradle b/gradle-plugin/src/test/fixtures/variant-aware/feature/build.gradle index f6bdcf38..6d976864 100644 --- a/gradle-plugin/src/test/fixtures/variant-aware/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/variant-aware/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle-plugin/src/test/fixtures/version-update/base/build.gradle b/gradle-plugin/src/test/fixtures/version-update/base/build.gradle index 4a9f9ca2..0b41b248 100644 --- a/gradle-plugin/src/test/fixtures/version-update/base/build.gradle +++ b/gradle-plugin/src/test/fixtures/version-update/base/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int dynamicFeatures = [':feature'] } diff --git a/gradle-plugin/src/test/fixtures/version-update/feature/build.gradle b/gradle-plugin/src/test/fixtures/version-update/feature/build.gradle index b1224054..83615528 100644 --- a/gradle-plugin/src/test/fixtures/version-update/feature/build.gradle +++ b/gradle-plugin/src/test/fixtures/version-update/feature/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.dynamic-feature' -apply plugin: 'org.jetbrains.kotlin.android' apply plugin: 'com.google.devtools.ksp' apply plugin: 'app.cash.better.dynamic.features' android { namespace "app.cash.better.dynamic.features.integration.feature" - compileSdk 32 + compileSdk libs.versions.compileSdk.get() as int } dependencies { diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 00000000..63e5bbdf --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,2 @@ +#This file is generated by updateDaemonJvm +toolchainVersion=21 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b9cefed..83e2d149 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,10 @@ [versions] -agp = "8.13.1" # keep in sync with android-tools -android-tools = "31.13.1" # = 23.0.0 + agp +agp = "9.0.0-rc02" # keep in sync with android-tools +android-tools = "32.0.0-rc02" # = 23.0.0 + agp compilerTesting = "0.7.1" -kotlin = "2.1.20" +kotlin = "2.2.20" kotlinPoet = "1.13.1" -ksp = "2.1.20-1.0.32" +ksp = "2.3.2" ktlint = "1.7.1" moshi = "1.15.2" @@ -51,7 +51,6 @@ android-application = { id = "com.android.application", version.ref = "agp" } android-dynamic-feature = { id = "com.android.dynamic-feature", version.ref = "agp" } android-library = { id = "com.android.library", version.ref = "agp" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } publish = { id = "com.vanniktech.maven.publish", version = "0.34.0" } diff --git a/runtime/build.gradle b/runtime/build.gradle index 9dd6538a..3f12811f 100644 --- a/runtime/build.gradle +++ b/runtime/build.gradle @@ -1,9 +1,5 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { alias(libs.plugins.android.library) - alias(libs.plugins.kotlin.android) alias(libs.plugins.publish) alias(libs.plugins.spotless) } @@ -16,20 +12,14 @@ android { minSdk libs.versions.minSdk.get() as int } compileOptions { - sourceCompatibility(JavaVersion.VERSION_11) - targetCompatibility(JavaVersion.VERSION_11) + sourceCompatibility(JavaVersion.VERSION_21) + targetCompatibility(JavaVersion.VERSION_21) } } kotlin { explicitApi() - jvmToolchain(17) -} - -tasks.withType(KotlinCompile).configureEach { task -> - task.compilerOptions { - jvmTarget.set(JvmTarget.JVM_11) - } + jvmToolchain(21) } dependencies { diff --git a/sample/app/build.gradle b/sample/app/build.gradle index b90c6e15..d14df789 100644 --- a/sample/app/build.gradle +++ b/sample/app/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) alias(libs.plugins.betterDynamicFeatures) alias(libs.plugins.compose.compiler) @@ -33,8 +32,8 @@ android { compose true } - kotlinOptions { - freeCompilerArgs += '-Xexplicit-api=strict' + kotlin { + explicitApi() } } diff --git a/sample/app/gradle.lockfile b/sample/app/gradle.lockfile index 1810d9af..572ba151 100644 --- a/sample/app/gradle.lockfile +++ b/sample/app/gradle.lockfile @@ -82,10 +82,10 @@ com.google.android.play:core-common:2.0.3=debugCompileClasspath,debugRuntimeClas com.google.android.play:feature-delivery-ktx:2.1.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath com.google.android.play:feature-delivery:2.1.0=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath com.google.guava:listenablefuture:1.0=debugRuntimeClasspath,releaseRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:2.1.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.2.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:2.1.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.2.20=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3=debugCompileClasspath,debugRuntimeClasspath,releaseCompileClasspath,releaseRuntimeClasspath diff --git a/sample/bigboxfeature/api/build.gradle b/sample/bigboxfeature/api/build.gradle index 20bb4e68..0e827fcb 100644 --- a/sample/bigboxfeature/api/build.gradle +++ b/sample/bigboxfeature/api/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android.dynamic.feature) - alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) alias(libs.plugins.betterDynamicFeatures) alias(libs.plugins.compose.compiler) @@ -23,5 +22,6 @@ android { dependencies { implementation projects.app + implementation platform(libs.compose.bom) implementation libs.compose.runtime } \ No newline at end of file diff --git a/sample/bigboxfeature/build.gradle b/sample/bigboxfeature/build.gradle index 367d064f..baabb3d0 100644 --- a/sample/bigboxfeature/build.gradle +++ b/sample/bigboxfeature/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android.dynamic.feature) - alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) alias(libs.plugins.betterDynamicFeatures) alias(libs.plugins.compose.compiler) diff --git a/sample/build.gradle b/sample/build.gradle index 51f129ab..d42280aa 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -2,25 +2,20 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.android.dynamic.feature) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.compose.compiler) apply false } subprojects { - pluginManager.withPlugin("org.jetbrains.kotlin.android") { - kotlin.jvmToolchain(17) - } - pluginManager.withPlugin("com.android.application") { android.compileOptions { - sourceCompatibility(JavaVersion.VERSION_17) - targetCompatibility(JavaVersion.VERSION_17) + sourceCompatibility(JavaVersion.VERSION_21) + targetCompatibility(JavaVersion.VERSION_21) } } pluginManager.withPlugin("com.android.dynamic-feature") { android.compileOptions { - sourceCompatibility(JavaVersion.VERSION_17) - targetCompatibility(JavaVersion.VERSION_17) + sourceCompatibility(JavaVersion.VERSION_21) + targetCompatibility(JavaVersion.VERSION_21) } } } diff --git a/sample/extrabigboxfeature/build.gradle b/sample/extrabigboxfeature/build.gradle index 550e3719..3d1b2a14 100644 --- a/sample/extrabigboxfeature/build.gradle +++ b/sample/extrabigboxfeature/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android.dynamic.feature) - alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) alias(libs.plugins.betterDynamicFeatures) alias(libs.plugins.compose.compiler) diff --git a/sample/gradle.properties b/sample/gradle.properties index 91124909..bb3ae9c0 100644 --- a/sample/gradle.properties +++ b/sample/gradle.properties @@ -1,2 +1,6 @@ android.useAndroidX=true -org.gradle.jvmargs=-Xmx2G -XX:+HeapDumpOnOutOfMemoryError \ No newline at end of file +org.gradle.jvmargs=-Xmx2G -XX:+HeapDumpOnOutOfMemoryError + +# Temporary workaround for AGP 9 built-in Kotlin + KSP. +# KSP wires generated sources via kotlin.sourceSets, which AGP disallows by default. +android.disallowKotlinSourceSets=false diff --git a/sample/gradle/gradle-daemon-jvm.properties b/sample/gradle/gradle-daemon-jvm.properties new file mode 100644 index 00000000..8e529375 --- /dev/null +++ b/sample/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,2 @@ +# This file is generated by updateDaemonJvm +toolchainVersion=21 diff --git a/sample/gradle/wrapper/gradle-wrapper.properties b/sample/gradle/wrapper/gradle-wrapper.properties index 002b867c..bad7c246 100644 --- a/sample/gradle/wrapper/gradle-wrapper.properties +++ b/sample/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/sample/settings.gradle b/sample/settings.gradle index 55730108..c172908d 100644 --- a/sample/settings.gradle +++ b/sample/settings.gradle @@ -6,6 +6,10 @@ pluginManagement { } } +plugins { + id "org.gradle.toolchains.foojay-resolver-convention" version "1.0.0" +} + dependencyResolutionManagement { repositories { mavenCentral() diff --git a/sample/smallboxfeature/build.gradle b/sample/smallboxfeature/build.gradle index ac990415..782aed62 100644 --- a/sample/smallboxfeature/build.gradle +++ b/sample/smallboxfeature/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android.dynamic.feature) - alias(libs.plugins.kotlin.android) alias(libs.plugins.ksp) alias(libs.plugins.betterDynamicFeatures) alias(libs.plugins.compose.compiler) diff --git a/settings.gradle b/settings.gradle index c4009ec1..51550cd5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,6 +6,10 @@ pluginManagement { } } +plugins { + id "org.gradle.toolchains.foojay-resolver-convention" version "1.0.0" +} + dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories {