diff --git a/.editorconfig b/.editorconfig index 16b3c025..95669f0d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,4 +10,14 @@ insert_final_newline = true ij_kotlin_imports_layout=* ij_kotlin_allow_trailing_comma = true -ij_kotlin_allow_trailing_comma_on_call_site = true \ No newline at end of file +ij_kotlin_allow_trailing_comma_on_call_site = true + +# makes constructor annotations indent the whole class +ktlint_standard_annotation = disabled +# too aggressive in wrapping and indenting the expression in an assignment +ktlint_standard_multiline-expression-wrapping = disabled +# depends on the previous one +ktlint_standard_string-template-indent = disabled +# make ktlint less eager to wrap function signatures and expression bodies +ktlint_function_signature_rule_force_multiline_when_parameter_count_greater_or_equal_than = 4 +ktlint_function_signature_body_expression_wrapping=default \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index dab19e1b..835fb60f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ truth = "1.1.5" okhttp = "com.squareup.okhttp3:okhttp:4.12.0" dokka = "org.jetbrains.dokka:dokka-gradle-plugin:1.9.10" android-plugin = "com.android.tools.build:gradle:8.2.0" -ktlint-plugin = "org.jlleitschuh.gradle:ktlint-gradle:11.6.1" +ktlint-plugin = "org.jlleitschuh.gradle:ktlint-gradle:12.0.3" maven-publish-plugin = "com.vanniktech:gradle-maven-publish-plugin:0.25.3" buildconfig-plugin = "com.github.gmazzo:gradle-buildconfig-plugin:3.1.0" diff --git a/nexus/src/main/kotlin/com/vanniktech/maven/publish/nexus/NexusService.kt b/nexus/src/main/kotlin/com/vanniktech/maven/publish/nexus/NexusService.kt index 434039bf..43e22737 100644 --- a/nexus/src/main/kotlin/com/vanniktech/maven/publish/nexus/NexusService.kt +++ b/nexus/src/main/kotlin/com/vanniktech/maven/publish/nexus/NexusService.kt @@ -11,7 +11,6 @@ import retrofit2.http.Path * -Nexus CORE API: https://repository.sonatype.org/nexus-restlet1x-plugin/default/docs/index.html */ internal interface NexusService { - @GET("staging/profiles") fun getStagingProfiles(): Call @@ -25,17 +24,27 @@ internal interface NexusService { fun getProfileRepositories(): Call @GET("staging/repository/{repositoryId}") - fun getRepository(@Path("repositoryId") repositoryId: String): Call + fun getRepository( + @Path("repositoryId") repositoryId: String, + ): Call @GET("staging/repository/{repositoryId}/activity") - fun getRepositoryActivity(@Path("repositoryId") repositoryId: String): Call> + fun getRepositoryActivity( + @Path("repositoryId") repositoryId: String, + ): Call> @POST("staging/bulk/close") - fun closeRepository(@Body input: TransitionRepositoryInput): Call + fun closeRepository( + @Body input: TransitionRepositoryInput, + ): Call @POST("staging/bulk/promote") - fun releaseRepository(@Body input: TransitionRepositoryInput): Call + fun releaseRepository( + @Body input: TransitionRepositoryInput, + ): Call @POST("staging/bulk/drop") - fun dropRepository(@Body input: TransitionRepositoryInput): Call + fun dropRepository( + @Body input: TransitionRepositoryInput, + ): Call } diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 0c51d9bf..641b23e0 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -10,13 +10,15 @@ gradlePlugin { id = "com.vanniktech.maven.publish" implementationClass = "com.vanniktech.maven.publish.MavenPublishPlugin" displayName = "Gradle Maven Publish Plugin" - description = "Gradle plugin that configures publish tasks to automatically upload all of your Java, Kotlin, Gradle, or Android libraries to any Maven instance." + description = "Gradle plugin that configures publish tasks to automatically upload all of your Java, Kotlin, " + + "Gradle, or Android libraries to any Maven instance." } create("mavenPublishBasePlugin") { id = "com.vanniktech.maven.publish.base" implementationClass = "com.vanniktech.maven.publish.MavenPublishBasePlugin" displayName = "Gradle Maven Publish Base Plugin" - description = "Gradle plugin that configures publish tasks to automatically upload all of your Java, Kotlin, Gradle, or Android libraries to any Maven instance." + description = "Gradle plugin that configures publish tasks to automatically upload all of your Java, Kotlin, " + + "Gradle, or Android libraries to any Maven instance." } } } diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginPlatformTest.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginPlatformTest.kt index d7edc8e8..aefe3fd0 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginPlatformTest.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginPlatformTest.kt @@ -131,7 +131,9 @@ class MavenPublishPluginPlatformTest { } @TestParameterInjectorTest - fun javaGradlePluginWithPluginPublishProject(@TestParameter gradlePluginPublish: GradlePluginPublish) { + fun javaGradlePluginWithPluginPublishProject( + @TestParameter gradlePluginPublish: GradlePluginPublish, + ) { val project = javaGradlePluginWithGradlePluginPublish(gradlePluginPublish) val result = project.run(fixtures, testProjectDir, testOptions) diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Pom.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Pom.kt index 8ff21641..8062e5ed 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Pom.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Pom.kt @@ -15,15 +15,23 @@ data class PomDependency( val optional: Boolean? = null, ) -fun kotlinStdlibCommon(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", version.commonStdlibArtifactId, version.value, "compile") +fun kotlinStdlibCommon(version: KotlinVersion) = PomDependency( + "org.jetbrains.kotlin", + version.commonStdlibArtifactId, + version.value, + "compile", +) + private val KotlinVersion.commonStdlibArtifactId get() = if (this < KotlinVersion.KT_1_9_20) "kotlin-stdlib-common" else "kotlin-stdlib" fun kotlinStdlibJdk(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", version.jdkStdlibArtifactId, version.value, "compile") + private val KotlinVersion.jdkStdlibArtifactId get() = if (this < KotlinVersion.KT_1_9_20) "kotlin-stdlib-jdk8" else "kotlin-stdlib" fun kotlinStdlibJs(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", version.jsStdlibArtifactId, version.value, "compile") + private val KotlinVersion.jsStdlibArtifactId get() = if (this < KotlinVersion.KT_1_9_20) "kotlin-stdlib-js" else "kotlin-stdlib" diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt index 315bec80..6a38c250 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt @@ -139,7 +139,9 @@ private fun ProjectSpec.publishingBlock(options: TestOptions): String { distribution = "${properties["POM_LICENCE_DIST"]}" } } - """.trimIndent().takeIf { properties.containsKey("POM_LICENCE_NAME") }, + """.trimIndent().takeIf { + properties.containsKey("POM_LICENCE_NAME") + }, """ developers { developer { @@ -148,14 +150,18 @@ private fun ProjectSpec.publishingBlock(options: TestOptions): String { url = "${properties["POM_DEVELOPER_URL"]}" } } - """.trimIndent().takeIf { properties.containsKey("POM_DEVELOPER_ID") }, + """.trimIndent().takeIf { + properties.containsKey("POM_DEVELOPER_ID") + }, """ scm { url = "${properties["POM_SCM_URL"]}" connection = "${properties["POM_SCM_CONNECTION"]}" developerConnection = "${properties["POM_SCM_DEV_CONNECTION"]}" } - """.trimIndent().takeIf { properties.containsKey("POM_SCM_URL") }, + """.trimIndent().takeIf { + properties.containsKey("POM_SCM_URL") + }, """ } } @@ -233,7 +239,81 @@ private fun ProjectSpec.writeGradleProperties(path: Path, options: TestOptions) appendLine("signing.secretKeyRingFile=test-secring.gpg") } TestOptions.Signing.IN_MEMORY_KEY -> { - appendLine("signingInMemoryKey=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") + appendLine( + "signingInMemoryKey=lQdGBF4jUfwBEACblZV4uBViHcYLOb2280tEpr64iB9b6YRkWil3EODiiLd9JS3V7+BWpZ" + + "VF8mbGy8AUR7T3GUsYmEvhHGw2s0IosOUVIu5W3eiU/K4CFMEsmV5JZLRSoHa+VJ3XOJA0ZQfBxwaLyq1vicgtOVVA1AJKctQZ3gfm" + + "w8u45NHBvtUOgAZQrDytKN1B/bcpxPqLOBi1RQuYOyjtLTGJoU+Jbf27H9EhXEJ80hWzd2c3khtZO3HkCbgHKIvEDi5qkb25zKluQb" + + "mMmhGpDyyR8XzIiVjPfSRG/+VXpWQlo9NjcaUWtaVyXYqN29z87BOdtD734b56kzHMhr1taDM89lkTKrgtuJBjZkA/wnDUG3+NZ1ly" + + "7Wc4z1sw7eovwrfBhDFpyWoASyoui8/78dZHflm3v9Xe+01d1mFeZzs9+UtlK9xUaGzpNBq6FYOKB8HaxgKKSNcFMio6XM9Wfmxc0b" + + "oFE0fy6F9zIo9AQRB469ZPYO0NGxyBuAyihnd5NzAAHn5rFpYVNS0FKcQrZn939NE7y0in5dRdEfgRBsYeyoYhOf5XczNjHOma+ToM" + + "yvIPHMcaCcrGOeFBmsuY3EXa5MRA3cxudKK90dvXmv8bK+ZhFDRYq3S31ZtXAtwSjDTxj27XV8iqXI2Ne6We0oOROv1KY9v4CXg9Xb" + + "PYYz6LHzLnj8lq/QARAQAB/gcDAnWMv+BoFys37xO+klZLzr9+JaJjXHP32h0lLii4TjKQerOUhAIaHLwv4AUpm+OFAEfozcNUX92w" + + "XkXm4QXNAKb+BQTDNGnd+iX/M1YVzBnp791XZo6k5gam/AzqznlrPgLHpx3kqSVR76Dj/KD3xxjy7iuklKywt1+lf5b2fFNhSGMyFq" + + "veCvmTg6jJGQ1DYEzZVYrG6VrWvHERIOUCSf8GlIEpk627rJoWC07ZRuOv0oHCJg+8D1D3Lc1vl3Wx49aLmWOOeHVaZPsk49I3OEAa" + + "b/lVsP8q8bn6rjLzYpUx2TyFYmedTdEzx9SVG7VfozsHvV/n1BLiSphv3hD8cYmYRaiKvE65PHxiqa3rCsaZMgLhvmNXw81W8NN63A" + + "7wjqHk5u3CBU7FeymL5V5HsoePPv+jKWJtILSnt/NiLoLS8Wq5nBzL/J0hNo/HrMbK6TRjdMkfg0sIAB7+Y2A+cyOy9OMObgqFHSy5" + + "LbPXtkoO8axC/35DwfMiiTmCXFBnCAbiGniI+QWV+R9OR+sq0YrxUVL/4iIwq6FOZ4B7zjSMP9Q5n09S013TFrdg6yUw5wmDMzW9wa" + + "dLxDJ/QB3G8rAwNvsWfPdn2EvaeV2blyPZwd+wmNvz+hQ7aUu5AUjlTA0ccsVYUCfIlL9aSOXOS42Go/xoTnU/ea9fo8IisbPSw2ju" + + "ebVcxExcetR84Mbc28qsfJ7I8vgtOEm87Zv+U2zPOZxje/QwRdoXxS/sLpfJ9GXRN/x9iLc2UJMXY92B/yD09sjgHhthkK/3Z0Tn92" + + "Lh56z3VmyxwRf4ZpSepogwZ9hnbP7h63Nm9yUxPek5N9zxp+o8DNw7t8gz5UAqSJthpxVpUE6a8VzzBTTy6yx3qUKHOuPWZEpoJvgw" + + "YybY/vzgsJUeBqRhWtHNEfArYQmbSXmaUgJPZ7dlxEx1bNz4pavI+AgsMUdcvtrNcnxdXcW+aEKwYW/CGJZJP4Vdue+FZACa5eoP1D" + + "pdtH7sU9Y2W78VcUef1/SNIHuS/HbIZpnHLK4XXIM3cyQxmmmmbazFDQwcKo4ckPXhB3PWAc/iocgmX+JXeSzSf91CWM/JcyWrh1qy" + + "zGdMw0+DrgWXFEJpI5U0VycycFdKwdHF0mF9FjaqpXmUlHJiJAk/TdaX3TJmhTfsW9QUbTbHk4Vrn/btyP6tZzxOZp0NIhJZVWKxgk" + + "A6XhHuvp9KUSZU6qjyTr7+CmQ1PH0FAm463Dw9LmGi8AQSUomItjR9zy77svGHtcXGKSSFm7FRTEOfEN500czgCVYKTpnEzDWLur+M" + + "c7H/A5ycgP/7GPthgHqOmW5m2Ozibo8HBtVkbXUARbIrdVyF/Haqy6+k3beiUTP/JKdb7x35AX6d3cS8WhPumQIleAT+as9Pmc1po8" + + "dkKOXtQeio21jdBU5R8xiw/PrM6tcBo829alWpDiTBUgFy8oHJNIYqjz9f01OorObz9MkVDdsPbR8KjdAcqAm/JR9IRkZnr9q7lUgi" + + "tYzrj3yvOZwIMxmBdhEyYO35xgQsdx0f/uIfskWwRKu4YK3aCTA1/sORPzL+qdqarxJVgx2ukVBYf599tA4ybmu58b5KtshEb9yPTl" + + "xhLiUyWG25asyaE8Po8AfXhhDAiljrqSgZZ6Kcs2jjx4DFqS3wHJQoETH9wtlpFvyWs+85hWcO7YCjYGT6wCbO9sa77Gz1QLg5BqOj" + + "nkdoOgCnrOip8g9Noj5FX5aK6VTk5eX3CjQ+CLtReyx4gcaL+oEA8Sj83RFzv/4rSZCs8MW0JnZhbm5pa3RlY2gvZ3JhZGxlLW1hdm" + + "VuLXB1Ymxpc2gtcGx1Z2luiQJUBBMBCgA+AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEE93Y2HTpkSt27r5YoNnBrHbicQFUF" + + "AmBN9W8FCQuQpPMACgkQNnBrHbicQFXoVA/+PVxJfyyC58RT3y6oIiuThYk3vNnCD0OMb4SzsxHgTyhOyvCS3UJSUsxFkSasPyCARG" + + "4gANeTcvmVwK66xUn9piYVaitjBMaD6VZWXORGs3/9MGdOF7YVvLuhxq6dR3tsS97j3AvM5D5+6HF4MEJePVAe6AcH8xDFWQMsU1Kn" + + "tysJ6xjG8kARGzY5ipD7bp2hQ1ZbNhkXKTqrJ0ZJoPfv3EK/Gfa79ZqtKbxXlTHf8k2fDVXEEPyYJGOtTR1B2V/xhAtGmPhDTJgzES" + + "gEtEplPjwZ+KydVBZq5dP9DBIzHmgUDDM2MmILyFXnbZsiVUpiFTNM+nKqhlpxbWahNPuqyrRq5zPoxO3jHPFY/pcgZxlHE/y3S5li" + + "MoTdxlbJoH2iDHp8WUXXvyONnP5R0TTuHOkUi0uj+gqjRwRjR+pFtVSIV7HQN+mu6m1jFuDo2eR9bTROxVSH30XE3IOlfxTeqMuUo6" + + "PFc/50X6L7xTODnQ1MEoDDmtIckHEa4oQlRHCN7pfVNcCg4LC40MIw9PGE6VRLpfWKkI8OdTq7byJhyA4qFEVshy6lyoLnstQbQIv0" + + "xfJmBaP9NWsrdZ2xYBVuvUumswHfSLUEqadKznzx0u19tljGyCyYdueDtU5oXs9f9WwkQzi8oAcjZfGWlkvOPhcriPC0mrMP8ZqeKB" + + "BMhamJAlQEEwEKAD4WIQT3djYdOmRK3buvlig2cGsduJxAVQUCXiNR/AIbAwUJlmQMgAULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAK" + + "CRA2cGsduJxAVaUYD/0S/SdLsEr0h3jgRvl8O8KC/ncGSlvkW6d02tQZz5LrRC/yefBEAmmxugi3oCU168aGq/L/J0aXh7XunizT3o" + + "KaktFUsYNRH4InZ3R7yP1+MgPi3PsK/6cM1q/Rw5nIu5lsq/v05LzF5yhXSPvdrK+TqXsjaBvpDvHdwRqVpxkcT7jpS2ZOc4zEXyf6" + + "ibnzoePf9DfrKRJ4ZHp844pJwuOmxpNl6Gd7zkWeI5b7vvLI+hGw1IIb9l5oOF60/g1RrGrIcBHrzcW+fXfeil44JMIh3k4UnmqGSe" + + "zAANoGIJkrhmpioRR1M/CuiL7ON8xg6JHC3M7CZjnP7rntiJI8Em6pP5bSxGOIQ/ZgcI54UY4tu2m7T5DpszQAQKht18UswzgVpItk" + + "rLHTmTNzRbWac27PmJPCc8Uhn2XIbSH5/TjGkNTEJblbQtAa5Hz+1bI+eUH5wNwkkHuaViqWq6IIE/gZ23WhU6JlUllNez83MXaImH" + + "xLTMdLL5UG1OPL7M3ze+H8rWVg+rB4+MujeCbYXgnyfsjYMErqnrnpxyChaCnQjyvh8JYoYr56prE62pnSU7e5MRtPGNTOaGCdY231" + + "Q/AqqdcjJdfpt0KqEv4bkkJe/SVgQgoXY3JCPB35MUBsu7h8uRIfb+Lj7WfjwS0/h1v3tekJCYz0dDSQoCPTCOrgy50HRgReI1H8AR" + + "AA3A5OqE/B5s0LZZzNFfcuaLW2mgD6sFOibu2oVvas7u1jllmgK1xL8Iz0vsO9gQa10B0IK8Lgm5RnkW3WqbBFP+Cn/ZLhWjJ6sZIu" + + "ko6oT5A/wvOozK8w52Er9MNC7VEvc+gbBxS1pyVNd+4J+OLQkBDkkCTivivruChCsaKM+XCzpf9Mh+5u+ZN26rHXCzeGOCIAxhIXKH" + + "GPPNXZ7CId7McttDsBKYMBxCj+q9gkd4eazdbkbNWYHm9pkAFMwyTQqNpPo9xrY7MhZMjhGaXB88vkT0fnwFObaAQvuklIen1K9ojr" + + "TG5xDDz0iJP0QqjJplOyJsPi/aPo0hmEsB7lPwMpv9nq/b9NBlixzdSpn6s0YW3ufdHaH3JnYoGX6dzKNEPE013jf8ZzEIqanSPieK" + + "bqSG4HnxEhfQgl13D0JFEqv1EmPbi6APMM+Pj9cI/mFxJOG8TBzWf55mIPxk/s9IOSgsEvhbJclRbkDFKRS9xNkY7lweGqbZd8hGOI" + + "t4Yo1T2Bz/PZLmz5jReh10kFwhbSJai2LpQEH7BhpomDIXC4YYxBR/YnFy6HwXIaeB+uw7NnSuV3E7R/a0gY1UpLJJKlIY3PYv0G13" + + "AfK6mnRjOOWQYo5Y+wOJr/J8eJer4Vma9NOb0krVjKimwudev7cIYa0A/5q1UdEd0R/an27nUAEQEAAf4HAwIJRkyXMxklr+9Tbu4s" + + "wUl88SERNwrbAFYorvDuG4n0B3jhicAuN5rOoHFLZ87Y0hcZFeR1Yr0SSgfBeEA0wWQQXKrmQmjJADhzJRPfPndMWlpqikWQONqYY3" + + "TDquxOQWrcF4H/2ylySNUitYOEWNQiHKD5f8MJFzTAJRphQzS24a3dsk+Y/2KIjUyNgf8vmLLx5BdXoOcehR6874fmFnKNPuuFKoU+" + + "3aY471LYNpQm7Upmnkk7IPv7OTqIF9irCJwK1j81J8pOi1NkDGEKirX40+BffurSu3nSjwTyvG/5l1jaLPG6w8nMVPShxPBIcD4kZ8" + + "23tUwjndPHjJGW5RgTmuLSgAP+lX0GY2f5DIhEcT363ZsuaIoonHQ3pRtQlspz9x3whl8MieanUlrLIuvLvPHB/bJRGr5quelWqL1P" + + "a1iG3ymQpSw2HaN1HBk2koD3egCN6LBaQMi8g3Nl5pZvGe4Fus9Aps8GXb0Mmv/J65CHFpYrmodgUe3HxNCxkPUXgDlywi3t9UUnX4" + + "CbXhHAxsnqLCF5rJqeThfLOFbqrkYu4/PcMrVU6vz+obnVmXuRUHBPM4nMoBzeyOBXeuyq8BmhbkiDCbHs77Gv04EefGl72lkROIJI" + + "NeaWTc3T4YrQCRMpS3CBZIcrj9bJsRRkZXsm4FjL4Z+7HP7ItCf++cZY53aeY7XXzrlBBaAT9vdEhyjRk4uaRjtz9zJp2Vn/wJiZ9O" + + "d/yPEw61nhKwQTuoEE1xQIHHTqAyO8C0mVucRg+tqSQwijFTZcXu7EZn8Xqs+bnqLFdcBzh5NJyBicepe0IF4Q5wrSUOy8ZDAUvPRl" + + "sYFPLuJn4nTKmEKOYxcjVh4riI+u0arAzINJBqyERPtrgqhJm++iPSvu5cP54873QH2Lnqx0PqefomXhB7XAVLL4FC+rX9L7Ozwu6V" + + "XaOu+TAXr0phSXagSvwgD6ZVXOgtGSHXgNjD/w447Ptn8cEA0GbZUFr2UAI+CN4K05ifqUspnEgDlx0jeJ7K4Snq+K9rOxRgOnWgGZ" + + "OZEhW4y2had31ULbaThnIpxAxBANu/1XemLvH8rVWkdolT9iU2ST9H5c/1z+PN3BMqCmmE0blDNLE3TrZplw4VA9PIoTocvv7IhGcU" + + "dqIYN2MysP8dFUA3tG0I9XmKO1hIT2RYXJ7h5ffBr4lwxdBKcU27T6SJoPtfDs3QCoeB9IM8QotQgZc0kUpAhSvFPhIu7MbpWmxwU5" + + "CsZNYQOYkTOa6H1mWhmephgzzNbdjaFgLmoX4Q/VCsobMGVA9wN6Wi7oMKSVtFwUPhnYLVfbykkIy/AxldYcTmi2wD0BFKwxuQkmVg" + + "r76PX6WeucU9o9PTiHAQaI90ahlaOlWdjJrrd74b9vyn1eGC2FVz1J+UsXjEvj8koTLXEKXNQKfbI2H5a9+kxrpdaKvoLRlP+DJkVb" + + "SeerRxhROXBQxyZ6hkTyVKSFrJtbbmWLBC5vIBzTlhq91wU3BrbsCKrd++GJrS19ePoD0vvhim+9hPlHc1Ah75AfxJ7uCgcXxt+WNN" + + "s2ZYnDfgDfpzNXVztmsR7iph1N9NI2nPWv6+kmHOXj6nt5kL7CedX5qTEusmPC54LVgvpKwW4hOtGvXiVzEYqVX/Jw+Ha81DhAEMWr" + + "3GMK0ZkIrAXI6rbKGh/KlrJC6FfNqf/Zq5Z6FGPSE8WLH8o5ji77lCl2ppD2vacvd0WQ4dlQc+HdgFA/9jRO9JtxxrmNx8cmedrffa" + + "JPv06iRpmVmmsrUE3DcqqROVVciQI8BBgBCgAmFiEE93Y2HTpkSt27r5YoNnBrHbicQFUFAl4jUfwCGwwFCZZkDIAACgkQNnBrHbic" + + "QFX0+g/8DzgLu0lJf+oljb9i6kx1wIxLR0Juhj+zyZtoKyEmzxshQENbz5z4hlDSqmhozs7Ds9Tq2ABfYA6nDO3mvizNPtadKH8kbn" + + "bXhMmemuxbIAD7UfvmhNRaXKiNyl6KZvSHVs/AQGcWdqjNnwphTiLmnrAhX+aGM2nxPu9AgWEE2AgddrOHLWX/vadC6+yR8GrMdAgP" + + "TfsCWOLipsZ0kBjxgHrcqABubvNQfibgzJb9vJh7V/4zvcCZz3yQ+zZ+XtqoFfNR9LfloeKsMux5ZaSHPi4iZfCs7tJioV7mzUDWe6" + + "IM2XlgK/XgoyxIPdikiWam5aDNLb2+E+sU3o52EdTL/yBg7tdaWBf42GoGC8di/rSmpul89VHtejoDAzJlUtw9NE7wmMRhxJPriW32" + + "PbIvcMlsk0JFlQpPBKK1Kkxttni68IWxuLKrsthXEqSerqV86L7fdtEtXONnjKxRPgT6omSbgDsBZjn8Om8h8fC5ZmZNDp6Cfchdp1" + + "oKANA7vimtuplILcGmqQ7bfvUmf2v+PbE4xcBxGO5UM4Il2s30KxZh5v89frKX7i8bXuQUOIGQI+X7zyVxtLmIdzWZe5Z4+Vb5D/q0" + + "3nk7LqZfwn90YtUFgFApuYKEa5GVl3BYmAeH47ms3loMAR1r9pip+B1QLwEdLCEJA+3IIiw4qM5hnMw=", + ) appendLine("signingInMemoryKeyId=B89C4055") appendLine("signingInMemoryKeyPassword=test") } diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecs.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecs.kt index 4fea3915..0034aeb4 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecs.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecs.kt @@ -24,15 +24,12 @@ val defaultProperties = mapOf( "POM_DESCRIPTION" to "Testing the Gradle Maven Publish Plugin", "POM_INCEPTION_YEAR" to "2018", "POM_URL" to "https://github.com/vanniktech/gradle-maven-publish-plugin/", - "POM_SCM_URL" to "https://github.com/vanniktech/gradle-maven-publish-plugin/", "POM_SCM_CONNECTION" to "scm:git:git://github.com/vanniktech/gradle-maven-publish-plugin.git", "POM_SCM_DEV_CONNECTION" to "scm:git:ssh://git@github.com/vanniktech/gradle-maven-publish-plugin.git", - "POM_LICENCE_NAME" to "The Apache Software License, Version 2.0", "POM_LICENCE_URL" to "https://www.apache.org/licenses/LICENSE-2.0.txt", "POM_LICENCE_DIST" to "repo", - "POM_DEVELOPER_ID" to "vanniktech", "POM_DEVELOPER_NAME" to "Niklas Baudy", "POM_DEVELOPER_URL" to "https://github.com/vanniktech/", diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Subjects.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Subjects.kt index f66a6432..e36f5216 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Subjects.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Subjects.kt @@ -29,7 +29,6 @@ class ProjectResultSubject private constructor( failureMetadata: FailureMetadata, private val result: ProjectResult, ) : Subject(failureMetadata, result) { - companion object { private val BUILD_RESULT_SUBJECT_FACTORY: Factory = Factory { metadata, actual -> ProjectResultSubject(metadata, actual!!) } @@ -87,10 +86,7 @@ class ProjectResultSubject private constructor( .that(artifactPath("", "module") to result) } - private fun artifactPath( - suffix: String, - extension: String, - ): Path = with(result.projectSpec) { + private fun artifactPath(suffix: String, extension: String): Path = with(result.projectSpec) { return result.repo .resolve(group!!.replace(".", "/")) .resolve(artifactId!!) @@ -104,7 +100,6 @@ open class ArtifactSubject internal constructor( private val artifact: Path, private val result: ProjectResult, ) : Subject(failureMetadata, artifact) { - companion object { private val BUILD_RESULT_SUBJECT_FACTORY: Factory> = Factory { metadata, actual -> ArtifactSubject(metadata, actual!!.first, actual.second) } @@ -206,7 +201,6 @@ class SourcesJarSubject private constructor( artifact: Path, private val result: ProjectResult, ) : ArtifactSubject(failureMetadata, artifact, result) { - companion object { private val BUILD_RESULT_SUBJECT_FACTORY: Factory> = Factory { metadata, actual -> SourcesJarSubject(metadata, actual!!.first, actual.second) } @@ -241,7 +235,6 @@ class PomSubject private constructor( private val artifact: Path, private val result: ProjectResult, ) : ArtifactSubject(failureMetadata, artifact, result) { - companion object { private val BUILD_RESULT_SUBJECT_FACTORY: Factory> = Factory { metadata, actual -> PomSubject(metadata, actual!!.first, actual.second) } diff --git a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt index 1bf39cee..4a482e71 100644 --- a/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt +++ b/plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt @@ -13,6 +13,7 @@ data class TestOptions( PROPERTIES, BASE, } + enum class Signing { NO_SIGNING, GPG_KEY, diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt index 956fbc72..0b3521b8 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBaseExtension.kt @@ -25,7 +25,6 @@ import org.jetbrains.dokka.gradle.DokkaTask abstract class MavenPublishBaseExtension( private val project: Project, ) { - private val sonatypeHost: Property = project.objects.property(SonatypeHost::class.java) private val signing: Property = project.objects.property(Boolean::class.java) internal val groupId: Property = project.objects.property(String::class.java) @@ -118,7 +117,6 @@ abstract class MavenPublishBaseExtension( * More information about signing as well as different ways to provide credentials * can be found in the [Gradle documentation](https://docs.gradle.org/current/userguide/signing_plugin.html) */ - // TODO update in memory set up once https://github.com/gradle/gradle/issues/16056 is implemented fun signAllPublications() { signing.set(true) signing.finalizeValue() @@ -126,6 +124,7 @@ abstract class MavenPublishBaseExtension( project.plugins.apply(SigningPlugin::class.java) project.gradleSigning.setRequired(version.map { !it.endsWith("-SNAPSHOT") }) + // TODO update in memory set up once https://github.com/gradle/gradle/issues/16056 is implemented val inMemoryKey = project.findOptionalProperty("signingInMemoryKey") if (inMemoryKey != null) { val inMemoryKeyId = project.findOptionalProperty("signingInMemoryKeyId") diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBasePlugin.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBasePlugin.kt index dd403924..234d3342 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBasePlugin.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBasePlugin.kt @@ -6,7 +6,6 @@ import org.gradle.api.publish.maven.plugins.MavenPublishPlugin as GradleMavenPub import org.gradle.util.GradleVersion open class MavenPublishBasePlugin : Plugin { - override fun apply(project: Project) { project.plugins.apply(GradleMavenPublishPlugin::class.java) diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt index 279ce260..4e1e1960 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishPlugin.kt @@ -4,7 +4,6 @@ import org.gradle.api.Plugin import org.gradle.api.Project open class MavenPublishPlugin : Plugin { - override fun apply(project: Project) { project.plugins.apply(MavenPublishBasePlugin::class.java) val baseExtension = project.baseExtension diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/Platform.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/Platform.kt index 97c4f779..a8668328 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/Platform.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/Platform.kt @@ -59,7 +59,6 @@ data class JavaLibrary @JvmOverloads constructor( override val javadocJar: JavadocJar, override val sourcesJar: Boolean = true, ) : Platform() { - override fun configure(project: Project) { check(project.plugins.hasPlugin("java") || project.plugins.hasPlugin("java-library")) { "Calling configure(JavaLibrary(...)) requires the java-library plugin to be applied" @@ -92,7 +91,6 @@ data class GradlePlugin @JvmOverloads constructor( override val javadocJar: JavadocJar, override val sourcesJar: Boolean = true, ) : Platform() { - override fun configure(project: Project) { check(project.plugins.hasPlugin("java-gradle-plugin")) { "Calling configure(GradlePlugin(...)) requires the java-gradle-plugin to be applied" @@ -111,7 +109,6 @@ data class GradlePlugin @JvmOverloads constructor( * To be used for `com.gradle.plugin-publish` projects. Uses the default publication that gets created by that plugin. */ class GradlePublishPlugin : Platform() { - override val javadocJar: JavadocJar = JavadocJar.Javadoc() override val sourcesJar: Boolean = true @@ -124,6 +121,7 @@ class GradlePublishPlugin : Platform() { } override fun equals(other: Any?): Boolean = other is GradlePublishPlugin + override fun hashCode(): Int = this::class.hashCode() } @@ -159,7 +157,6 @@ data class AndroidSingleVariantLibrary @JvmOverloads constructor( override val sourcesJar: Boolean = true, val publishJavadocJar: Boolean = true, ) : Platform() { - override val javadocJar: JavadocJar get() = throw UnsupportedOperationException() override fun configure(project: Project) { @@ -223,7 +220,6 @@ data class AndroidMultiVariantLibrary @JvmOverloads constructor( val includedBuildTypeValues: Set = emptySet(), val includedFlavorDimensionsAndValues: Map> = emptyMap(), ) : Platform() { - override val javadocJar: JavadocJar get() = throw UnsupportedOperationException() override fun configure(project: Project) { @@ -279,7 +275,6 @@ data class KotlinMultiplatform @JvmOverloads constructor( override val javadocJar: JavadocJar = JavadocJar.Empty(), override val sourcesJar: Boolean = true, ) : Platform() { - override fun configure(project: Project) { check(project.plugins.hasPlugin("org.jetbrains.kotlin.multiplatform")) { "Calling configure(KotlinMultiplatform(...)) requires the org.jetbrains.kotlin.multiplatform plugin to be applied" @@ -323,7 +318,6 @@ data class KotlinJvm @JvmOverloads constructor( override val javadocJar: JavadocJar = JavadocJar.Empty(), override val sourcesJar: Boolean = true, ) : Platform() { - override fun configure(project: Project) { check(project.plugins.hasPlugin("org.jetbrains.kotlin.jvm")) { "Calling configure(KotlinJvm(...)) requires the org.jetbrains.kotlin.jvm plugin to be applied" @@ -359,43 +353,42 @@ data class KotlinJvm @JvmOverloads constructor( */ @Deprecated("The Kotlin/JS plugin has been deprecated in Kotlin 1.9.0") data class KotlinJs -@Deprecated( - "Disabling sources publishing for Kotlin/JS is not supported since Kotlin 1.8.20. " + - "Use the single or no-arg constructors instead.", -) -constructor( - override val javadocJar: JavadocJar, - override val sourcesJar: Boolean, -) : Platform() { - - @Suppress("DEPRECATION") - @JvmOverloads + @Deprecated( + "Disabling sources publishing for Kotlin/JS is not supported since Kotlin 1.8.20. " + + "Use the single or no-arg constructors instead.", + ) constructor( - javadocJar: JavadocJar = JavadocJar.Empty(), - ) : this(javadocJar, true) - - override fun configure(project: Project) { - check(project.plugins.hasPlugin("org.jetbrains.kotlin.js")) { - "Calling configure(KotlinJs(...)) requires the org.jetbrains.kotlin.js plugin to be applied" - } + override val javadocJar: JavadocJar, + override val sourcesJar: Boolean, + ) : Platform() { + @Suppress("DEPRECATION") + @JvmOverloads + constructor( + javadocJar: JavadocJar = JavadocJar.Empty(), + ) : this(javadocJar, true) + + override fun configure(project: Project) { + check(project.plugins.hasPlugin("org.jetbrains.kotlin.js")) { + "Calling configure(KotlinJs(...)) requires the org.jetbrains.kotlin.js plugin to be applied" + } - // Create publication, since Kotlin/JS doesn't provide one by default. - // https://youtrack.jetbrains.com/issue/KT-41582 - project.afterEvaluate { - project.gradlePublishing.publications.create(PUBLICATION_NAME, MavenPublication::class.java) { - it.from(project.components.getByName("kotlin")) - if (project.isAtLeastKotlinVersion("org.jetbrains.kotlin.js", 1, 8, 20)) { - check(sourcesJar) { - "Disabling sources publishing for Kotlin/JS is not supported since Kotlin 1.8.20" + // Create publication, since Kotlin/JS doesn't provide one by default. + // https://youtrack.jetbrains.com/issue/KT-41582 + project.afterEvaluate { + project.gradlePublishing.publications.create(PUBLICATION_NAME, MavenPublication::class.java) { + it.from(project.components.getByName("kotlin")) + if (project.isAtLeastKotlinVersion("org.jetbrains.kotlin.js", 1, 8, 20)) { + check(sourcesJar) { + "Disabling sources publishing for Kotlin/JS is not supported since Kotlin 1.8.20" + } + } else { + it.withKotlinSourcesJar(sourcesJar, project) } - } else { - it.withKotlinSourcesJar(sourcesJar, project) + it.withJavadocJar { project.javadocJarTask(javadocJar) } } - it.withJavadocJar { project.javadocJarTask(javadocJar) } } } } -} /** * To be used for `java-platforms` projects. Applying this creates a publication for the component called @@ -427,6 +420,7 @@ class JavaPlatform : Platform() { } override fun equals(other: Any?): Boolean = other is JavaPlatform + override fun hashCode(): Int = this::class.hashCode() } @@ -460,6 +454,7 @@ class VersionCatalog : Platform() { } override fun equals(other: Any?): Boolean = other is VersionCatalog + override fun hashCode(): Int = this::class.hashCode() } @@ -472,6 +467,7 @@ sealed class JavadocJar { */ class None : JavadocJar() { override fun equals(other: Any?): Boolean = other is None + override fun hashCode(): Int = this::class.hashCode() } @@ -480,6 +476,7 @@ sealed class JavadocJar { */ class Empty : JavadocJar() { override fun equals(other: Any?): Boolean = other is Empty + override fun hashCode(): Int = this::class.hashCode() } @@ -488,6 +485,7 @@ sealed class JavadocJar { */ class Javadoc : JavadocJar() { override fun equals(other: Any?): Boolean = other is Javadoc + override fun hashCode(): Int = this::class.hashCode() } @@ -498,15 +496,17 @@ sealed class JavadocJar { class Dokka private constructor( internal val taskName: DokkaTaskName, ) : JavadocJar() { - internal sealed interface DokkaTaskName + internal data class StringDokkaTaskName(val value: String) : DokkaTaskName + internal data class ProviderDokkaTaskName(val value: Provider) : DokkaTaskName constructor(taskName: String) : this(StringDokkaTaskName(taskName)) constructor(taskName: Provider) : this(ProviderDokkaTaskName(taskName)) override fun equals(other: Any?): Boolean = other is Dokka && taskName == other.taskName + override fun hashCode(): Int = taskName.hashCode() } } diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt index a768248d..fefa4a42 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/ProjectExtensions.kt @@ -51,7 +51,12 @@ internal fun Project.javaVersion(): JavaVersion { return JavaVersion.current() } -internal fun Project.isAtLeastKotlinVersion(id: String, major: Int, minor: Int, patch: Int): Boolean { +internal fun Project.isAtLeastKotlinVersion( + id: String, + major: Int, + minor: Int, + patch: Int, +): Boolean { val plugin = project.plugins.getPlugin(id) as KotlinBasePlugin val elements = plugin.pluginVersion.takeWhile { it != '-' }.split(".") val kgpMajor = elements[0].toInt() @@ -62,8 +67,8 @@ internal fun Project.isAtLeastKotlinVersion(id: String, major: Int, minor: Int, kgpMajor == major && ( kgpMinor > minor || (kgpMinor == minor && kgpPatch >= patch) - ) ) + ) } internal fun Project.isAtLeastUsingAndroidGradleVersion(major: Int, minor: Int, patch: Int): Boolean { diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CloseAndReleaseSonatypeRepositoryTask.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CloseAndReleaseSonatypeRepositoryTask.kt index d5196504..ea440112 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CloseAndReleaseSonatypeRepositoryTask.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CloseAndReleaseSonatypeRepositoryTask.kt @@ -12,7 +12,6 @@ import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.options.Option internal abstract class CloseAndReleaseSonatypeRepositoryTask : DefaultTask() { - @get:Internal abstract val buildService: Property diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CreateSonatypeRepositoryTask.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CreateSonatypeRepositoryTask.kt index ad62c8b3..163f671a 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CreateSonatypeRepositoryTask.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/CreateSonatypeRepositoryTask.kt @@ -14,7 +14,6 @@ import org.gradle.workers.WorkQueue import org.gradle.workers.WorkerExecutor internal abstract class CreateSonatypeRepositoryTask : DefaultTask() { - @get:Internal abstract val projectGroup: Property diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/DropSonatypeRepositoryTask.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/DropSonatypeRepositoryTask.kt index c74ba190..9ca6e328 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/DropSonatypeRepositoryTask.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/DropSonatypeRepositoryTask.kt @@ -12,7 +12,6 @@ import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.options.Option internal abstract class DropSonatypeRepositoryTask : DefaultTask() { - @get:Internal abstract val buildService: Property diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/SonatypeRepositoryBuildService.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/SonatypeRepositoryBuildService.kt index 18b9e91e..8c65bc0b 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/SonatypeRepositoryBuildService.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/sonatype/SonatypeRepositoryBuildService.kt @@ -17,8 +17,8 @@ import org.gradle.tooling.events.FailureResult import org.gradle.tooling.events.FinishEvent import org.gradle.tooling.events.OperationCompletionListener -internal abstract class SonatypeRepositoryBuildService : BuildService, AutoCloseable, OperationCompletionListener { - +internal abstract class SonatypeRepositoryBuildService : + BuildService, AutoCloseable, OperationCompletionListener { private val logger: Logger = Logging.getLogger(SonatypeRepositoryBuildService::class.java) internal interface Params : BuildServiceParameters { diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/JavadocJar.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/JavadocJar.kt index 53ca87fb..b6130ee8 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/JavadocJar.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/JavadocJar.kt @@ -9,7 +9,6 @@ import org.gradle.api.tasks.TaskProvider import org.gradle.jvm.tasks.Jar open class JavadocJar : Jar() { - init { archiveClassifier.set("javadoc") } diff --git a/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/WorkaroundSignatureType.kt b/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/WorkaroundSignatureType.kt index 4b57a88b..a791611b 100644 --- a/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/WorkaroundSignatureType.kt +++ b/plugin/src/main/kotlin/com/vanniktech/maven/publish/tasks/WorkaroundSignatureType.kt @@ -17,7 +17,6 @@ class WorkaroundSignatureType( @Internal val directory: Provider, ) : AbstractSignatureType() { - override fun fileFor(toSign: File): File { val original = super.fileFor(toSign) return directory.get().file(original.name).asFile