diff --git a/CHANGELOG.md b/CHANGELOG.md index 92795af..1869a56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## 1.5.0 +* `Kotlin`: `2.2.0` + ## 1.4.2 * `Kotlin`: `2.1.21` diff --git a/build.gradle b/build.gradle index 5341d6a..137f5d7 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,21 @@ plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlin.dokka) alias(libs.plugins.versions) + alias(libs.plugins.nmcp.aggregation) +} + + +if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { + nmcpAggregation { + centralPortal { + username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') + password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') + validationTimeout = Duration.ofHours(4) + publishingType = System.getenv('PUBLISHING_TYPE') != "" ? System.getenv('PUBLISHING_TYPE') : "USER_MANAGED" + } + + publishAllProjectsProbablyBreakingProjectIsolation() + } } apply plugin: "com.android.library" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fcfa893..94b04a8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,8 +1,9 @@ [versions] -kotlin = "2.1.21" +kotlin = "2.2.0" kotlin-gradle-plugin = "8.2.2" +nmcp = "0.2.1" versions = "0.51.0" dokka = "2.0.0" @@ -42,3 +43,5 @@ kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref kotlin-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } versions = { id = "com.github.ben-manes.versions", version.ref = "versions" } + +nmcp-aggregation = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 81aa1c0..2733ed5 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-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/publish.gradle b/publish.gradle index 8d1d9bc..a6f5aa2 100644 --- a/publish.gradle +++ b/publish.gradle @@ -1,49 +1,4 @@ -import java.nio.charset.StandardCharsets -import java.net.http.HttpClient -import java.net.http.HttpRequest -import java.net.http.HttpResponse - apply plugin: 'maven-publish' -if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { - def taskName = "uploadSonatypePublication" - if (rootProject.tasks.names.contains(taskName) == false) { - rootProject.tasks.register(taskName) { - doLast { - def username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') - def password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') - def bearer = Base64.getEncoder().encodeToString("$username:$password".getBytes(StandardCharsets.UTF_8)) - - def client = HttpClient.newHttpClient() - def request = HttpRequest.newBuilder() - .uri(URI.create("https://ossrh-staging-api.central.sonatype.com/manual/search/repositories?state=open")) - .GET() - .header("Content-Type", "application/json") - .header("Authorization", "Bearer $bearer") - .build() - - def response = client.send(request, HttpResponse.BodyHandlers.ofString()) - def keys = new ArrayList() - response.body().findAll("\"key\"[\\s]*:[\\s]*\"[^\"]+\"").forEach { - def key = it.find("[^\"]+\"\$").find("[^\"]+") - keys.add(key) - } - keys.forEach { - println("Start uploading $it") - def uploadRequest = HttpRequest.newBuilder() - .uri(URI.create("https://ossrh-staging-api.central.sonatype.com/manual/upload/repository/$it?publishing_type=user_managed")) - .POST(HttpRequest.BodyPublishers.ofString("")) - .header("Content-Type", "application/json") - .header("Authorization", "Bearer $bearer") - .build() - def uploadResponse = client.send(uploadRequest, HttpResponse.BodyHandlers.ofString()) - if (uploadResponse.statusCode() != 200) { - throw IllegalStateException("Faced error of uploading for repo with key $it. Response: $uploadResponse") - } - } - } - } - } -} task javadocsJar(type: Jar) { archiveClassifier = 'javadoc' @@ -86,17 +41,6 @@ publishing { } } repositories { - if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { - maven { - name = "GithubPackages" - url = uri("https://maven.pkg.github.com/InsanusMokrassar/KSLog") - - credentials { - username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') - password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD') - } - } - } if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { maven { name = "InmoNexus" @@ -108,17 +52,6 @@ publishing { } } } - if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { - maven { - name = "sonatype" - url = uri("https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/") - - credentials { - username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') - password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') - } - } - } } } diff --git a/publish.kpsb b/publish.kpsb index 843f08e..416248d 100644 --- a/publish.kpsb +++ b/publish.kpsb @@ -1 +1 @@ -{"licenses":[{"id":"MIT","title":"MIT License","url":"https://opensource.org/licenses/MIT"}],"mavenConfig":{"name":"${project.name}","description":"Simple logging library for kotlin","url":"https://github.com/InsanusMokrassar/KSLog","vcsUrl":"https://github.com/InsanusMokrassar/KSLog.git","developers":[{"id":"Akkihi","name":"Akkihi","eMail":"akkihiguy@gmail.com"},{"id":"InsanusMokrassar","name":"InsanusMokrassar","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/KSLog"},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"},"includeCentralSonatypeUploadingScript":true}} \ No newline at end of file +{"licenses":[{"id":"MIT","title":"MIT License","url":"https://opensource.org/licenses/MIT"}],"mavenConfig":{"name":"${project.name}","description":"Simple logging library for kotlin","url":"https://github.com/InsanusMokrassar/KSLog","vcsUrl":"https://github.com/InsanusMokrassar/KSLog.git","developers":[{"id":"Akkihi","name":"Akkihi","eMail":"akkihiguy@gmail.com"},{"id":"InsanusMokrassar","name":"InsanusMokrassar","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"}],"gpgSigning":{"type":"dev.inmo.kmppscr"includeCentralSonatypeUploadingScript":trueiptbuilder.core.models.GpgSigning.Optional"}}} \ No newline at end of file