From 8f1d8230994cc8dce4271e8ff99cd5497921dabc Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:48:31 +0100 Subject: [PATCH 1/9] Remove unused Maven repositories - repo1.maven.org duplicates mavenCentral() in pluginManagement - oss.sonatype.org snapshots: OSSRH was shut down; no snapshot deps - repo.commonsware.com: nothing resolves from it any more - NEC wrapper: NEC is unsupported since v2026.1.0 - Secugen wrapper: the secugen artifact is no longer used Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- settings.gradle.kts | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 103324d264..004e0b7941 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,7 +2,6 @@ pluginManagement { includeBuild("build-logic") repositories { - maven(url = "https://repo1.maven.org/maven2/") google() mavenCentral() gradlePluginPortal() @@ -21,8 +20,6 @@ dependencyResolutionManagement { google() mavenCentral() gradlePluginPortal() - maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") - maven(url = "https://s3.amazonaws.com/repo.commonsware.com") maven { name = "SimMatcherGitHubPackages" @@ -44,26 +41,6 @@ dependencyResolutionManagement { } } - maven { - name = "NECWrapperGitHubPackages" - url = uri("https://maven.pkg.github.com/simprints/NEC-wrapper") - credentials { - username = - properties.getProperty("GITHUB_USERNAME", System.getenv("GITHUB_USERNAME")) - password = properties.getProperty("GITHUB_TOKEN", System.getenv("GITHUB_TOKEN")) - } - } - - maven { - name = "SecugenWrapperGitHubPackages" - url = uri("https://maven.pkg.github.com/simprints/secugen-wrapper") - credentials { - username = - properties.getProperty("GITHUB_USERNAME", System.getenv("GITHUB_USERNAME")) - password = properties.getProperty("GITHUB_TOKEN", System.getenv("GITHUB_TOKEN")) - } - } - maven { url = uri("https://maven.pkg.github.com/Simprints/Biometrics-SimFace") credentials { From 4e3408a734c3eaa903d573828f3929c923d12bbe Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:48:48 +0100 Subject: [PATCH 2/9] Remove unused version catalog entries secugen, androidX-appcompat-resource, androidX-navigation-ui, testing-retrofit, testing-Robolectric-annotation and testing-Espresso-barista are not referenced by any module. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- gradle/libs.versions.toml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ecd5d91602..6a558666fc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,7 +64,6 @@ libsimprints_version = "2026.1.0" simmatcher_version = "1.3.0" roc_wrapper_version = "1.23.0" roc_wrapper-v3_version = "3.1.0" -secugen_version = "1.1.0" simface = "2026.2.0" junit_version = "4.13.2" @@ -76,7 +75,6 @@ turbine_version = "1.2.1" robolectric_version = "4.17" espresso_version = "3.7.0" espresso_accessibility_version = "4.1.1" -barista_version = "4.3.0" uiAutomator_version = "2.4.0" jacoco_version = "0.8.15" @@ -98,7 +96,6 @@ kotlin-serialization = {module="org.jetbrains.kotlinx:kotlinx-serialization-json androidX-core = { module = "androidx.core:core-ktx", version.ref = "androidx_core_version" } androidX-multidex = { module = "androidx.multidex:multidex", version.ref = "androidx_dex_version" } androidX-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx_app_compat_version" } -androidX-appcompat-resource = { module = "androidx.appcompat:appcompat-resources", version.ref = "androidx_app_compat_version" } androidX-Room-core = { module = "androidx.room:room-runtime", version.ref = "androidx_room_version" } androidX-Room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx_room_version" } androidX-Room-ktx = { module = "androidx.room:room-ktx", version.ref = "androidx_room_version" } @@ -126,7 +123,6 @@ androidX-cameraX-view = { module = "androidx.camera:camera-view", version.ref = #Navigation androidX-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidx_navigation_version" } -androidX-navigation-ui = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx_navigation_version" } #Annotation androidX-annotation-annotation = { module = "androidx.annotation:annotation", version.ref = "androidx_annotation_version" } @@ -199,8 +195,6 @@ simmatcher = { module = "com.simprints:libsimmatcher", version.ref = "simmatcher roc-v1 = { module = "com.simprints:rocwrapper", version.ref = "roc_wrapper_version" } # roc v3 sdk hosted in https://github.com/Simprints/lib-roc-wrapper-v3 roc-v3 = { module = "com.simprints:roc-v3", version.ref = "roc_wrapper-v3_version" } -# secugen sdk hosted in https://github.com/Simprints/secugen-wrapper -secugen = { module = "com.simprints:secugenwrapper", version.ref = "secugen_version" } simface = { module = "com.simprints.biometrics:simface", version.ref = "simface" } #hilt @@ -224,7 +218,6 @@ tink-core = { module = "com.google.crypto.tink:tink-android", version.ref = "tin testing-junit = { module = "junit:junit", version.ref = "junit_version" } testing-truth = { module = "com.google.truth:truth", version.ref = "truth_version" } testing-work = { module = "androidx.work:work-testing", version.ref = "androidx_work_version" } -testing-retrofit = { module = "com.squareup.retrofit2:retrofit-mock", version.ref = "retrofit_version" } testing-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okttp_version" } testing-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlin_coroutine_version" } testing-live-data = { module = "com.jraska.livedata:testing-ktx", version.ref = "livedata_testing_version" } @@ -233,7 +226,6 @@ testing-fragment = { module = "androidx.fragment:fragment-testing", version.ref testing-navigation = { module = "androidx.navigation:navigation-testing", version.ref = "androidx_navigation_version" } #Testing-Robolectric testing-Robolectric-core = { module = "org.robolectric:robolectric", version.ref = "robolectric_version" } -testing-Robolectric-annotation = { module = "org.robolectric:annotations", version.ref = "robolectric_version" } #Testing-Mockk testing-Mockk-core = { module = "io.mockk:mockk", version.ref = "mockk_version" } testing-Mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk_version" } @@ -242,7 +234,6 @@ testing-Espresso-core = { module = "androidx.test.espresso:espresso-core", versi testing-Espresso-contrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espresso_version" } testing-Espresso-accessibility = { module = "com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework", version.ref = "espresso_accessibility_version" } testing-Espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espresso_version" } -testing-Espresso-barista = { module = "com.adevinta.android:barista", version.ref = "barista_version" } #Used to grant permissions in AndroidTests #Testing-AndroidX testing-AndroidX-ext-junit = { module = "androidx.test.ext:junit", version.ref = "junit_ext_version" } testing-AndroidX-core = { module = "androidx.arch.core:core-testing", version.ref = "androidx_arch_core_version" } From 334d872c094496a222724fabe87ea212166b2e15 Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:49:06 +0100 Subject: [PATCH 3/9] Drop androidx.multidex minSdk is 24 and Android supports multidex natively from API 21, so MultiDexApplication and the Robolectric MultiDex shadow are no longer needed. CoreApplication now extends android.app.Application. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- gradle/libs.versions.toml | 2 -- infra/core/build.gradle.kts | 1 - .../main/java/com/simprints/core/CoreApplication.kt | 4 ++-- .../events/event/local/EventLocalDataSourceTest.kt | 3 +-- .../local/migrations/EventMigration1to2Test.kt | 3 +-- infra/test-tools/build.gradle.kts | 1 - .../unit/robolectric/ShadowAndroidXMultiDex.kt | 13 ------------- 7 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 infra/test-tools/src/main/java/com/simprints/testtools/unit/robolectric/ShadowAndroidXMultiDex.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a558666fc..a6a71ffff0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,6 @@ androidx_room_version = "2.8.5" androidx_datastore_version = "1.2.1" androidx_camerax_version = "1.6.1" androidx_test_orchestrator_version = "1.6.1" -androidx_dex_version = "2.0.1" androidx_constraint_version = "2.2.2" androidx_coordinator_version = "1.3.0" androidx_cardview_version = "1.0.0" @@ -94,7 +93,6 @@ kotlin-serialization = {module="org.jetbrains.kotlinx:kotlinx-serialization-json #AndroidX androidX-core = { module = "androidx.core:core-ktx", version.ref = "androidx_core_version" } -androidX-multidex = { module = "androidx.multidex:multidex", version.ref = "androidx_dex_version" } androidX-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx_app_compat_version" } androidX-Room-core = { module = "androidx.room:room-runtime", version.ref = "androidx_room_version" } androidX-Room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx_room_version" } diff --git a/infra/core/build.gradle.kts b/infra/core/build.gradle.kts index 6d1b7e81c2..d3f70fc93f 100644 --- a/infra/core/build.gradle.kts +++ b/infra/core/build.gradle.kts @@ -17,7 +17,6 @@ dependencies { api(project(":infra:security")) api(libs.androidX.appcompat) - api(libs.androidX.multidex) api(libs.androidX.annotation.annotation) api(libs.androidX.lifecycle.process) diff --git a/infra/core/src/main/java/com/simprints/core/CoreApplication.kt b/infra/core/src/main/java/com/simprints/core/CoreApplication.kt index d53557e794..63e32d7143 100644 --- a/infra/core/src/main/java/com/simprints/core/CoreApplication.kt +++ b/infra/core/src/main/java/com/simprints/core/CoreApplication.kt @@ -1,12 +1,12 @@ package com.simprints.core +import android.app.Application import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig -import androidx.multidex.MultiDexApplication @ExcludedFromGeneratedTestCoverageReports("Abstract base class") open class CoreApplication : - MultiDexApplication(), + Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig = Camera2Config.defaultConfig() } diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/local/EventLocalDataSourceTest.kt b/infra/events/src/test/java/com/simprints/infra/events/event/local/EventLocalDataSourceTest.kt index 5eee36e19f..ac11d4ad90 100644 --- a/infra/events/src/test/java/com/simprints/infra/events/event/local/EventLocalDataSourceTest.kt +++ b/infra/events/src/test/java/com/simprints/infra/events/event/local/EventLocalDataSourceTest.kt @@ -17,7 +17,6 @@ import com.simprints.infra.events.event.local.models.fromDomainToDb import com.simprints.infra.events.sampledata.SampleDefaults.GUID1 import com.simprints.infra.events.sampledata.createSessionScope import com.simprints.testtools.common.syntax.assertThrows -import com.simprints.testtools.unit.robolectric.ShadowAndroidXMultiDex import dagger.hilt.android.testing.HiltTestApplication import io.mockk.* import io.mockk.impl.annotations.* @@ -35,7 +34,7 @@ import org.robolectric.annotation.Config import java.io.IOException @RunWith(AndroidJUnit4::class) -@Config(application = HiltTestApplication::class, shadows = [ShadowAndroidXMultiDex::class]) +@Config(application = HiltTestApplication::class) internal class EventLocalDataSourceTest { private lateinit var db: EventRoomDatabase private lateinit var eventDao: EventRoomDao diff --git a/infra/events/src/test/java/com/simprints/infra/events/event/local/migrations/EventMigration1to2Test.kt b/infra/events/src/test/java/com/simprints/infra/events/event/local/migrations/EventMigration1to2Test.kt index 7b2d463e54..05dff4bfed 100644 --- a/infra/events/src/test/java/com/simprints/infra/events/event/local/migrations/EventMigration1to2Test.kt +++ b/infra/events/src/test/java/com/simprints/infra/events/event/local/migrations/EventMigration1to2Test.kt @@ -11,7 +11,6 @@ import com.simprints.core.tools.extensions.getStringWithColumnName import com.simprints.core.tools.utils.randomUUID import com.simprints.infra.events.event.local.EventRoomDatabase import com.simprints.infra.events.event.local.migrations.MigrationTestingTools.retrieveCursorWithEventById -import com.simprints.testtools.unit.robolectric.ShadowAndroidXMultiDex import dagger.hilt.android.testing.HiltTestApplication import org.json.JSONObject import org.junit.Rule @@ -21,7 +20,7 @@ import org.robolectric.annotation.Config import java.io.IOException @RunWith(AndroidJUnit4::class) -@Config(application = HiltTestApplication::class, shadows = [ShadowAndroidXMultiDex::class]) +@Config(application = HiltTestApplication::class) class EventMigration1to2Test { @get:Rule val helper = MigrationTestHelper( diff --git a/infra/test-tools/build.gradle.kts b/infra/test-tools/build.gradle.kts index f65be31c20..d529e08970 100644 --- a/infra/test-tools/build.gradle.kts +++ b/infra/test-tools/build.gradle.kts @@ -11,7 +11,6 @@ dependencies { api(project(":infra:core")) api(libs.testing.androidX.core) - api(libs.androidX.multidex) api(libs.androidX.appcompat) api(libs.testing.fragment) api(libs.testing.androidX.ext.junit) diff --git a/infra/test-tools/src/main/java/com/simprints/testtools/unit/robolectric/ShadowAndroidXMultiDex.kt b/infra/test-tools/src/main/java/com/simprints/testtools/unit/robolectric/ShadowAndroidXMultiDex.kt deleted file mode 100644 index 5462b94b0d..0000000000 --- a/infra/test-tools/src/main/java/com/simprints/testtools/unit/robolectric/ShadowAndroidXMultiDex.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.simprints.testtools.unit.robolectric - -import android.content.Context -import androidx.multidex.MultiDex -import org.robolectric.annotation.Implementation -import org.robolectric.annotation.Implements - -@Implements(MultiDex::class) -object ShadowAndroidXMultiDex { - @JvmStatic - @Implementation - fun install(context: Context) {} -} From 36b67c812612051945c9a5051206359ae3999d31 Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:49:15 +0100 Subject: [PATCH 4/9] Remove unused coordinatorlayout dependency from ui-base No layout or class uses CoordinatorLayout. Material still brings it in transitively. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- gradle/libs.versions.toml | 2 -- infra/ui-base/build.gradle.kts | 1 - 2 files changed, 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a6a71ffff0..0961891758 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,6 @@ androidx_datastore_version = "1.2.1" androidx_camerax_version = "1.6.1" androidx_test_orchestrator_version = "1.6.1" androidx_constraint_version = "2.2.2" -androidx_coordinator_version = "1.3.0" androidx_cardview_version = "1.0.0" androidx_preferences_version = "1.2.1" androidx_viewpager_version = "1.1.0" @@ -105,7 +104,6 @@ androidX-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", #UI androidX-ui-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx_constraint_version" } -androidX-ui-coordinatorlayout = { module = "androidx.coordinatorlayout:coordinatorlayout", version.ref = "androidx_coordinator_version" } androidX-ui-cardview = { module = "androidx.cardview:cardview", version.ref = "androidx_cardview_version" } androidX-ui-fragment = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx_fragment_version" } androidX-ui-preference = { module = "androidx.preference:preference", version.ref = "androidx_preferences_version" } diff --git a/infra/ui-base/build.gradle.kts b/infra/ui-base/build.gradle.kts index 0aca93f0db..f10088fdeb 100644 --- a/infra/ui-base/build.gradle.kts +++ b/infra/ui-base/build.gradle.kts @@ -31,7 +31,6 @@ dependencies { api(libs.androidX.ui.fragment) api(libs.androidX.ui.constraintlayout) - api(libs.androidX.ui.coordinatorlayout) api(libs.androidX.ui.cardview) api(libs.androidX.navigation.fragment) From 5e3c78355018d0cd2258b2b0a66f832beb9fc306 Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:49:15 +0100 Subject: [PATCH 5/9] Remove redundant kotlin-reflect from fingerprint:capture Only fingerprint:infra:scanner uses kotlin-reflect, and it already declares it as an implementation dependency, so it stays on fingerprint:capture's runtime classpath. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- fingerprint/capture/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/fingerprint/capture/build.gradle.kts b/fingerprint/capture/build.gradle.kts index 1b3f69fe9a..f9e70a2543 100644 --- a/fingerprint/capture/build.gradle.kts +++ b/fingerprint/capture/build.gradle.kts @@ -27,7 +27,6 @@ dependencies { implementation(project(":fingerprint:infra:bio-sdk")) // Kotlin - runtimeOnly(libs.kotlin.reflect) runtimeOnly(libs.kotlin.serialization) // Android X From f82e191daaa215001ee2d9cfc0574724746a21e3 Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:49:23 +0100 Subject: [PATCH 6/9] Remove lifecycle-viewmodel-ktx excludes The app resolves lifecycle 2.11 everywhere, so the old lifecycle-viewmodel-ktx pulled in by Chucker and Preference is upgraded to the same version and no longer needs excluding. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- infra/network/build.gradle.kts | 4 +--- infra/resources/build.gradle.kts | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/infra/network/build.gradle.kts b/infra/network/build.gradle.kts index 95a94a7fbb..062bf534ee 100644 --- a/infra/network/build.gradle.kts +++ b/infra/network/build.gradle.kts @@ -23,9 +23,7 @@ dependencies { implementation(project(":infra:logging-persistent")) implementation(project(":infra:security")) - debugImplementation(libs.chuck.debug) { - exclude("androidx.lifecycle", "lifecycle-viewmodel-ktx") - } + debugImplementation(libs.chuck.debug) implementation(libs.chuck.release) runtimeOnly(libs.kotlin.coroutinesAndroid) diff --git a/infra/resources/build.gradle.kts b/infra/resources/build.gradle.kts index 5275c5da32..9232066568 100644 --- a/infra/resources/build.gradle.kts +++ b/infra/resources/build.gradle.kts @@ -11,7 +11,5 @@ dependencies { implementation(libs.androidX.appcompat) implementation(libs.androidX.ui.constraintlayout) - implementation(libs.androidX.ui.preference) { - exclude("androidx.lifecycle", "lifecycle-viewmodel-ktx") - } + implementation(libs.androidX.ui.preference) } From 7cac2851ca5654c9d683152be56c960b641f8166 Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:21:31 +0000 Subject: [PATCH 7/9] Remove obsolete Kotlin compiler flags -Xnew-inference has been the default since Kotlin 1.4, and the kotlin.Experimental marker no longer exists, so both only produced compiler warnings. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt index 19c54c7963..1f34de416a 100644 --- a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt @@ -9,11 +9,9 @@ internal fun Project.configureKotlinCompiler() { tasks.withType(KotlinCompile::class.java).configureEach { compilerOptions { freeCompilerArgs.addAll( - "-Xnew-inference", "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlin.Experimental", ) } } From a4ab2fd45f8396558225d43d80919a31e205a2ee Mon Sep 17 00:00:00 2001 From: Melad Date: Mon, 12 Oct 2026 16:34:31 +0000 Subject: [PATCH 8/9] Remove Sonatype and CommonsWare registries from Dependabot config These repositories were removed from settings.gradle.kts; drop them from Dependabot too so it stops querying them. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- .github/dependabot.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6d1b2c86ba..4cd3a7bade 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,12 +9,6 @@ registries: gradle-plugin-portal: type: maven-repository url: "https://plugins.gradle.org/m2" - sonatype: - type: maven-repository - url: "https://oss.sonatype.org/content/repositories/snapshots" - commonsware: - type: maven-repository - url: "https://s3.amazonaws.com/repo.commonsware.com" simmatcher: type: maven-repository url: "https://maven.pkg.github.com/simprints/lib-android-simmatcher" @@ -34,8 +28,6 @@ updates: - google - maven-central - gradle-plugin-portal - - sonatype - - commonsware - simmatcher - roc-wrapper @@ -47,7 +39,5 @@ updates: - google - maven-central - gradle-plugin-portal - - sonatype - - commonsware - simmatcher - roc-wrapper From 4717b3bde2fe1e59baa204abadca1f7130374f73 Mon Sep 17 00:00:00 2001 From: Melad Date: Tue, 13 Oct 2026 09:09:35 +0000 Subject: [PATCH 9/9] Use Central Portal snapshots repository for LibSimprints OSSRH (oss.sonatype.org) has been shut down. Keep the ability to consume LibSimprints snapshot builds by pointing at the Central Portal snapshots repository, limited to snapshot versions of com.simprints:libsimprints. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XDdSwkCH2YzDmLynPhih3H --- settings.gradle.kts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 004e0b7941..d39db66153 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,6 +20,13 @@ dependencyResolutionManagement { google() mavenCentral() gradlePluginPortal() + // Sonatype Central Portal snapshots, used to test unreleased LibSimprints builds in SID + maven { + name = "CentralPortalSnapshots" + url = uri("https://central.sonatype.com/repository/maven-snapshots/") + mavenContent { snapshotsOnly() } + content { includeModule("com.simprints", "libsimprints") } + } maven { name = "SimMatcherGitHubPackages"