diff --git a/CHANGELOG.md b/CHANGELOG.md index 05e7592..bdd2a1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.4.2 + +* `Kotlin`: `2.1.21` +* Android SDK Level: `36` + ## 1.4.1 * `Kotlin`: `2.1.10` diff --git a/gradle.properties b/gradle.properties index 2e61762..4f80a99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,5 +10,5 @@ org.gradle.jvmargs=-Xmx512m # Project data group=dev.inmo -version=1.4.1 -android_code_version=35 +version=1.4.2 +android_code_version=36 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 21f2d3c..fcfa893 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -kotlin = "2.1.10" +kotlin = "2.1.21" kotlin-gradle-plugin = "8.2.2" versions = "0.51.0" @@ -13,8 +13,8 @@ test_ext_junit_version = "1.2.1" espresso_core = "3.6.1" android-minSdk = "21" -android-compileSdk = "35" -android-buildTools = "35.0.0" +android-compileSdk = "36" +android-buildTools = "36.0.0" github-release = "2.5.2" diff --git a/publish.gradle b/publish.gradle index cd44567..8d1d9bc 100644 --- a/publish.gradle +++ b/publish.gradle @@ -1,4 +1,49 @@ +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' @@ -19,66 +64,58 @@ publishing { } developers { - - developer { - id = "Akkihi" - name = "Akkihi" - email = "akkihiguy@gmail.com" - } - + developer { + id = "Akkihi" + name = "Akkihi" + email = "akkihiguy@gmail.com" + } - developer { - id = "InsanusMokrassar" - name = "InsanusMokrassar" - email = "ovsyannikov.alexey95@gmail.com" - } - + developer { + id = "InsanusMokrassar" + name = "InsanusMokrassar" + email = "ovsyannikov.alexey95@gmail.com" + } } licenses { - - license { - name = "MIT License" - url = "https://opensource.org/licenses/MIT" - } - + license { + name = "MIT License" + url = "https://opensource.org/licenses/MIT" + } } } - 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') - } - + } + 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" - url = uri("https://nexus.inmo.dev/repository/maven-releases/") - - credentials { - username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER') - password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD') - } - + } + if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { + maven { + name = "InmoNexus" + url = uri("https://nexus.inmo.dev/repository/maven-releases/") + + credentials { + username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER') + password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD') } } - 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://oss.sonatype.org/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') - } - + } + 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') } } } @@ -87,13 +124,13 @@ publishing { if (project.hasProperty("signing.gnupg.keyName")) { apply plugin: 'signing' - + signing { useGpgCmd() - + sign publishing.publications } - + task signAll { tasks.withType(Sign).forEach { dependsOn(it) diff --git a/publish.kpsb b/publish.kpsb index 074b27e..843f08e 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://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} \ 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":"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