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")