From fd04bfdd608c19297bd31601071e1098c6e13bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Pr=C3=BCnster?= Date: Mon, 18 Mar 2024 16:48:46 +0100 Subject: [PATCH] fix iOS issues --- .github/workflows/publish-dry-run.yml | 2 +- .github/workflows/publish.yml | 2 +- CHANGELOG.md | 1 + DEVELOPMENT.md | 3 +++ conventions-vclib/gradle-conventions-plugin | 2 +- .../src/main/kotlin/VcLibConventions.kt | 5 ++++- .../src/main/kotlin/VcLibVersions.kt | 3 ++- kmp-crypto | 2 +- settings.gradle.kts | 21 ++++++++++++------- 9 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish-dry-run.yml b/.github/workflows/publish-dry-run.yml index 4010d670b..f5fc70dba 100644 --- a/.github/workflows/publish-dry-run.yml +++ b/.github/workflows/publish-dry-run.yml @@ -17,7 +17,7 @@ jobs: distribution: 'temurin' java-version: '17' - name: Publish to Maven Local - run: ./gradlew clean publishToMavenLocal + run: ./gradlew -Dpublishing.excludeIncludedBuilds=true clean publishToMavenLocal env: ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PUBLISH_SIGNING_KEYID }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PUBLISH_SIGNING_KEY }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 107446cbc..be3ae89ba 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: distribution: 'temurin' java-version: '17' - name: Publish to Sonatype - run: ./gradlew clean publishToSonatype closeSonatypeStagingRepository + run: ./gradlew -Dpublishing.excludeIncludedBuilds=true clean publishToSonatype closeSonatypeStagingRepository env: ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.PUBLISH_SIGNING_KEYID }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PUBLISH_SIGNING_KEY }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 938e5053b..d60f61348 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Release NEXT: - Improve interoperability with verifiers and issuers from - `OidcSiopVerifier`: Move `credentialScheme` from constructor to `createAuthnRequest` - FIX: Add KMP-Crypto to iOS exports + - Add switch to disable composite build (useful for publishing) Release 3.4.0: - Target Java 17 diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 55f620543..843afb957 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -19,6 +19,9 @@ sonatypeUsername= sonatypePassword= ``` +In addition, it is highly recommended to set the System property `publishing.excludeIncludedBuilds` to `true`, to +build artefacts for publishing, which **do no** depend on included builds. + To run the pipeline from GitHub, export your GPG key with `gpg --export-secret-keys --armor | tee .asc` and set the following environment variables: ```shell diff --git a/conventions-vclib/gradle-conventions-plugin b/conventions-vclib/gradle-conventions-plugin index 962fd22f2..77f67ae32 160000 --- a/conventions-vclib/gradle-conventions-plugin +++ b/conventions-vclib/gradle-conventions-plugin @@ -1 +1 @@ -Subproject commit 962fd22f2beef51bb907d5fd5449d9b00669a110 +Subproject commit 77f67ae32e0d3177c8b3095ce7b20f8954f900dd diff --git a/conventions-vclib/src/main/kotlin/VcLibConventions.kt b/conventions-vclib/src/main/kotlin/VcLibConventions.kt index f6ab267b7..8dd09303f 100644 --- a/conventions-vclib/src/main/kotlin/VcLibConventions.kt +++ b/conventions-vclib/src/main/kotlin/VcLibConventions.kt @@ -15,8 +15,8 @@ inline fun commonApiDependencies() = listOf( "at.asitplus.crypto:datatypes-cose:${VcLibVersions.kmpcrypto}", "at.asitplus.crypto:datatypes-jws:${VcLibVersions.kmpcrypto}", datetime(), - "com.benasher44:uuid:${VcLibVersions.uuid}", "com.squareup.okio:okio:${VcLibVersions.okio}", + "at.asitplus.crypto:datatypes:${VcLibVersions.kmpcrypto}", //for iosExport "io.matthewnelson.kotlin-components:encoding-base16:${VcLibVersions.encoding}", "io.matthewnelson.kotlin-components:encoding-base64:${VcLibVersions.encoding}" ) @@ -25,14 +25,17 @@ inline fun KotlinDependencyHandler.commonImplementationAndApiDependencies() { commonApiDependencies().forEach { dep -> api(dep) } commonImplementationDependencies() } + inline fun KotlinDependencyHandler.commonImplementationDependencies() { implementation(ktor("http")) implementation(napier()) implementation(ktor("utils")) + implementation("com.benasher44:uuid:${VcLibVersions.uuid}") } fun commonIosExports() = arrayOf( datetime(), + "com.ionspin.kotlin:bignum:${VcLibVersions.bignum}", kmmresult(), "at.asitplus.crypto:datatypes:${VcLibVersions.kmpcrypto}", "at.asitplus.crypto:datatypes-cose:${VcLibVersions.kmpcrypto}", diff --git a/conventions-vclib/src/main/kotlin/VcLibVersions.kt b/conventions-vclib/src/main/kotlin/VcLibVersions.kt index 73b15ffea..bb68774d6 100644 --- a/conventions-vclib/src/main/kotlin/VcLibVersions.kt +++ b/conventions-vclib/src/main/kotlin/VcLibVersions.kt @@ -3,7 +3,8 @@ object VcLibVersions { const val resultlib = "1.5.3" const val encoding = "1.2.3" const val okio = "3.5.0" - const val kmpcrypto = "2.3.0" + const val kmpcrypto = "2.5.0-SNAPSHOT" + const val bignum = "0.3.9" object Jvm { const val `jose-jwt` = "9.31" diff --git a/kmp-crypto b/kmp-crypto index 8acb7f9e8..2c280df54 160000 --- a/kmp-crypto +++ b/kmp-crypto @@ -1 +1 @@ -Subproject commit 8acb7f9e8b112933c795866af19998c241f752bb +Subproject commit 2c280df54ab943fdcdf20d60f443448846ef76a7 diff --git a/settings.gradle.kts b/settings.gradle.kts index 48e6ec137..ad80d104c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,14 +8,21 @@ pluginManagement { } } - -includeBuild("kmp-crypto") { - dependencySubstitution { - substitute(module("at.asitplus.crypto:datatypes")).using(project(":datatypes")) - substitute(module("at.asitplus.crypto:datatypes-jws")).using(project(":datatypes-jws")) - substitute(module("at.asitplus.crypto:datatypes-cose")).using(project(":datatypes-cose")) +if (System.getProperty("publishing.excludeIncludedBuilds") != "true") { + includeBuild("kmp-crypto") { + dependencySubstitution { + substitute(module("at.asitplus.crypto:datatypes")).using(project(":datatypes")) + substitute(module("at.asitplus.crypto:datatypes-jws")).using( + project( + ":datatypes-jws" + ) + ) + substitute(module("at.asitplus.crypto:datatypes-cose")).using( + project(":datatypes-cose") + ) + } } -} +} else logger.lifecycle("Excluding KMP Crypto from this build") rootProject.name = "vclibrary" include(":vclib")