Files
amethyst/settings.gradle.kts
Claude b3d59300c0 refactor: marmotQuic and marmotBench move to marmot-kmp; document the library split
The QUIC agent-stream transport is now marmot-kmp's marmot-quic artifact
(libs.marmot.quic, marmot-kmp 2.1.0) and the MDK bench is marmot-kmp's
marmot-bench. -PmarmotKmpDir substitutes both artifacts.

AGENTS.md gets a Libraries section: what quartz, crypto-kmp, mls-kmp,
marmot-kmp, cordn-kmp and quic-kmp each hold, how they depend on each other,
what stays in Amethyst, and how to change one. README, CONTRIBUTING and the
kotlin-multiplatform skill follow, and references to plans and tools that
moved to the library repos are repointed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BSSNWvwXdNnNwYnLoEvNcq
2026-10-25 00:19:16 +00:00

127 lines
4.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)
// The groups only JitPack builds (straight from GitHub). Google and Maven Central never have
// them, so they are told not to be asked: Gradle tried both first, for 404s, and when a
// rate-limited Central answered one with a 429 it disabled Central for the rest of the build
// and every other dependency failed to resolve. A JitPack group missing here still resolves,
// only through those wasted lookups first; mavenLocal() keeps serving a locally published fork.
val jitpackOnly =
listOf(
"cc.ekblad", // cli's TOML parser, 4koma
"cc.ekblad.konbini", // 4koma's parser combinators
"com.github.UnifiedPush",
"com.github.davotoula",
"com.github.lincollincol",
"com.github.rikkahub.jlatexmath-android",
"com.github.vitorpamplona.compose-richtext",
)
repositories {
mavenLocal()
google { content { jitpackOnly.forEach { excludeGroup(it) } } }
mavenCentral { content { jitpackOnly.forEach { excludeGroup(it) } } }
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(":desktopApp")
include(":cli")
include(":relayBench")
// 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 the libraries' 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"))
substitute(module("com.vitorpamplona.marmot:marmot-quic")).using(project(":marmot-quic"))
}
}
}
// ./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 marmot-quic, 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"))
}
}
}