Files
amethyst/settings.gradle.kts
Vitor PamplonaandClaude Opus 5.5 6130766bcb refactor: take Marmot and cordn from marmot-kmp and cordn-kmp
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
2026-10-23 16:28:21 +00:00

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