From a14984183d2dee19a8b71aa058eba9daaad86328 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Thu, 4 Jan 2024 09:07:37 +0100 Subject: [PATCH 01/10] Moving versions to the catalog --- android-resource-api/build.gradle | 14 ++------ android-resource-collector/build.gradle | 17 ++++----- android-resource-locator-test/build.gradle | 17 ++++----- android-resource-locator/build.gradle | 20 +++++------ android-resource-serializer/build.gradle | 15 ++------ build.gradle | 32 +++-------------- gradle.properties | 4 ++- gradle/libs.versions.toml | 12 +++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- resource-api/build.gradle | 14 +------- resource-collector/build.gradle | 11 +----- resource-serializer/build.gradle | 11 +----- settings.gradle | 37 ++++++++++++++++++++ string-android-resource-locator/build.gradle | 17 ++++----- 14 files changed, 91 insertions(+), 132 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/android-resource-api/build.gradle b/android-resource-api/build.gradle index 6a8e770..f294cc1 100644 --- a/android-resource-api/build.gradle +++ b/android-resource-api/build.gradle @@ -1,18 +1,8 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) } dependencies { api project(":resource-api") - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - testImplementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - testImplementation "com.likethesalad.tools.testing:unit-testing:$testingUtilities_version" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" + testImplementation libs.unitTesting } \ No newline at end of file diff --git a/android-resource-collector/build.gradle b/android-resource-collector/build.gradle index 4029852..5d62a13 100644 --- a/android-resource-collector/build.gradle +++ b/android-resource-collector/build.gradle @@ -1,6 +1,5 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) id 'kotlin-kapt' } @@ -8,18 +7,14 @@ dependencies { api project(':resource-collector') implementation "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation project(':android-resource-api') - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - compileOnly "com.google.dagger:dagger:$dagger_version" - kapt "com.google.dagger:dagger-compiler:$dagger_version" - testImplementation "com.likethesalad.tools.testing:unit-testing:$testingUtilities_version" + compileOnly libs.dagger + kapt libs.dagger + testImplementation libs.unitTesting testImplementation gradleApi() } -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" +libConventions { + setJavaVersion("11") } kapt { diff --git a/android-resource-locator-test/build.gradle b/android-resource-locator-test/build.gradle index 3e7a8b6..c8a4753 100644 --- a/android-resource-locator-test/build.gradle +++ b/android-resource-locator-test/build.gradle @@ -1,16 +1,19 @@ plugins { + alias(libs.plugins.java.library) id 'java-gradle-plugin' - id 'org.jetbrains.kotlin.jvm' } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(':string-android-resource-locator') compileOnly("com.android.tools.build:gradle:3.3.3") - compileOnly "com.google.dagger:dagger:$dagger_version" + compileOnly libs.dagger testImplementation "com.likethesalad.tools.testing:android-gradle:$testingUtilities_version" } +libConventions { + setJavaVersion("11") +} + tasks.withType(PluginUnderTestMetadata).configureEach { pluginClasspath.from(configurations.compileOnly) } @@ -22,14 +25,6 @@ gradlePlugin { implementationClass = 'com.likethesalad.tools.resource.locator.android.test.TestAndroidResourceLocatorPlugin' } } - automatedPublishing = false -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" } artifactPublisherTarget { diff --git a/android-resource-locator/build.gradle b/android-resource-locator/build.gradle index 8967c7f..76450cd 100644 --- a/android-resource-locator/build.gradle +++ b/android-resource-locator/build.gradle @@ -1,6 +1,5 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) id 'kotlin-kapt' } @@ -10,19 +9,16 @@ dependencies { api project(":android-resource-collector") api project(':android-resource-serializer') api "com.likethesalad.tools:android-tools-plugin:$androidTools_version" - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation "com.google.code.gson:gson:$gson_version" - compileOnly "com.google.dagger:dagger:$dagger_version" - kapt "com.google.dagger:dagger-compiler:$dagger_version" - testImplementation "com.likethesalad.tools.testing:unit-testing:$testingUtilities_version" + implementation libs.gson + compileOnly libs.dagger + kapt libs.dagger + testImplementation libs.unitTesting } -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" +libConventions { + setJavaVersion("11") } + kapt { correctErrorTypes = true } \ No newline at end of file diff --git a/android-resource-serializer/build.gradle b/android-resource-serializer/build.gradle index fa32f61..15ed0c4 100644 --- a/android-resource-serializer/build.gradle +++ b/android-resource-serializer/build.gradle @@ -1,19 +1,10 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) } dependencies { api project(':resource-serializer') implementation project(':android-resource-api') - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation "com.google.code.gson:gson:$gson_version" - testImplementation "com.likethesalad.tools.testing:unit-testing:$testingUtilities_version" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" + implementation libs.gson + testImplementation libs.unitTesting } \ No newline at end of file diff --git a/build.gradle b/build.gradle index e176773..33b8683 100644 --- a/build.gradle +++ b/build.gradle @@ -1,21 +1,7 @@ -buildscript { - ext { - kotlin_version = '1.5.10' - } - repositories { - mavenCentral() - google() - gradlePluginPortal() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.likethesalad.tools:artifact-publisher:1.1.0' - classpath 'com.likethesalad.dagger:remapper-plugin:1.0.1' - } +plugins { + alias(libs.plugins.artifactPublisher) + id "com.likethesalad.dagger-remapper" } -apply plugin: 'artifact-publisher' -apply plugin: 'com.likethesalad.dagger-remapper' ext { dagger_version = '2.39.1' @@ -31,14 +17,4 @@ artifactPublisher { issueTrackerUrl = "https://github.com/LikeTheSalad/resource-locator/issues" } -group 'com.likethesalad.tools.resources' -version '2.1.0' -description 'Plugin that gathers resources from Android projects for compilation purposes.' - -subprojects { - repositories { - mavenLocal() - mavenCentral() - google() - } -} \ No newline at end of file +description 'Plugin that gathers resources from Android projects for compilation purposes.' \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 29e08e8..336edf9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,3 @@ -kotlin.code.style=official \ No newline at end of file +kotlin.code.style=official +group=com.likethesalad.tools.resources +version=2.1.0 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..5a5f8d4 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,12 @@ +[versions] +project-utilities = "3.0.2" + +[libraries] +androidToolsPlugin = "com.likethesalad.tools:android-tools-plugin:1.5.1" +dagger = "com.google.dagger:dagger:2.50" +gson = "com.google.code.gson:gson:2.8.7" +unitTesting = { module = "com.likethesalad.tools:unit-testing", version.ref = "project-utilities" } + +[plugins] +java-library = { id = "com.likethesalad.tools.java-library", version.ref = "project-utilities" } +artifactPublisher = { id = "com.likethesalad.artifact-publisher", version = "2.0.2" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index be52383..068cdb2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/resource-api/build.gradle b/resource-api/build.gradle index 30b78af..6bf17b1 100644 --- a/resource-api/build.gradle +++ b/resource-api/build.gradle @@ -1,15 +1,3 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" + alias(libs.plugins.java.library) } \ No newline at end of file diff --git a/resource-collector/build.gradle b/resource-collector/build.gradle index abbaf69..3d88031 100644 --- a/resource-collector/build.gradle +++ b/resource-collector/build.gradle @@ -1,16 +1,7 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) } dependencies { implementation project(":resource-api") - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" } \ No newline at end of file diff --git a/resource-serializer/build.gradle b/resource-serializer/build.gradle index 061abdc..8019f11 100644 --- a/resource-serializer/build.gradle +++ b/resource-serializer/build.gradle @@ -1,16 +1,7 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + alias(libs.plugins.java.library) } dependencies { api project(':resource-api') - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" } diff --git a/settings.gradle b/settings.gradle index 24e7dc3..ae96312 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,40 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + mavenCentral() + google() + } + resolutionStrategy { + eachPlugin { + def pluginId = it.requested.id.id + if (pluginId == "com.likethesalad.artifact-publisher") { + useModule("com.likethesalad.tools:artifact-publisher:${it.requested.version}") + } + if (it.requested.id.namespace == "com.likethesalad.tools") { + useModule("com.likethesalad.tools:plugin-tools:${it.requested.version}") + } + } + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + mavenLocal() + mavenCentral() + google() + } +} +buildscript { + repositories { + gradlePluginPortal() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22" + classpath 'com.likethesalad.dagger:remapper-plugin:1.0.1' + } +} rootProject.name = 'resource-locator' include ':android-resource-locator' include ":resource-collector" diff --git a/string-android-resource-locator/build.gradle b/string-android-resource-locator/build.gradle index dc399ae..5c829cd 100644 --- a/string-android-resource-locator/build.gradle +++ b/string-android-resource-locator/build.gradle @@ -1,13 +1,16 @@ plugins { + alias(libs.plugins.java.library) id 'java-gradle-plugin' - id 'org.jetbrains.kotlin.jvm' id 'kotlin-kapt' } dependencies { api project(":android-resource-locator") - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - testImplementation "com.likethesalad.tools.testing:unit-testing:$testingUtilities_version" + testImplementation libs.unitTesting +} + +libConventions { + setJavaVersion("11") } gradlePlugin { @@ -17,12 +20,4 @@ gradlePlugin { implementationClass = 'com.likethesalad.android.string.resources.locator.StringResourceLocatorPlugin' } } - automatedPublishing = false -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" } From c6d2387fce3971ec8d34bb20fb84d74b0fe4bb8e Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 13:22:48 +0100 Subject: [PATCH 02/10] Using dagger compiler --- android-resource-collector/build.gradle | 2 +- android-resource-locator/build.gradle | 2 +- build.gradle | 1 - gradle/libs.versions.toml | 6 ++++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/android-resource-collector/build.gradle b/android-resource-collector/build.gradle index 5d62a13..12e035d 100644 --- a/android-resource-collector/build.gradle +++ b/android-resource-collector/build.gradle @@ -8,7 +8,7 @@ dependencies { implementation "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation project(':android-resource-api') compileOnly libs.dagger - kapt libs.dagger + kapt libs.dagger.compiler testImplementation libs.unitTesting testImplementation gradleApi() } diff --git a/android-resource-locator/build.gradle b/android-resource-locator/build.gradle index 76450cd..6919e2e 100644 --- a/android-resource-locator/build.gradle +++ b/android-resource-locator/build.gradle @@ -11,7 +11,7 @@ dependencies { api "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation libs.gson compileOnly libs.dagger - kapt libs.dagger + kapt libs.dagger.compiler testImplementation libs.unitTesting } diff --git a/build.gradle b/build.gradle index 33b8683..7f89aa0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.artifactPublisher) - id "com.likethesalad.dagger-remapper" } ext { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5a5f8d4..e7675d7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,12 +1,14 @@ [versions] +dagger = "2.50" project-utilities = "3.0.2" [libraries] androidToolsPlugin = "com.likethesalad.tools:android-tools-plugin:1.5.1" -dagger = "com.google.dagger:dagger:2.50" +dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" } +dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" } gson = "com.google.code.gson:gson:2.8.7" unitTesting = { module = "com.likethesalad.tools:unit-testing", version.ref = "project-utilities" } [plugins] java-library = { id = "com.likethesalad.tools.java-library", version.ref = "project-utilities" } -artifactPublisher = { id = "com.likethesalad.artifact-publisher", version = "2.0.2" } +artifactPublisher = { id = "com.likethesalad.artifact-publisher", version = "3.0.0" } From 79edf7a4a8c787f0bb2ba9fdaad4c417b6b81124 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 13:30:42 +0100 Subject: [PATCH 03/10] Remapping dagger --- android-resource-collector/build.gradle | 6 +++++- android-resource-locator/build.gradle | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/android-resource-collector/build.gradle b/android-resource-collector/build.gradle index 12e035d..d0139cd 100644 --- a/android-resource-collector/build.gradle +++ b/android-resource-collector/build.gradle @@ -7,12 +7,16 @@ dependencies { api project(':resource-collector') implementation "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation project(':android-resource-api') - compileOnly libs.dagger + embedded libs.dagger kapt libs.dagger.compiler testImplementation libs.unitTesting testImplementation gradleApi() } +shadowExtension { + relocate("dagger", "${group}.resourcecollector.dagger") +} + libConventions { setJavaVersion("11") } diff --git a/android-resource-locator/build.gradle b/android-resource-locator/build.gradle index 6919e2e..21d47de 100644 --- a/android-resource-locator/build.gradle +++ b/android-resource-locator/build.gradle @@ -10,11 +10,15 @@ dependencies { api project(':android-resource-serializer') api "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation libs.gson - compileOnly libs.dagger + embedded libs.dagger kapt libs.dagger.compiler testImplementation libs.unitTesting } +shadowExtension { + relocate("dagger", "${group}.resourcelocator.dagger") +} + libConventions { setJavaVersion("11") } From 33c4c56c6b183cf63c9122601b5a47cf9e335e76 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 13:37:24 +0100 Subject: [PATCH 04/10] Clean up --- string-android-resource-locator/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/string-android-resource-locator/build.gradle b/string-android-resource-locator/build.gradle index 5c829cd..ef77caa 100644 --- a/string-android-resource-locator/build.gradle +++ b/string-android-resource-locator/build.gradle @@ -1,7 +1,6 @@ plugins { alias(libs.plugins.java.library) id 'java-gradle-plugin' - id 'kotlin-kapt' } dependencies { From 87fc74f22849dd4a68826a3775a1bd7d08c4c5ca Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 13:51:03 +0100 Subject: [PATCH 05/10] Migrating to android bridge tools --- android-resource-collector/build.gradle | 2 +- android-resource-locator/build.gradle | 2 +- .../android/AndroidResourceLocatorPlugin.kt | 21 ++++--------------- gradle/libs.versions.toml | 5 +++-- 4 files changed, 9 insertions(+), 21 deletions(-) diff --git a/android-resource-collector/build.gradle b/android-resource-collector/build.gradle index d0139cd..69c9c17 100644 --- a/android-resource-collector/build.gradle +++ b/android-resource-collector/build.gradle @@ -5,8 +5,8 @@ plugins { dependencies { api project(':resource-collector') - implementation "com.likethesalad.tools:android-tools-plugin:$androidTools_version" implementation project(':android-resource-api') + implementation libs.androidCompatApi embedded libs.dagger kapt libs.dagger.compiler testImplementation libs.unitTesting diff --git a/android-resource-locator/build.gradle b/android-resource-locator/build.gradle index 21d47de..5394e1d 100644 --- a/android-resource-locator/build.gradle +++ b/android-resource-locator/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(":android-resource-api") api project(":android-resource-collector") api project(':android-resource-serializer') - api "com.likethesalad.tools:android-tools-plugin:$androidTools_version" + api libs.pluginTools implementation libs.gson embedded libs.dagger kapt libs.dagger.compiler diff --git a/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt b/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt index 22a0436..1029a76 100644 --- a/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt +++ b/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt @@ -1,10 +1,9 @@ package com.likethesalad.tools.resource.locator.android +import com.likethesalad.plugins.agpbrigde.base.AndroidBridgePluginConsumer import com.likethesalad.resource.serializer.android.AndroidResourceSerializer import com.likethesalad.tools.agpcompat.api.bridges.AndroidExtension import com.likethesalad.tools.agpcompat.api.bridges.AndroidVariantData -import com.likethesalad.tools.android.plugin.AndroidToolsPlugin -import com.likethesalad.tools.android.plugin.extension.AndroidToolsPluginExtension import com.likethesalad.tools.resource.collector.android.AndroidResourceCollector import com.likethesalad.tools.resource.collector.android.data.variant.VariantTree import com.likethesalad.tools.resource.collector.android.di.CollectorComponent @@ -23,14 +22,13 @@ import com.likethesalad.tools.resource.locator.android.extension.resources.DirLa import com.likethesalad.tools.resource.locator.android.providers.InstancesProvider import com.likethesalad.tools.resource.locator.android.providers.TaskFinder import com.likethesalad.tools.resource.locator.android.task.ResourceLocatorTask -import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.file.Directory import org.gradle.api.provider.Provider import java.io.File import java.util.concurrent.Callable -abstract class AndroidResourceLocatorPlugin : Plugin, TaskFinder, InstancesProvider { +abstract class AndroidResourceLocatorPlugin : AndroidBridgePluginConsumer(), TaskFinder, InstancesProvider { private lateinit var project: Project private val serializer by lazy { AndroidResourceSerializer() } @@ -38,27 +36,16 @@ abstract class AndroidResourceLocatorPlugin : Plugin, TaskFinder, Insta override fun apply(project: Project) { this.project = project - val androidToolsPluginExtension = findAndroidToolsPluginExtension() - androidExtension = androidToolsPluginExtension.androidExtension + androidExtension = androidBridge.androidExtension ResourceLocatorComponentProvider.init(this) val component = ResourceLocatorComponentProvider.getComponent() val resourceLocatorExtension = createExtension(project, component) - androidToolsPluginExtension.onVariant { variant -> + androidBridge.onVariant { variant -> createResourceLocatorTasksForVariant(variant, resourceLocatorExtension) } } - private fun findAndroidToolsPluginExtension(): AndroidToolsPluginExtension { - val toolsPluginExtension = project.extensions.findByType(AndroidToolsPluginExtension::class.java) - if (toolsPluginExtension == null) { - project.plugins.apply(AndroidToolsPlugin::class.java) - return project.extensions.getByType(AndroidToolsPluginExtension::class.java) - } - - return toolsPluginExtension - } - private fun createExtension( project: Project, component: ResourceLocatorComponent diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7675d7..75e69c0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,13 +1,14 @@ [versions] dagger = "2.50" -project-utilities = "3.0.2" +project-utilities = "3.1.0" [libraries] -androidToolsPlugin = "com.likethesalad.tools:android-tools-plugin:1.5.1" dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" } dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" } gson = "com.google.code.gson:gson:2.8.7" unitTesting = { module = "com.likethesalad.tools:unit-testing", version.ref = "project-utilities" } +androidCompatApi = { module = "com.likethesalad.tools:agp-compatibility-api", version.ref = "project-utilities" } +pluginTools = { module = "com.likethesalad.tools:plugin-tools", version.ref = "project-utilities" } [plugins] java-library = { id = "com.likethesalad.tools.java-library", version.ref = "project-utilities" } From 1f1b43dc1a8000edbde302212a65a808532ca4d0 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 14:16:34 +0100 Subject: [PATCH 06/10] Adding plugin test tools --- android-resource-locator-test/build.gradle | 10 +++------- .../locator/android/test/data/PluginGradleBlockItem.kt | 2 +- .../locator/android/AndroidResourceLocatorPlugin.kt | 1 + build.gradle | 7 ------- gradle/libs.versions.toml | 1 + 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/android-resource-locator-test/build.gradle b/android-resource-locator-test/build.gradle index c8a4753..36da5ae 100644 --- a/android-resource-locator-test/build.gradle +++ b/android-resource-locator-test/build.gradle @@ -1,23 +1,19 @@ plugins { alias(libs.plugins.java.library) + alias(libs.plugins.androidTestTools) id 'java-gradle-plugin' } dependencies { implementation project(':string-android-resource-locator') - compileOnly("com.android.tools.build:gradle:3.3.3") - compileOnly libs.dagger - testImplementation "com.likethesalad.tools.testing:android-gradle:$testingUtilities_version" + testPluginClasspath "com.android.tools.build:gradle:7.4.0" + testPluginClasspath libs.dagger } libConventions { setJavaVersion("11") } -tasks.withType(PluginUnderTestMetadata).configureEach { - pluginClasspath.from(configurations.compileOnly) -} - gradlePlugin { plugins { publisher { diff --git a/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/data/PluginGradleBlockItem.kt b/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/data/PluginGradleBlockItem.kt index e490214..300f18b 100644 --- a/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/data/PluginGradleBlockItem.kt +++ b/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/data/PluginGradleBlockItem.kt @@ -1,6 +1,6 @@ package com.likethesalad.tools.resource.locator.android.test.data -import com.likethesalad.tools.functional.testing.app.layout.GradleBlockItem +import com.likethesalad.tools.functional.testing.blocks.GradleBlockItem class PluginGradleBlockItem(private val locatorName: String) : GradleBlockItem { diff --git a/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt b/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt index 1029a76..60bd6e9 100644 --- a/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt +++ b/android-resource-locator/src/main/java/com/likethesalad/tools/resource/locator/android/AndroidResourceLocatorPlugin.kt @@ -35,6 +35,7 @@ abstract class AndroidResourceLocatorPlugin : AndroidBridgePluginConsumer(), Tas internal lateinit var androidExtension: AndroidExtension override fun apply(project: Project) { + super.apply(project) this.project = project androidExtension = androidBridge.androidExtension ResourceLocatorComponentProvider.init(this) diff --git a/build.gradle b/build.gradle index 7f89aa0..0fced45 100644 --- a/build.gradle +++ b/build.gradle @@ -2,13 +2,6 @@ plugins { alias(libs.plugins.artifactPublisher) } -ext { - dagger_version = '2.39.1' - gson_version = '2.8.7' - testingUtilities_version = '1.0.5' - androidTools_version = '1.4.0' -} - artifactPublisher { displayName = "Resource locator" url = "https://github.com/LikeTheSalad/resource-locator" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 75e69c0..b32804d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,3 +13,4 @@ pluginTools = { module = "com.likethesalad.tools:plugin-tools", version.ref = "p [plugins] java-library = { id = "com.likethesalad.tools.java-library", version.ref = "project-utilities" } artifactPublisher = { id = "com.likethesalad.artifact-publisher", version = "3.0.0" } +androidTestTools = { id = "com.likethesalad.tools.android-compilation-testing", version.ref = "project-utilities" } From 4fdbb0117145d685cef286dc9971bbbe5769052a Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 15:42:02 +0100 Subject: [PATCH 07/10] Migrated android tests to new plugin --- .../TestAndroidResourceLocatorPluginTest.kt | 210 ++++++++++-------- 1 file changed, 123 insertions(+), 87 deletions(-) diff --git a/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/TestAndroidResourceLocatorPluginTest.kt b/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/TestAndroidResourceLocatorPluginTest.kt index 9fc644f..06e5776 100644 --- a/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/TestAndroidResourceLocatorPluginTest.kt +++ b/android-resource-locator-test/src/test/java/com/likethesalad/tools/resource/locator/android/test/TestAndroidResourceLocatorPluginTest.kt @@ -1,26 +1,29 @@ package com.likethesalad.tools.resource.locator.android.test import com.google.common.truth.Truth -import com.likethesalad.tools.functional.testing.AndroidProjectTest -import com.likethesalad.tools.functional.testing.app.content.ValuesResFoldersPlacer -import com.likethesalad.tools.functional.testing.app.layout.AndroidAppProjectDescriptor -import com.likethesalad.tools.functional.testing.app.layout.GradleBlockItem -import com.likethesalad.tools.functional.testing.app.layout.items.DefaultConfigAndroidBlockItem -import com.likethesalad.tools.functional.testing.app.layout.items.FlavorAndroidBlockItem -import com.likethesalad.tools.functional.testing.layout.AndroidLibProjectDescriptor -import com.likethesalad.tools.functional.testing.layout.ProjectDescriptor +import com.likethesalad.tools.functional.testing.AndroidTestProject +import com.likethesalad.tools.functional.testing.android.blocks.DefaultConfigAndroidBlockItem +import com.likethesalad.tools.functional.testing.android.blocks.FlavorAndroidBlockItem +import com.likethesalad.tools.functional.testing.android.descriptor.AndroidAppProjectDescriptor +import com.likethesalad.tools.functional.testing.android.descriptor.AndroidLibProjectDescriptor +import com.likethesalad.tools.functional.testing.blocks.GradleBlockItem +import com.likethesalad.tools.functional.testing.blocks.impl.plugins.GradlePluginDeclaration import com.likethesalad.tools.functional.testing.utils.TestAssetsProvider import com.likethesalad.tools.resource.locator.android.test.data.PluginGradleBlockItem import org.gradle.testkit.runner.BuildResult +import org.junit.Rule import org.junit.Test +import org.junit.rules.TemporaryFolder import java.io.File -class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { +class TestAndroidResourceLocatorPluginTest { - private val testsDirName = "test" private val locatorPrefix = "prefix" - private val inputAssetsProvider = TestAssetsProvider(testsDirName, "inputs") - private val outputAssetsProvider = TestAssetsProvider(testsDirName, "outputs") + private val inputAssetsProvider = TestAssetsProvider("inputs") + private val outputAssetsProvider = TestAssetsProvider("outputs") + + @get:Rule + val temporaryFolder = TemporaryFolder() @Test fun `Check gathering strings from single variant and single file`() { @@ -35,54 +38,48 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { @Test fun `Check gathering strings from single variant and single file twice`() { val variantNames = listOf("debug") - val inOutDirName = "basic-repeated" - val descriptor = createAppProjectDescriptor(inOutDirName) - val inputDir = getInputTestAsset(inOutDirName) - descriptor.projectDirectoryBuilder.register(ValuesResFoldersPlacer(inputDir)) + val projectName = "basic-repeated" + val descriptor = createAppProjectDescriptor(projectName) val commandList = variantNamesToTaskCommands(variantNames) + val project = AndroidTestProject(getTempFile()) - createProject(descriptor) - val result1 = buildProject(commandList, inOutDirName) + project.addSubproject(descriptor) + val result1 = project.runGradle(projectName, commandList) - verifyVariantResults(variantNames, inOutDirName, inOutDirName) + verifyVariantResults(variantNames, projectName, projectName) verifyResultContainsLine(result1, "> Task :basic-repeated:prefixTestDebugResourceLocator") // Second time - val result2 = buildProject(commandList, inOutDirName) + val result2 = project.runGradle(projectName, commandList) - verifyVariantResults(variantNames, inOutDirName, inOutDirName) + verifyVariantResults(variantNames, projectName, projectName) verifyResultContainsLine(result2, "> Task :basic-repeated:prefixTestDebugResourceLocator UP-TO-DATE") } @Test fun `Check gathering strings from single variant and single file twice after changes to inputs`() { val variantNames = listOf("debug") - val inOutDirName = "basic-repeated-changed" - val descriptor = createAppProjectDescriptor(inOutDirName) - val inputDir = getInputTestAsset(inOutDirName) - val resFoldersPlacer = ValuesResFoldersPlacer(inputDir) - descriptor.projectDirectoryBuilder.register(resFoldersPlacer) + val projectName = "basic-repeated-changed" + val descriptor = createAppProjectDescriptor(projectName) val commandList = variantNamesToTaskCommands(variantNames) + val project = AndroidTestProject(getTempFile()) - createProject(descriptor) - val result1 = buildProject(commandList, inOutDirName) + project.addSubproject(descriptor) + val result1 = project.runGradle(projectName, commandList) - verifyVariantResults(variantNames, inOutDirName, inOutDirName) + verifyVariantResults(variantNames, projectName, projectName) verifyResultContainsLine(result1, "> Task :basic-repeated-changed:prefixTestDebugResourceLocator") // Second time - val dirNames2 = "basic-repeated-changed2" - val descriptor2 = createAppProjectDescriptor(inOutDirName) - val inputDir2 = getInputTestAsset(dirNames2) - descriptor2.projectDirectoryBuilder.register(ValuesResFoldersPlacer(inputDir2)) - val projectDir = getProjectDir(inOutDirName) - resFoldersPlacer.getFilesCreated().forEach { it.delete() } - descriptor2.projectDirectoryBuilder.buildDirectory(projectDir) + val inputDirName2 = "basic-repeated-changed2" + val secondInputDir = getInputTestAsset(inputDirName2) + val projectSrcDir = getTempFile(projectName, "src") + copyContents(secondInputDir, projectSrcDir) - val result2 = buildProject(commandList, inOutDirName) + val result2 = project.runGradle(projectName, commandList) - verifyVariantResults(variantNames, inOutDirName, dirNames2) + verifyVariantResults(variantNames, projectName, inputDirName2) verifyResultContainsLine(result2, "> Task :basic-repeated-changed:prefixTestDebugResourceLocator") } @@ -91,27 +88,23 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { val variantNames = listOf("debug") val inOutDirName = "multiplelanguages-changed" val descriptor = createAppProjectDescriptor(inOutDirName) - val inputDir = getInputTestAsset(inOutDirName) - val resFoldersPlacer = ValuesResFoldersPlacer(inputDir) - descriptor.projectDirectoryBuilder.register(resFoldersPlacer) val commandList = variantNamesToTaskCommands(variantNames) + val project = AndroidTestProject(getTempFile()) - createProject(descriptor) - val result1 = buildProject(commandList, inOutDirName) + project.addSubproject(descriptor) + val result1 = project.runGradle(inOutDirName, commandList) verifyVariantResults(variantNames, inOutDirName, inOutDirName) verifyResultContainsLine(result1, "> Task :multiplelanguages-changed:prefixTestDebugResourceLocator") // Second time val dirNames2 = "multiplelanguages-changed2" - val descriptor2 = createAppProjectDescriptor(inOutDirName) val inputDir2 = getInputTestAsset(dirNames2) - descriptor2.projectDirectoryBuilder.register(ValuesResFoldersPlacer(inputDir2)) - val projectDir = getProjectDir(inOutDirName) - resFoldersPlacer.getFilesCreated().forEach { it.delete() } - descriptor2.projectDirectoryBuilder.buildDirectory(projectDir) + val projectSrcDir = getTempFile(inOutDirName, "src") + removeMatchingFiles(getInputTestAsset(inOutDirName), projectSrcDir) + copyContents(inputDir2, projectSrcDir) - val result2 = buildProject(commandList, inOutDirName) + val result2 = project.runGradle(inOutDirName, commandList) verifyVariantResults(variantNames, inOutDirName, dirNames2) verifyResultContainsLine(result2, "> Task :multiplelanguages-changed:prefixTestDebugResourceLocator") @@ -123,7 +116,7 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { val generatedStrings = mapOf("android_generated" to "This string was generated using Androids build plugin") val appDescriptor = createAppProjectDescriptor( inOutDirName, - listOf( + blockItems = listOf( DefaultConfigAndroidBlockItem(generatedStrings) ) ) @@ -150,7 +143,7 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { flavors.add(FlavorAndroidBlockItem.FlavorDescriptor("environment", environmentFlavors)) val flavoredDescriptor = createAppProjectDescriptor( inOutDirName, - listOf(FlavorAndroidBlockItem(flavors)) + blockItems = listOf(FlavorAndroidBlockItem(flavors)) ) runInputOutputComparisonTest( @@ -169,10 +162,9 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { fun `Verify app that takes resources from libraries`() { // Create library val libName = "mylibrary" - val libDescriptor = AndroidLibProjectDescriptor(libName) - libDescriptor.projectDirectoryBuilder - .register(ValuesResFoldersPlacer(getInputTestAsset(libName))) - createProject(libDescriptor) + val libDescriptor = createLibProjectDescriptor(libName) + val project = AndroidTestProject(getTempFile()) + project.addSubproject(libDescriptor) // Set up app val appName = "with-library" @@ -180,18 +172,18 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { appName, dependencies = listOf("implementation project(':$libName')"), ) + project.addSubproject(appDescriptor) - runInputOutputComparisonTest(appName, listOf("debug"), appDescriptor) + runInputOutputComparisonTest(project, appName, listOf("debug")) } @Test fun `Taking namespaced strings from libraries`() { // Create library val libName = "mylibrary_namespaced" - val libDescriptor = AndroidLibProjectDescriptor(libName) - libDescriptor.projectDirectoryBuilder - .register(ValuesResFoldersPlacer(getInputTestAsset(libName))) - createProject(libDescriptor) + val libDescriptor = createLibProjectDescriptor(libName) + val project = AndroidTestProject(getTempFile()) + project.addSubproject(libDescriptor) // Set up app val appName = "with-library-namespaced" @@ -199,22 +191,20 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { appName, dependencies = listOf("implementation project(':$libName')"), ) + project.addSubproject(appDescriptor) - runInputOutputComparisonTest(appName, listOf("debug"), appDescriptor) + runInputOutputComparisonTest(project, appName, listOf("debug")) } @Test fun `Verify app that takes resources from more than one library`() { val libName = "mylibrary-of-libraries" val libName2 = "mylibrary2-of-libraries" - val libDescriptor = AndroidLibProjectDescriptor(libName) - val libDescriptor2 = AndroidLibProjectDescriptor(libName2) - libDescriptor.projectDirectoryBuilder - .register(ValuesResFoldersPlacer(getInputTestAsset(libName))) - createProject(libDescriptor) - libDescriptor2.projectDirectoryBuilder - .register(ValuesResFoldersPlacer(getInputTestAsset(libName2))) - createProject(libDescriptor2) + val libDescriptor = createLibProjectDescriptor(libName) + val libDescriptor2 = createLibProjectDescriptor(libName2) + val project = AndroidTestProject(getTempFile()) + project.addSubproject(libDescriptor) + project.addSubproject(libDescriptor2) // Set up app val appName = "with-libraries" @@ -225,32 +215,50 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { "implementation project(':$libName2')" ) ) + project.addSubproject(appDescriptor) - runInputOutputComparisonTest(appName, listOf("debug"), appDescriptor) + runInputOutputComparisonTest(project, appName, listOf("debug")) } private fun runInputOutputComparisonTest( - inOutDirName: String, + projectName: String, variantNames: List, descriptor: AndroidAppProjectDescriptor = createAppProjectDescriptor( - inOutDirName + projectName ) ) { - val inputDir = getInputTestAsset(inOutDirName) - descriptor.projectDirectoryBuilder.register(ValuesResFoldersPlacer(inputDir)) + val project = AndroidTestProject(getTempFile()) + project.addSubproject(descriptor) + runInputOutputComparisonTest(project, projectName, variantNames) + } - createProjectAndRunResourceLocatorTasks(descriptor, variantNames) + private fun runInputOutputComparisonTest( + project: AndroidTestProject, + projectName: String, + variantNames: List, + ) { + runResourceLocatorTasks(project, projectName, variantNames) - verifyVariantResults(variantNames, inOutDirName, inOutDirName) + verifyVariantResults(variantNames, projectName, projectName) } private fun createAppProjectDescriptor( - inOutDirName: String, + name: String, + inputDir: File = getInputTestAsset(name), blockItems: List = emptyList(), dependencies: List = emptyList() ): AndroidAppProjectDescriptor { - val gradleItems = listOf(PluginGradleBlockItem(locatorPrefix)) + blockItems - return AndroidAppProjectDescriptor(inOutDirName, getPluginId(), gradleItems, dependencies) + val gradleItems: List = listOf(PluginGradleBlockItem(locatorPrefix)) + blockItems + val descriptor = AndroidAppProjectDescriptor(name, inputDir, gradleItems) + descriptor.pluginsBlock.addPlugin(GradlePluginDeclaration(getPluginId())) + dependencies.forEach { + descriptor.dependenciesBlock.addDependency(it) + } + return descriptor + } + + private fun createLibProjectDescriptor(libName: String): AndroidLibProjectDescriptor { + return AndroidLibProjectDescriptor(libName, getInputTestAsset(libName)) } private fun variantNamesToTaskCommands(variantNames: List): List { @@ -272,7 +280,7 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { variantName: String ) { val taskName = variantNameToTaskName(variantName) - val projectDir = getProjectDir(projectName) + val projectDir = getTempFile(projectName) val resultDir = File(projectDir, "build/intermediates/incremental/$taskName") Truth.assertThat(resultDir.exists()).isTrue() verifyDirsContentsAreEqual(getExpectedOutputDir(outputDirName, taskName), resultDir) @@ -316,24 +324,31 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { Truth.assertThat(fileWithSameName.readText()).isEqualTo(file.readText()) } - private fun createProjectAndRunResourceLocatorTasks( - projectDescriptor: ProjectDescriptor, + private fun runResourceLocatorTasks( + project: AndroidTestProject, + projectName: String, variantNames: List ): BuildResult { val taskNames = variantNamesToTaskCommands(variantNames) - return createProjectAndBuild(projectDescriptor, taskNames) + return project.runGradle(projectName, taskNames) + } + + private fun getTempFile(vararg paths: String): File { + return if (paths.isEmpty()) { + temporaryFolder.root + } else { + File(temporaryFolder.root, paths.joinToString("/")) + } } private fun getInputTestAsset(inputDirName: String): File { - return inputAssetsProvider.getAssetFile(inputDirName) + return inputAssetsProvider.getFile(inputDirName) } private fun getOutputTestAsset(outputDirName: String): File { - return outputAssetsProvider.getAssetFile(outputDirName) + return outputAssetsProvider.getFile(outputDirName) } - override fun getGradleVersion(): String = "5.6.4" - private fun getPluginId(): String { return "android-resources-locator-test" } @@ -341,4 +356,25 @@ class TestAndroidResourceLocatorPluginTest : AndroidProjectTest() { private fun getLocatorId(): String { return "test" } + + private fun verifyResultContainsLine(result: BuildResult, line: String) { + val lines = result.output.lines() + Truth.assertThat(lines).contains(line) + } + + private fun verifyResultContainsText(result: BuildResult, text: String) { + Truth.assertThat(result.output).contains(text) + } + + private fun copyContents(fromDir: File, intoDir: File) { + fromDir.copyRecursively(intoDir, true) + } + + private fun removeMatchingFiles(referenceDir: File, targetDir: File) { + referenceDir.walkTopDown().forEach { + if (it.isFile) { + File(targetDir, it.toRelativeString(referenceDir)).delete() + } + } + } } \ No newline at end of file From 3ef18a399a0b49fb335aad0d7f9389eacf587acd Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 16:02:56 +0100 Subject: [PATCH 08/10] Globalizing kotlin version --- android-resource-api/build.gradle | 1 + gradle.properties | 1 + gradle/libs.versions.toml | 1 + settings.gradle | 8 ++++++-- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/android-resource-api/build.gradle b/android-resource-api/build.gradle index f294cc1..02c3cf3 100644 --- a/android-resource-api/build.gradle +++ b/android-resource-api/build.gradle @@ -5,4 +5,5 @@ plugins { dependencies { api project(":resource-api") testImplementation libs.unitTesting + testImplementation libs.kotlin.reflect } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 336edf9..f925b7f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ kotlin.code.style=official +kotlin.version=1.9.22 group=com.likethesalad.tools.resources version=2.1.0 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b32804d..5237531 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,6 +9,7 @@ gson = "com.google.code.gson:gson:2.8.7" unitTesting = { module = "com.likethesalad.tools:unit-testing", version.ref = "project-utilities" } androidCompatApi = { module = "com.likethesalad.tools:agp-compatibility-api", version.ref = "project-utilities" } pluginTools = { module = "com.likethesalad.tools:plugin-tools", version.ref = "project-utilities" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } [plugins] java-library = { id = "com.likethesalad.tools.java-library", version.ref = "project-utilities" } diff --git a/settings.gradle b/settings.gradle index ae96312..ec0006d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,6 +18,11 @@ pluginManagement { } } dependencyResolutionManagement { + versionCatalogs { + libs { + version('kotlin', getProperty("kotlin.version")) + } + } repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { mavenLocal() @@ -31,8 +36,7 @@ buildscript { mavenCentral() } dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22" - classpath 'com.likethesalad.dagger:remapper-plugin:1.0.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getProperty("kotlin.version")}" } } rootProject.name = 'resource-locator' From 910329aa58b77509ca9ccf3475486d4fad5ea0a4 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 16:06:28 +0100 Subject: [PATCH 09/10] Updated CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81baee8..a71bd73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Change Log ========== +Version 2.2.0 +--- + +* Updating utilities. + Version 2.1.0 --- From de820a6d124b475e1fab6c76a39d353667d950f5 Mon Sep 17 00:00:00 2001 From: Cesar Munoz Date: Sat, 6 Jan 2024 16:09:30 +0100 Subject: [PATCH 10/10] Bumping version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index f925b7f..f4537c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ kotlin.code.style=official kotlin.version=1.9.22 group=com.likethesalad.tools.resources -version=2.1.0 +version=2.2.0