Skip to content

Commit

Permalink
Merge pull request #107 from matheus-corregiari/release/1.9.0
Browse files Browse the repository at this point in the history
Release/1.9.0
  • Loading branch information
matheus-corregiari authored Jan 28, 2025
2 parents 0b34b89 + 1e241de commit bf2a26c
Show file tree
Hide file tree
Showing 271 changed files with 1,175 additions and 3,314 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/generate-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ jobs:
run: ./gradlew :${{ matrix.module }}:assembleRelease

- name: Publish ${{ matrix.module }}
run: ./gradlew :${{ matrix.module }}:publishToolkitPublicationToSonatypeRepository
run: ./gradlew :${{ matrix.module }}:publishAllPublicationsToSonatypeRepository
11 changes: 5 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
**/build
**/.kotlin/
**/.gradle/
**/.idea/
**/.git/
*.log
*.iml
.gradle
/local.properties
/.idea
.DS_Store
/build
**/build
*/build
/captures
.externalNativeBuild
toolkit/build/
13 changes: 3 additions & 10 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
plugins {
id("jacoco")

alias(pluginLibraries.plugins.android.application) apply false
alias(pluginLibraries.plugins.android.library) apply false
alias(pluginLibraries.plugins.google.ksp) apply false
alias(pluginLibraries.plugins.jetbrains.kotlin) apply false
alias(pluginLibraries.plugins.jetbrains.multiplatform) apply false
alias(pluginLibraries.plugins.jetbrains.serialization) apply false
alias(pluginLibraries.plugins.dexcount) apply false
alias(pluginLibraries.plugins.detekt) apply false
// TODO Pedrinho, help me
// alias(pluginLibraries.plugins.pedrinho_publish) apply false
alias(libs.plugins.google.ksp) apply false
alias(libs.plugins.jetbrains.serialization) apply false
alias(libs.plugins.dexcount) apply false
}
42 changes: 21 additions & 21 deletions plugin/build.gradle.kts → buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id("java-gradle-plugin")
alias(pluginLibraries.plugins.jvm)
alias(libs.plugins.jvm)
}

kotlin { jvmToolchain(17) }
Expand All @@ -11,12 +11,13 @@ version = "1.0.0"
dependencies {
compileOnly(gradleApi())

implementation(pluginLibraries.androidx.plugin)
implementation(pluginLibraries.detekt)
implementation(pluginLibraries.ktlint)
implementation(pluginLibraries.jetbrains.plugin)
implementation(pluginLibraries.jetbrains.extensions)
implementation(pluginLibraries.jetbrains.kover)
implementation(libs.androidx.plugin)
implementation(libs.detekt)
implementation(libs.ktlint)
implementation(libs.jetbrains.plugin)
implementation(libs.jetbrains.extensions)
implementation(libs.jetbrains.kover)
implementation(libs.jetbrains.dokka)
}

sourceSets {
Expand Down Expand Up @@ -50,6 +51,12 @@ gradlePlugin {
description = "All default config"
implementationClass = "com.toolkit.plugin.android.ToolkitBasePlugin"
}
create("toolkit-android-publish") {
id = "toolkit-android-publish"
displayName = "Toolkit Publish Plugin"
description = "Enables and configure publish for module"
implementationClass = "com.toolkit.plugin.android.ToolkitPublishPlugin"
}
//endregion

//region Multiplatform
Expand All @@ -61,19 +68,19 @@ gradlePlugin {
implementationClass = "com.toolkit.plugin.multiplatform.ToolkitLibraryPlugin"
}

create("toolkit-multiplatform-sample") {
id = "toolkit-multiplatform-sample"
displayName = "Toolkit Sample Plugin"
description = "Plug and play for modules to show the world the wonders of tomorrow!"
implementationClass = "com.toolkit.plugin.multiplatform.ToolkitSamplePlugin"
}

create("toolkit-multiplatform-base") {
id = "toolkit-multiplatform-base"
displayName = "Toolkit Base Plugin"
description = "All default config"
implementationClass = "com.toolkit.plugin.multiplatform.ToolkitBasePlugin"
}

create("toolkit-multiplatform-publish") {
id = "toolkit-multiplatform-publish"
displayName = "Toolkit Publish Plugin"
description = "Enables and configure publish for module"
implementationClass = "com.toolkit.plugin.multiplatform.ToolkitPublishPlugin"
}
//endregion

//region Generic
Expand Down Expand Up @@ -112,13 +119,6 @@ gradlePlugin {
description = "Enables and configure group for module"
implementationClass = "com.toolkit.plugin.ToolkitGroupPlugin"
}

create("toolkit-publish") {
id = "toolkit-publish"
displayName = "Toolkit Publish Plugin"
description = "Enables and configure publish for module"
implementationClass = "com.toolkit.plugin.ToolkitPublishPlugin"
}
//endregion
}
}
14 changes: 14 additions & 0 deletions buildSrc/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#
#
#
#
#
# ----------- PROJECT CONFIG --------------
# Gradle
org.gradle.jvmargs=-Xmx8192m -XX:+UseParallelGC -Dkotlin.daemon.jvm.options\="-Xmx8192m"
org.gradle.parallel=true
org.gradle.warning.mode=none
org.gradle.configuration-cache=true
# Kotlin
kotlin.mpp.androidGradlePluginCompatibility.nowarn=trueorg.gradle.parallel=true
#
File renamed without changes.
10 changes: 1 addition & 9 deletions plugin/settings.gradle.kts → buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,5 @@ dependencyResolutionManagement {
apply(from = "$rootDir/repositories.gradle.kts")
val repositoryList: RepositoryHandler.() -> Unit by extra
repositories(repositoryList)

versionCatalogs {
register("libraries") {
from(files("$rootDir/../tools/libs.versions.toml"))
}
register("pluginLibraries") {
from(files("$rootDir/../tools/plugin.versions.toml"))
}
}
versionCatalogs { register("libs") { from(files("$rootDir/../gradle/libs.versions.toml")) } }
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.toolkit.plugin

import com.toolkit.plugin.util.androidApplication
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libs
import com.toolkit.plugin.util.requireAll
import com.toolkit.plugin.util.version
import org.gradle.api.Plugin
Expand All @@ -18,12 +18,12 @@ internal class ToolkitComposePlugin : Plugin<Project> {
}
composeOptions {
kotlinCompilerExtensionVersion =
target.libraries.version("androidx-compose-compiler")
target.libs.version("androidx-compose-compiler")
}
}
with(target.dependencies) {
add("implementation", target.libraries.findBundle("androidx-compose-release").get())
add("debugImplementation", target.libraries.findBundle("androidx-compose-debug").get())
add("implementation", target.libs.findBundle("androidx-compose-release").get())
add("debugImplementation", target.libs.findBundle("androidx-compose-debug").get())
}
}
}
49 changes: 49 additions & 0 deletions buildSrc/src/main/kotlin/com/toolkit/plugin/ToolkitGroupPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.toolkit.plugin

import com.toolkit.plugin.util.applyPlugins
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.jetbrains.kotlin.com.google.gson.JsonArray
import java.nio.file.Files

internal class ToolkitGroupPlugin : Plugin<Project> {

override fun apply(target: Project) {
target.evaluationDependsOnChildren()
target.applyPlugins("jetbrains-kover")

// Try to unify coverage reports
target.subprojects.onEach { target.dependencies.add("kover", it) }

// Generate file containing all modules with publish plugin attached
target.tasks.register("publishModules") { task ->
task.group = "groupTask"
// Store target directory into a variable to avoid project reference in the configuration cache
val directory = task.project.layout.buildDirectory.get()
val file = directory.file("modules.txt").asFile
val publishAndroidLibraries = task.project.allAndroid()
val publishMultiplatformLibraries = task.project.allMultiplatform()
task.doLast { _ ->
Files.createDirectories(directory.asFile.toPath())
val json = JsonArray()
publishAndroidLibraries.onEach(json::add)
publishMultiplatformLibraries.onEach(json::add)

if (file.exists().not()) file.createNewFile()
file.writeText(json.toString())
println("Publish module list generated at: $file")
println(json.toString())
}
}
}

private fun Project.allAndroid(prefix: String = "toolkit"): List<String> =
if (plugins.hasPlugin("toolkit-android-publish")) listOf("$prefix:$name")
else subprojects.filter { it.subprojects.isEmpty() }
.flatMap { it.allAndroid("$prefix:android") }

private fun Project.allMultiplatform(prefix: String = "toolkit"): List<String> =
if (plugins.hasPlugin("toolkit-multiplatform-publish")) listOf("$prefix:$name")
else subprojects.filter { it.subprojects.isEmpty() }
.flatMap { it.allMultiplatform("$prefix:multi") }
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.toolkit.plugin.util.androidLibrary
import com.toolkit.plugin.util.applyPlugins
import com.toolkit.plugin.util.detekt
import com.toolkit.plugin.util.ktLint
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libs
import io.gitlab.arturbosch.detekt.Detekt
import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask
import io.gitlab.arturbosch.detekt.extensions.DetektReport
Expand All @@ -24,7 +24,7 @@ internal class ToolkitLintPlugin : Plugin<Project> {
// Detekt configuration
target.dependencies.add(
"detektPlugins",
target.libraries.findLibrary("detekt-formatting").get()
target.libs.findLibrary("detekt-formatting").get()
)
with(target.detekt) {
parallel = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ package com.toolkit.plugin

import com.toolkit.plugin.util.allDefinedDependencies
import com.toolkit.plugin.util.applicationComponent
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libraryComponent
import com.toolkit.plugin.util.libs
import org.gradle.api.Plugin
import org.gradle.api.Project

internal class ToolkitOptimizeDependenciesAndFilterTasksPlugin : Plugin<Project> {

override fun apply(target: Project) {
val libraries = target.libraries
val libraries = target.libs
val allDefinedLibraries = libraries.allDefinedDependencies
target.configurations.configureEach { config ->
config.resolutionStrategy { strategy ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ import com.toolkit.plugin.util.androidLibrary
import com.toolkit.plugin.util.applyPlugins
import com.toolkit.plugin.util.jacoco
import com.toolkit.plugin.util.kover
import com.toolkit.plugin.util.koverReport
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libs
import com.toolkit.plugin.util.version
import org.gradle.api.Plugin
import org.gradle.api.Project
Expand All @@ -27,14 +26,9 @@ internal class ToolkitTestPlugin : Plugin<Project> {
disable()
}
}
with(target.koverReport) {
defaults { reports ->
reports.mergeWith("debug")
}
}

// Kover configuration
with(target.jacoco) { toolVersion = target.libraries.version("jacoco") }
with(target.jacoco) { toolVersion = target.libs.version("jacoco") }

// Regular Test configuration
kotlin.runCatching { setForApplication(target.androidApplication) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.toolkit.plugin

import com.android.build.api.dsl.ApplicationExtension
import com.toolkit.plugin.util.androidApplication
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libs
import com.toolkit.plugin.util.version
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
Expand All @@ -13,16 +13,16 @@ internal fun Project.setupAndroidApplicationModule() = with(androidApplication)
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

versionCode = libraries.version("build-version-code").toInt()
versionName = libraries.version("build-version-name")
versionCode = libs.version("build-version-code").toInt()
versionName = libs.version("build-version-name")

resourceConfigurations.add("en")
}
buildTypes.maybeCreate("release").apply { isMinifyEnabled = true }
buildFeatures.buildConfig = true

// Setup Android Version support
setupVersion(libraries)
setupVersion(libs)

// Common Setup
commonSetup()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.toolkit.plugin

import com.android.build.api.dsl.LibraryExtension
import com.toolkit.plugin.util.androidLibrary
import com.toolkit.plugin.util.libraries
import com.toolkit.plugin.util.libs
import com.toolkit.plugin.util.version
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
Expand All @@ -12,7 +12,7 @@ internal fun Project.setupAndroidLibraryModule() = with(androidLibrary) {
commonSetup()

// Setup Android Version support
setupVersion(libraries)
setupVersion(libs)

// Exclusive Library Configurations
defaultConfig {
Expand Down
Loading

0 comments on commit bf2a26c

Please sign in to comment.