Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: eygraber/gradle-conventions
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.0.59
Choose a base ref
...
head repository: eygraber/gradle-conventions
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.0.60
Choose a head ref
  • 3 commits
  • 35 files changed
  • 3 contributors

Commits on Jan 5, 2024

  1. Unverified

    This user has not yet uploaded their public signing key.
    Copy the full SHA
    8df7087 View commit details
  2. Update dependency com.eygraber.conventions to v0.0.59 (#295)

    * Update dependency com.eygraber.conventions to v0.0.58
    
    * Update libs.versions.toml
    
    ---------
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Eliezer Graber <me@eygraber.com>
    renovate[bot] and eygraber authored Jan 5, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    e1c38b3 View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    48bddeb View commit details
Showing with 256 additions and 240 deletions.
  1. +2 −2 .editorconfig
  2. +1 −1 build.gradle.kts
  3. +1 −1 conventions-base/src/main/kotlin/com/eygraber/conventions/publishing/GitHubPackagesPublishingRepo.kt
  4. +5 −5 conventions-base/src/main/kotlin/com/eygraber/conventions/repositories/GitHubPackagesRepo.kt
  5. +1 −1 conventions-base/src/main/kotlin/com/eygraber/conventions/repositories/common_repositories.kt
  6. +2 −2 conventions-base/src/main/kotlin/com/eygraber/conventions/repositories/maven_central_snapshots.kt
  7. +3 −3 conventions-detekt/src/main/kotlin/com/eygraber/conventions/detekt/detekt.kt
  8. +1 −1 conventions-detekt/src/main/kotlin/com/eygraber/conventions/detekt/detekt_common_test.kt
  9. +10 −10 conventions-detekt/src/main/kotlin/com/eygraber/conventions/detekt/register_detekt_task.kt
  10. +1 −1 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/dependencies.kt
  11. +6 −6 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/kgp.kt
  12. +5 −5 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/kmp/spm/fat_xc_framework.kt
  13. +2 −2 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/kmp/spm/spm_checkum.kt
  14. +6 −6 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/kmp/spm/spm_maven.kt
  15. +7 −7 conventions-kotlin/src/main/kotlin/com/eygraber/conventions/kotlin/kmp/spm/spm_publish.kt
  16. +1 −1 conventions-plugin/src/main/kotlin/com.eygraber.conventions-android-library.gradle.kts
  17. +2 −2 conventions-plugin/src/main/kotlin/com.eygraber.conventions-compose-jetbrains.gradle.kts
  18. +1 −1 conventions-plugin/src/main/kotlin/com.eygraber.conventions-compose-jetpack.gradle.kts
  19. +1 −1 conventions-plugin/src/main/kotlin/com.eygraber.conventions-detekt.gradle.kts
  20. +1 −1 conventions-plugin/src/main/kotlin/com.eygraber.conventions-kotlin-library.gradle.kts
  21. +0 −47 conventions-plugin/src/main/kotlin/com.eygraber.conventions-kotlin-multiplatform.gradle.kts
  22. +2 −2 conventions-plugin/src/main/kotlin/com.eygraber.conventions-project-common.gradle.kts
  23. +1 −2 conventions-plugin/src/main/kotlin/com.eygraber.conventions-publish-github.gradle.kts
  24. +2 −2 conventions-plugin/src/main/kotlin/com.eygraber.conventions-publish-spm.gradle.kts
  25. +8 −9 conventions-plugin/src/main/kotlin/com/eygraber/conventions/GradleConventionsPlugin.kt
  26. +7 −39 conventions-plugin/src/main/kotlin/com/eygraber/conventions/GradleConventionsPluginExtension.kt
  27. +7 −7 conventions-plugin/src/main/kotlin/com/eygraber/conventions/android/GradleConventionsAndroid.kt
  28. +10 −10 conventions-plugin/src/main/kotlin/com/eygraber/conventions/compose/GradleConventionsCompose.kt
  29. +2 −2 conventions-plugin/src/main/kotlin/com/eygraber/conventions/detekt/GradleConventionsDetekt.kt
  30. +59 −0 conventions-plugin/src/main/kotlin/com/eygraber/conventions/kotlin/GradleConventionsKmp.kt
  31. +0 −44 ...ns-plugin/src/main/kotlin/com/eygraber/conventions/kotlin/GradleConventionsKotlinMultiplatform.kt
  32. +2 −2 ...-plugin/src/main/kotlin/com/eygraber/conventions/project/common/GradleConventionsProjectCommon.kt
  33. +95 −13 conventions-plugin/src/main/kotlin/kmp.kt
  34. +1 −1 gradle.properties
  35. +1 −1 gradle/libs.versions.toml
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -12,13 +12,13 @@ ktlint_ignore_back_ticked_identifier = true
ktlint_standard_annotation = disabled
ktlint_standard_class-signature = disabled
ktlint_standard_comment-wrapping = disabled
# disabled because of https://github.com/pinterest/ktlint/issues/2182#issuecomment-1863408507
ktlint_standard_condition-wrapping = disabled
ktlint_standard_filename = disabled
ktlint_standard_function-naming = disabled
ktlint_standard_function-signature = disabled
ktlint_standard_keyword-spacing = disabled
ktlint_standard_package-name = disabled
ktlint_standard_property-naming = disabled
ktlint_standard_spacing-between-declarations-with-annotations = disabled
ktlint_standard_trailing-comma-on-call-site = disabled
ktlint_standard_trailing-comma-on-declaration-site = disabled
max_line_length = 120
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ gradleConventionsDefaults {
detekt {
plugins(
libs.detektEygraber.formatting,
libs.detektEygraber.style
libs.detektEygraber.style,
)
}
kotlin {
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ import java.net.URI
public fun RepositoryHandler.githubPackagesPublishing(
owner: String,
repo: String,
action: Action<MavenArtifactRepository> = Actions.doNothing()
action: Action<MavenArtifactRepository> = Actions.doNothing(),
) {
maven {
name = "githubPackages"
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ public fun RepositoryHandler.gitHubPackages(
repo: String,
username: String,
password: String,
action: Action<MavenArtifactRepository> = Actions.doNothing()
action: Action<MavenArtifactRepository> = Actions.doNothing(),
) {
maven {
url = URI("https://maven.pkg.github.com/$owner/$repo")
@@ -38,22 +38,22 @@ public fun RepositoryHandler.gitHubPackages(
ejsonJsonKey: String = "github_packages_pat",
ejsonPrivateKey: String? = null,
ejsonPrivateKeyEnvVar: String = "EJSON_PRIVATE_KEY",
action: Action<MavenArtifactRepository> = Actions.doNothing()
action: Action<MavenArtifactRepository> = Actions.doNothing(),
) {
gitHubPackages(
owner = owner,
repo = repo,
username = username,
password = Ejson().decryptSecrets(
secretsFile = ejsonSecretsFile.toPath(),
userSuppliedPrivateKey = ejsonPrivateKey ?: System.getenv(ejsonPrivateKeyEnvVar)
userSuppliedPrivateKey = ejsonPrivateKey ?: System.getenv(ejsonPrivateKeyEnvVar),
) { json ->
requireNotNull(
json[ejsonJsonKey]
?.jsonPrimitive
?.contentOrNull
?.contentOrNull,
)
},
action = action
action = action,
)
}
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ public fun RepositoryHandler.addCommonRepositories(
includeJitpack: Boolean = false,
jitpack: Action<MavenArtifactRepository> = Actions.doNothing(),
includeGradlePluginPortal: Boolean = false,
gradlePluginPortal: Action<ArtifactRepository> = Actions.doNothing()
gradlePluginPortal: Action<ArtifactRepository> = Actions.doNothing(),
) {
if(includeGoogle) {
google {
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ import org.gradle.internal.Actions

@JvmOverloads
public fun RepositoryHandler.mavenCentralSnapshots(
action: Action<MavenArtifactRepository> = Actions.doNothing()
action: Action<MavenArtifactRepository> = Actions.doNothing(),
) {
maven {
setUrl("https://oss.sonatype.org/content/repositories/snapshots")
@@ -22,7 +22,7 @@ public fun RepositoryHandler.mavenCentralSnapshots(

@JvmOverloads
public fun RepositoryHandler.mavenCentralSnapshotsS01(
action: Action<MavenArtifactRepository> = Actions.doNothing()
action: Action<MavenArtifactRepository> = Actions.doNothing(),
) {
maven {
setUrl("https://s01.oss.sonatype.org/content/repositories/snapshots")
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ public fun Project.configureDetekt(
configFiles: ConfigurableFileCollection = files(),
ignoredAndroidFlavors: List<String> = emptyList(),
ignoredAndroidVariants: List<String> = emptyList(),
configure: Action<DetektExtension> = Actions.doNothing()
configure: Action<DetektExtension> = Actions.doNothing(),
) {
configureDetekt(
jvmTargetVersion.get(),
@@ -28,7 +28,7 @@ public fun Project.configureDetekt(
configFiles,
ignoredAndroidFlavors,
ignoredAndroidVariants,
configure
configure,
)
}

@@ -39,7 +39,7 @@ public fun Project.configureDetekt(
configFiles: ConfigurableFileCollection = files(),
ignoredAndroidFlavors: List<String> = emptyList(),
ignoredAndroidVariants: List<String> = emptyList(),
configure: Action<DetektExtension> = Actions.doNothing()
configure: Action<DetektExtension> = Actions.doNothing(),
) {
detekt {
source.from("build.gradle.kts")
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ public fun Project.registerCommonTestDetektTask() {
// only register the task if it hasn't already been registered
registerDetektTask(
name = "metadataTest",
sourceSet = kmpSourceSets.getByName("commonTest")
sourceSet = kmpSourceSets.getByName("commonTest"),
)
}
}
Original file line number Diff line number Diff line change
@@ -16,19 +16,19 @@ import java.util.Locale

public fun Project.registerDetektKmpIntermediateTask(
intermediateName: String,
targets: List<KotlinTarget>
targets: List<KotlinTarget>,
) {
plugins.withType(KotlinMultiplatformPluginWrapper::class.java) {
val sourceSets = kmpSourceSets

val mainDetektTask = registerDetektTask(
name = "${intermediateName}Main",
sourceSet = sourceSets.getByName("${intermediateName}Main")
sourceSet = sourceSets.getByName("${intermediateName}Main"),
)

val testDetektTask = registerDetektTask(
name = "${intermediateName}Test",
sourceSet = sourceSets.getByName("${intermediateName}Test")
sourceSet = sourceSets.getByName("${intermediateName}Test"),
)

targets.map { target -> target.name.capitalize() }.forEach { name ->
@@ -40,18 +40,18 @@ public fun Project.registerDetektKmpIntermediateTask(

public fun Project.registerSourceSetDetektTask(
sourceSetName: String,
vararg dependsOnSourceSetNames: String
vararg dependsOnSourceSetNames: String,
) {
val sourceSets = kmpSourceSets

val mainDetektTask = registerDetektTask(
name = "${sourceSetName}Main",
sourceSet = sourceSets.getByName("${sourceSetName}Main")
sourceSet = sourceSets.getByName("${sourceSetName}Main"),
)

val testDetektTask = registerDetektTask(
name = "${sourceSetName}Test",
sourceSet = sourceSets.getByName("${sourceSetName}Test")
sourceSet = sourceSets.getByName("${sourceSetName}Test"),
)

for(dependsOnSourceSetName in dependsOnSourceSetNames) {
@@ -67,7 +67,7 @@ public fun Project.registerSourceSetDetektTask(
// https://github.com/detekt/detekt/blob/main/detekt-gradle-plugin/src/main/kotlin/io/gitlab/arturbosch/detekt/internal/DetektMultiplatform.kt
public fun Project.registerDetektTask(
name: String,
sourceSet: KotlinSourceSet
sourceSet: KotlinSourceSet,
): TaskProvider<Detekt> = tasks.register("detekt${name.capitalize()}", Detekt::class.java) {
val detekt = detekt

@@ -98,14 +98,14 @@ private fun Project.setReportOutputConvention(
extension: DetektExtension,
report: DetektReport,
name: String,
format: String
format: String,
) {
report.outputLocation.convention(
layout.projectDirectory.file(
providers.provider {
File(extension.reportsDir, "$name.$format").absolutePath
}
)
},
),
)
}

Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ import org.gradle.api.artifacts.Dependency
public fun Project.doOnFirstMatchingIncomingDependencyBeforeResolution(
configurationName: String,
dependencyPredicate: Dependency.() -> Boolean,
onMatch: (Dependency) -> Unit
onMatch: (Dependency) -> Unit,
) {
configurations.named(configurationName).configure {
incoming.beforeResolve {
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ public fun Project.configureKgp(
kotlinApiVersion: KotlinVersion? = null,
isProgressiveModeEnabled: Boolean = false,
freeCompilerArgs: List<KotlinFreeCompilerArg> = emptyList(),
vararg optIns: KotlinOptIn
vararg optIns: KotlinOptIn,
): JavaVersion = configureKgp(
jvmTargetVersion = jvmTargetVersion.get(),
jdkToolchainVersion.get(),
@@ -43,7 +43,7 @@ public fun Project.configureKgp(
kotlinApiVersion,
isProgressiveModeEnabled,
freeCompilerArgs,
*optIns
*optIns,
)

public fun Project.configureKgp(
@@ -57,7 +57,7 @@ public fun Project.configureKgp(
kotlinApiVersion: KotlinVersion? = null,
isProgressiveModeEnabled: Boolean = false,
freeCompilerArgs: List<KotlinFreeCompilerArg> = emptyList(),
vararg optIns: KotlinOptIn
vararg optIns: KotlinOptIn,
): JavaVersion {
val lowestSupportedJava = JavaVersion.VERSION_17
val gradleVersion = GradleVersion.current()
@@ -159,20 +159,20 @@ public fun Project.configureKgp(
else {
if(isProgressiveModeEnabled) {
compilerOptions.freeCompilerArgs.addAll(
"-progressive"
"-progressive",
)
}
}
}
compilerOptions.freeCompilerArgs.addAll(
freeCompilerArgs.map { freeCompilerArg -> freeCompilerArg.value }
freeCompilerArgs.map { freeCompilerArg -> freeCompilerArg.value },
)
if(!isKmp) {
if(project.kotlinToolingVersion.toKotlinVersion().isAtLeast(major = 1, minor = 9)) {
compilerOptions.optIn.addAll(optIns.map(KotlinOptIn::value))
} else {
compilerOptions.freeCompilerArgs.addAll(
optIns.map { optIn -> "-opt-in=${optIn.value}" }
optIns.map { optIn -> "-opt-in=${optIn.value}" },
)
}
}
Original file line number Diff line number Diff line change
@@ -17,12 +17,12 @@ import java.util.Locale

public class AssembleXCFrameworkTaskHolder(
public val debug: TaskProvider<XCFrameworkTask>,
public val release: TaskProvider<XCFrameworkTask>
public val release: TaskProvider<XCFrameworkTask>,
)

public fun Project.registerAssembleXCFrameworkTasksFromFrameworks(
frameworkName: String,
targetPredicate: (KotlinNativeTarget) -> Boolean = { true }
targetPredicate: (KotlinNativeTarget) -> Boolean = { true },
): AssembleXCFrameworkTaskHolder {
plugins.withId("org.jetbrains.kotlin.multiplatform") {
val xcFrameworkConfig = XCFramework(frameworkName)
@@ -40,14 +40,14 @@ public fun Project.registerAssembleXCFrameworkTasksFromFrameworks(

return AssembleXCFrameworkTaskHolder(
debug = findXCFrameworkAssembleTask(frameworkName, NativeBuildType.DEBUG),
release = findXCFrameworkAssembleTask(frameworkName, NativeBuildType.RELEASE)
release = findXCFrameworkAssembleTask(frameworkName, NativeBuildType.RELEASE),
)
}

public fun Project.registerZipXCFrameworkTask(
frameworkName: String,
assembleXCFrameworkReleaseTask: TaskProvider<XCFrameworkTask>,
outputDirectory: Provider<Directory>
outputDirectory: Provider<Directory>,
): TaskProvider<Zip> =
tasks.register("zip${frameworkName}ReleaseXCFramework", Zip::class.java) {
group = "spm"
@@ -65,7 +65,7 @@ public fun Project.registerZipXCFrameworkTask(

private fun Project.findXCFrameworkAssembleTask(
frameworkName: String,
buildType: NativeBuildType
buildType: NativeBuildType,
): TaskProvider<XCFrameworkTask> {
@Suppress("Deprecation")
val buildTypeString = buildType.name.toLowerCase(Locale.US).capitalize()
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ internal fun Project.findSpmChecksum(zipFile: File): String {
"swift",
"package",
"compute-checksum",
zipFile.path
zipFile.path,
)
.start()
.let { process ->
@@ -29,7 +29,7 @@ internal fun Project.findSpmChecksum(zipFile: File): String {
throw GradleException(
error.ifBlank {
"Running swift package compute-checksum ${zipFile.path} failed with code ${process.exitValue()}"
}
},
)
}
else {
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ public fun Project.registerPublishSpmToMavenTasks(
frameworkName: String,
artifactVersion: String,
zipOutputDirectory: Provider<Directory> = layout.buildDirectory.dir("outputs/spm/release"),
targetPredicate: (KotlinNativeTarget) -> Boolean = { true }
targetPredicate: (KotlinNativeTarget) -> Boolean = { true },
) {
registerPublishSpm(
frameworkName = frameworkName,
@@ -27,7 +27,7 @@ public fun Project.registerPublishSpmToMavenTasks(
val publishTask = createXCFrameworkMavenPublication(
frameworkName = frameworkName,
artifactVersion = artifactVersion,
zipTask = zipTask
zipTask = zipTask,
)

val artifactName =
@@ -39,18 +39,18 @@ public fun Project.registerPublishSpmToMavenTasks(
publishedUrl.set(
publishTask.map { t ->
"${t.repository.url}/${rootProject.name}/$artifactName/$artifactVersion/$artifactName-$artifactVersion.zip"
}
},
)
}
},
targetPredicate = targetPredicate
targetPredicate = targetPredicate,
)
}

internal fun Project.createXCFrameworkMavenPublication(
frameworkName: String,
artifactVersion: String,
zipTask: TaskProvider<Zip>
zipTask: TaskProvider<Zip>,
): TaskProvider<PublishToMavenRepository> {
val publicationName = "${frameworkName.capitalize()}ReleaseXCFramework"
val artifactName = "${CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, frameworkName)}-${project.name}"
@@ -68,7 +68,7 @@ internal fun Project.createXCFrameworkMavenPublication(
runCatching {
tasks.named(
"publish${publicationName}PublicationTo${repo.name.capitalize()}Repository",
PublishToMavenRepository::class.java
PublishToMavenRepository::class.java,
)
}.getOrNull()
}
Loading