diff --git a/build.gradle.kts b/build.gradle.kts index 6335f51..61dc866 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,6 @@ dependencies { implementation(libs.dokka.gradle) implementation(libs.kotlin.jupyter.gradle) implementation(libs.kotlin.serialization) - @Suppress("UnstableApiUsage") implementation(libs.kotlinx.html) implementation("org.tomlj:tomlj:1.0.0") // // nexus publishing plugin @@ -60,7 +59,7 @@ gradlePlugin { create("project") { id = "ru.mipt.npm.gradle.project" - description = "The root plugin for multimodule project infrastructure" + description = "The root plugin for multi-module project infrastructure" implementationClass = "ru.mipt.npm.gradle.KScienceProjectPlugin" } @@ -215,6 +214,10 @@ afterEvaluate { } } +tasks.withType { + kotlinOptions.jvmTarget = "11" +} + tasks.processResources.configure { duplicatesStrategy = DuplicatesStrategy.INCLUDE from("gradle/libs.versions.toml") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8bbc29f..d528810 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] tools = "0.11.1-kotlin-1.6.10" kotlin = "1.6.10" -atomicfu = "0.17.0" +atomicfu = "0.17.1" binary-compatibility-validator = "0.8.0" changelog = "1.3.1" dokka = "1.6.10" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e589..41dfb87 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-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 4de58c3..c4a5192 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1 @@ rootProject.name = "gradle-tools" - -enableFeaturePreview("VERSION_CATALOGS") diff --git a/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt b/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt index 4829147..abd369a 100644 --- a/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt +++ b/src/main/kotlin/ru/mipt/npm/gradle/KScienceProjectPlugin.kt @@ -53,18 +53,22 @@ public class KSciencePublishingExtension(public val project: Project) { } } - @Suppress("UNUSED_VARIABLE") - private val release by project.tasks.creating { - group = KScienceProjectPlugin.RELEASE_GROUP - description = "Publish development or production release based on version suffix" - } + private val releaseTasks = mutableSetOf() private fun linkPublicationsToReleaseTask(name: String) = project.afterEvaluate { allTasks() - .filter { it.name == "publish${publicationTarget}To${name.capitalize()}Repository" } + .filter { it.name.startsWith("publish") && it.name.endsWith("To${name.capitalize()}Repository") } .forEach { - logger.info("Linking $it to release") - release.dependsOn(it) + val theName = "release${it.name.removePrefix("publish").removeSuffix("")}" + logger.info("Making $theName task depend on ${it.name}") + + val releaseTask = project.tasks.findByName(theName) ?: project.tasks.create(theName) { + group = KScienceProjectPlugin.RELEASE_GROUP + description = "Publish development or production release based on version suffix" + } + + releaseTasks += releaseTask + releaseTask.dependsOn(it) } } @@ -73,7 +77,6 @@ public class KSciencePublishingExtension(public val project: Project) { * * @param githubProject the GitHub project. * @param githubOrg the GitHub user or organization. - * @param publish add publish task for github. * @param addToRelease publish packages in the `release` task to the GitHub repository. */ public fun github( diff --git a/src/main/kotlin/ru/mipt/npm/gradle/internal/publishing.kt b/src/main/kotlin/ru/mipt/npm/gradle/internal/publishing.kt index 7699950..9f5aefa 100644 --- a/src/main/kotlin/ru/mipt/npm/gradle/internal/publishing.kt +++ b/src/main/kotlin/ru/mipt/npm/gradle/internal/publishing.kt @@ -107,16 +107,6 @@ internal fun Project.setupPublication(mavenPomConfiguration: MavenPom.() -> Unit internal fun Project.isSnapshot() = "dev" in version.toString() || version.toString().endsWith("SNAPSHOT") -internal val Project.publicationTarget: String - get() { - val publicationPlatform = project.findProperty("publishing.platform") as? String - return if (publicationPlatform == null) { - "AllPublications" - } else { - publicationPlatform.capitalize() + "Publication" - } - } - internal fun Project.addGithubPublishing( githubOrg: String, githubProject: String,