mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-30 07:37:38 +00:00
The MLS bindings left quartz (3.0.0) for their own libraries, and their headless group clients went with them, so commons now depends on libs.marmot and libs.cordn. - Imports move from com.vitorpamplona.quartz.marmot/cordn to com.vitorpamplona.marmot/cordn, and from commons.marmot/cordn to marmot.client/cordn.client for the classes that moved (MarmotManager, MarmotSyncPolicy, MarmotPushCoordinator, ..., CordnGroupManager, CordnKeyPackages, CordnSyncLoop, CordnCoordinatorRegistry, ...). - What stays is the app: the encrypted stores, the chatrooms and lists, the relay-pool adapter, CordnLinks (split out of CordnCoordinatorLink.kt), the file stores and migrations, the UI. - MarmotManager.syncMetadataTo becomes an extension next to MarmotGroupChatroom, with its own test; the cordn-vs-Marmot tests from quartz live here now, the one place with both. - Marmot's kinds register with quartz's EventFactory from EventCache, the Android Application and amy's main. GiftWrapDecryptor is gone: quartz's GiftWrapEvent.unwrapAndUnsealOrNull replaces it. - Builds against unreleased quartz 3.0.0, marmot 1.0.0 and cordn 1.0.0: until they publish, pass -PquartzDir=../quartz -PmarmotKmpDir=../marmot-kmp -PcordnKmpDir=../cordn-kmp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ts63GVTwvmPjvikAdWihn
113 lines
3.9 KiB
Kotlin
113 lines
3.9 KiB
Kotlin
pluginManagement {
|
|
repositories {
|
|
google {
|
|
content {
|
|
includeGroupByRegex("com\\.android.*")
|
|
includeGroupByRegex("com\\.google.*")
|
|
includeGroupByRegex("androidx.*")
|
|
}
|
|
}
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
maven {
|
|
url = uri("https://jitpack.io")
|
|
content {
|
|
includeModule("com.github.UnifiedPush", "android-connector")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencyResolutionManagement {
|
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
|
repositories {
|
|
mavenLocal()
|
|
google()
|
|
mavenCentral()
|
|
maven { url = uri("https://jitpack.io") }
|
|
}
|
|
}
|
|
|
|
rootProject.name = "Amethyst"
|
|
include(":amethyst")
|
|
include(":nappletHost")
|
|
include(":benchmark")
|
|
include(":baselineprofile")
|
|
include(":geode")
|
|
include(":commons")
|
|
include(":commonsUI")
|
|
include(":nestsClient")
|
|
include(":marmotQuic")
|
|
include(":desktopApp")
|
|
include(":cli")
|
|
include(":relayBench")
|
|
include(":marmotBench")
|
|
|
|
// quartz lives in its own repo (vitorpamplona/quartz) and comes from Maven Central, like crypto
|
|
// and quic below. To change it alongside the app, point Gradle at a local checkout and it builds
|
|
// that checkout instead of the published artifact, for every module and for quic's own
|
|
// dependency on it:
|
|
// ./gradlew -PquartzDir=../quartz :commons:jvmTest
|
|
providers.gradleProperty("quartzDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.quartz:quartz")).using(project(":quartz"))
|
|
}
|
|
}
|
|
}
|
|
|
|
// The MLS bindings live in their own repos, built on quartz: Marmot (vitorpamplona/marmot-kmp) and
|
|
// cordn (vitorpamplona/cordn-kmp). To change one alongside the app, build a local checkout:
|
|
// ./gradlew -PquartzDir=../quartz -PmarmotKmpDir=../marmot-kmp :commons:jvmTest
|
|
providers.gradleProperty("marmotKmpDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.marmot:marmot")).using(project(":marmot"))
|
|
}
|
|
}
|
|
}
|
|
|
|
// ./gradlew -PquartzDir=../quartz -PcordnKmpDir=../cordn-kmp :commons:jvmTest
|
|
providers.gradleProperty("cordnKmpDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.cordn:cordn")).using(project(":cordn"))
|
|
}
|
|
}
|
|
}
|
|
|
|
// crypto-kmp lives in its own repo (vitorpamplona/crypto-kmp) and reaches this build through
|
|
// quartz. To change it alongside quartz and the app, point Gradle at a local checkout:
|
|
// ./gradlew -PquartzDir=../quartz -PcryptoKmpDir=../crypto-kmp :commons:jvmTest
|
|
providers.gradleProperty("cryptoKmpDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.crypto:crypto")).using(project(":crypto"))
|
|
}
|
|
}
|
|
}
|
|
|
|
// quic lives in its own repo (vitorpamplona/quic-kmp) and comes from Maven Central. To change
|
|
// it alongside nestsClient or marmotQuic, point Gradle at a local checkout and it builds that
|
|
// checkout instead of the published artifact:
|
|
// ./gradlew -PquicKmpDir=../quic-kmp :nestsClient:jvmTest
|
|
providers.gradleProperty("quicKmpDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.quic:quic")).using(project(":quic"))
|
|
}
|
|
}
|
|
}
|
|
|
|
// The MLS engine lives in its own repo (vitorpamplona/mls-kmp) and comes from Maven Central, like
|
|
// quic, and reaches this build through marmot and cordn. To change it alongside Marmot or cordn, build a
|
|
// local checkout instead of the artifact:
|
|
// ./gradlew -PquartzDir=../quartz -PmlsKmpDir=../mls-kmp :commons:jvmTest
|
|
providers.gradleProperty("mlsKmpDir").orNull?.let { dir ->
|
|
includeBuild(dir) {
|
|
dependencySubstitution {
|
|
substitute(module("com.vitorpamplona.mls:mls")).using(project(":mls"))
|
|
}
|
|
}
|
|
}
|