mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
app 1.14.0 -> 1.15.0, appCode 457 -> 458. That single edit drives Android's versionName/versionCode, Desktop and CLI packageVersion, quartz's Maven version and geode's RelayInfo.VERSION. RELEASE_NOTES_ID is repointed at the v1.15.0 note (8fce45589ea44df75e828a04c7d70bb4fabedd6ffc1946a920b2f0c7c990ff9f), which RELEASE_OPS notes happens on x.y.0 releases and not on patches. It has to ship in this commit rather than after it: the drawer's "Release Notes" link and the donation card both open BuildConfig.RELEASE_NOTES_ID, so a tag cut before the repoint ships users a link to the previous release's note. Verified present on relay.damus.io and relay.primal.net before committing. Adds docs/changelog/v1.15.00.md, written from the 556 commits since v1.14.0, and its index entry. The cycle's headline is the Marmot resync: the MIP documents were deprecated in July and MDK followed, leaving our implementation invalid under either profile the current spec defines, so it moves onto the adopted current profile and is now interoperable with White Noise. Marmot group chat itself is not new -- it shipped in v1.09.0 -- and the notes say so. Also syncs the docs that state a version rather than illustrate one, since quartz and geode both read libs.versions.app: - README.md, quartz-integration SKILL.md and its gradle-setup.md reference -> quartz 1.15.0 - geode/README.md install commands -> geode 1.15.0 The Homebrew/Winget status blocks in BUILDING.md and RELEASE_OPS.md were re-verified rather than re-stamped, and the claim had gone stale in our favour: both Homebrew packages are live upstream now. formulae.brew.sh answers 200 for the amethyst-nostr cask (at 1.14.0) and for the amy formula, while geode-relay 404s and microsoft/winget-pkgs still has no VitorPamplona/Amethyst -- PR #422752 is open pending CLA. Both blocks now say that, RELEASE_OPS gains a geode-relay row, and the section heading no longer claims Homebrew is not shipping. Left alone deliberately: everything under */packaging/ and translators.json's tag, which the bump workflows and the Crowdin job write after the tag exists (bumping by hand would commit wrong hashes and a dead URL); and cli/tests/marmot/state/mdk/Cargo.lock, where 1.14.0 is an unrelated crate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VgVDQQXAg4cmzsWHoJj61k
273 lines
20 KiB
TOML
273 lines
20 KiB
TOML
[versions]
|
|
# Amethyst app version — single source of truth consumed by both Android (amethyst/)
|
|
# and Desktop (desktopApp/). `appCode` is the Android versionCode: a monotonic
|
|
# integer that must increment on every release, even when `app` is unchanged.
|
|
app = "1.15.0"
|
|
appCode = "458"
|
|
accompanistAdaptive = "0.37.3"
|
|
# Pinned: 0.3.0 turns CacheMap.entries/keys/values into DeprecationLevel.ERROR (and
|
|
# throws UnsupportedOperationException at runtime), which breaks quartz's appleMain
|
|
# LargeCache/ConcurrentHashCache — they read those views directly and through the
|
|
# stdlib Map operators (filter/map/groupBy/associate/count). Bumping needs a port to
|
|
# the new forEach/forEachKey/forEachValue API, verified on an Apple target.
|
|
cachemapVersion = "0.2.4"
|
|
composeMultiplatform = "1.12.0"
|
|
activityCompose = "1.13.0"
|
|
agp = "9.4.0"
|
|
android-compileSdk = "37"
|
|
android-minSdk = "26"
|
|
android-targetSdk = "37"
|
|
androidxJunit = "1.3.0"
|
|
appcompat = "1.8.0"
|
|
audiowaveform = "1.1.2"
|
|
benchmark = "1.5.0"
|
|
uiautomator = "2.4.0"
|
|
biometricKtx = "1.4.0-alpha02"
|
|
coil = "3.6.2"
|
|
composeBom = "2026.09.00"
|
|
composeRuntimeAnnotation = "1.12.1"
|
|
coreKtx = "1.19.0"
|
|
datastore = "1.2.1"
|
|
devWhyolegCryptography = "0.6.0"
|
|
espressoCore = "3.7.0"
|
|
firebaseBom = "34.19.0"
|
|
fragmentKtx = "1.9.0"
|
|
gms = "4.5.0"
|
|
healthConnect = "1.1.0"
|
|
jacksonModuleKotlin = "2.22.2"
|
|
javaKeyring = "1.0.4"
|
|
kmpTorRuntime = "2.6.0"
|
|
kmpTorResource = "409.5.0"
|
|
kodeinEmoji = "2.5.0"
|
|
junit = "4.13.2"
|
|
kchesslib = "1.0.5"
|
|
kotlin = "2.4.20"
|
|
kotlinxCollectionsImmutable = "0.5.2"
|
|
kotlinxCoroutinesCore = "1.11.0"
|
|
kotlinxSerialization = "1.11.0"
|
|
genaiProofreading = "1.0.0-beta1"
|
|
genaiPrompt = "1.0.0-beta4"
|
|
genaiRewriting = "1.0.0-beta1"
|
|
genaiImageDescription = "1.0.0-beta1"
|
|
languageId = "17.0.6"
|
|
lifecycleRuntimeKtx = "2.11.0"
|
|
lightcompressor-enhanced = "2.2.1"
|
|
jlatexmath = "1.5"
|
|
markdown = "4d3b3dd173"
|
|
highlights = "1.1.0"
|
|
# JetBrains material3 must track Compose Multiplatform's foundation: CMP 1.12.0 changed
|
|
# the CustomStyle.applyStyle signature, so the stable 1.9.0 (and the 1.11.0-alpha07 that
|
|
# kodein-emoji pulls in) crash at runtime with AbstractMethodError in OutlinedTextField.
|
|
# 1.12.0-alpha03 is the first release built against foundation 1.12.x. Android keeps taking
|
|
# androidx material3 from composeBom; this ref only drives desktop/iOS.
|
|
material3 = "1.12.0-alpha03"
|
|
media3 = "1.11.1"
|
|
mockk = "1.14.11"
|
|
kotlinx-coroutines-test = "1.11.0"
|
|
negentropyKmp = "v1.2.0"
|
|
navigationCompose = "2.10.1"
|
|
okhttp = "5.5.0"
|
|
osmdroid = "6.1.20"
|
|
runner = "1.7.0"
|
|
secp256k1KmpJniAndroid = "0.24.0"
|
|
schnorr256k1Kmp = "1.0.5"
|
|
securityCryptoKtx = "1.1.0"
|
|
slf4j = "2.0.19"
|
|
sonarqubeGradlePlugin = "7.5.0.8588"
|
|
spotless = "8.10.2"
|
|
streamWebrtcAndroid = "1.3.10"
|
|
translate = "17.0.3"
|
|
jetbrainsCompose = "1.12.0"
|
|
unifiedpush = "3.0.10"
|
|
playServicesCast = "22.3.1"
|
|
vico-charts-compose = "3.3.1"
|
|
zelory = "3.0.1"
|
|
zoomable = "2.13.0"
|
|
composemediaplayer = "0.11.4"
|
|
jcodec = "0.2.5"
|
|
commonsImaging = "1.0.0-alpha6"
|
|
thumbnailator = "0.4.21"
|
|
zxing = "3.5.4"
|
|
zxingAndroidEmbedded = "4.3.0"
|
|
webkit = "1.17.0"
|
|
# Cross-process UI embedding (SurfaceControlViewHost wrapper) for the in-app browser surface. Apache-2.0.
|
|
privacysandboxUi = "1.0.0-alpha17"
|
|
windowCoreAndroid = "1.5.1"
|
|
workRuntime = "2.11.2"
|
|
androidxCamera = "1.6.2"
|
|
androidxCollection = "1.6.0"
|
|
androidxProfileinstaller = "1.4.1"
|
|
androidxExifinterface = "1.4.2"
|
|
kotlinTest = "2.4.20"
|
|
core = "1.7.0"
|
|
mavenPublish = "0.37.0"
|
|
sqlite = "2.7.1"
|
|
ktor = "3.5.2"
|
|
fourkoma = "1.2.0"
|
|
|
|
# Phase 2 (Gemini App Functions) — both still pre-stable as of May 2026.
|
|
# Scoped to the play flavor only (see amethyst/build.gradle.kts) so the
|
|
# fdroid channel doesn't pull in Google alpha dependencies.
|
|
# Capped by appfunctions-service: `appfunctions` and `appfunctions-compiler`
|
|
# publish alpha10, but -service stopped at alpha09, and all three share this
|
|
# ref. Check every artifact before bumping, not just the main one.
|
|
appfunctions = "1.0.0-alpha09"
|
|
ksp = "2.3.12"
|
|
|
|
[libraries]
|
|
abedElazizShe-video-compressor-fork = { group = "com.github.davotoula", name = "LightCompressor-enhanced", version.ref = "lightcompressor-enhanced" }
|
|
accompanist-adaptive = { group = "com.google.accompanist", name = "accompanist-adaptive", version.ref = "accompanistAdaptive" }
|
|
accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanistAdaptive" }
|
|
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activityCompose" }
|
|
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
|
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
androidx-appfunctions = { group = "androidx.appfunctions", name = "appfunctions", version.ref = "appfunctions" }
|
|
androidx-appfunctions-service = { group = "androidx.appfunctions", name = "appfunctions-service", version.ref = "appfunctions" }
|
|
androidx-appfunctions-compiler = { group = "androidx.appfunctions", name = "appfunctions-compiler", version.ref = "appfunctions" }
|
|
androidx-benchmark-junit4 = { group = "androidx.benchmark", name = "benchmark-junit4", version.ref = "benchmark" }
|
|
androidx-benchmark-macro-junit4 = { group = "androidx.benchmark", name = "benchmark-macro-junit4", version.ref = "benchmark" }
|
|
androidx-biometric-ktx = { group = "androidx.biometric", name = "biometric-ktx", version.ref = "biometricKtx" }
|
|
androidx-camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "androidxCamera" }
|
|
androidx-camera-core = { module = "androidx.camera:camera-core", version.ref = "androidxCamera" }
|
|
androidx-camera-extensions = { module = "androidx.camera:camera-extensions", version.ref = "androidxCamera" }
|
|
androidx-camera-view = { module = "androidx.camera:camera-view", version.ref = "androidxCamera" }
|
|
androidx-camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "androidxCamera" }
|
|
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
|
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
|
|
androidx-compose-runtime-annotation = { group = "androidx.compose.runtime", name = "runtime-annotation", version.ref = "composeRuntimeAnnotation" }
|
|
androidx-collection = { group = "androidx.collection", name = "collection", version.ref = "androidxCollection" }
|
|
androidx-exifinterface = { group = "androidx.exifinterface", name = "exifinterface", version.ref = "androidxExifinterface" }
|
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
|
androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "androidxProfileinstaller" }
|
|
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" }
|
|
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
|
androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "fragmentKtx" }
|
|
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" }
|
|
androidx-junit-ktx = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxJunit" }
|
|
androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycleRuntimeKtx" }
|
|
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
androidx-material3-windowSize = { group = "androidx.compose.material3", name = "material3-window-size-class" }
|
|
androidx-media3-datasource-okhttp = { group = "androidx.media3", name = "media3-datasource-okhttp", version.ref = "media3" }
|
|
androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" }
|
|
androidx-media3-exoplayer-hls = { group = "androidx.media3", name = "media3-exoplayer-hls", version.ref = "media3" }
|
|
androidx-media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3" }
|
|
androidx-media3-ui-compose-material3 = { group = "androidx.media3", name = "media3-ui-compose-material3", version.ref = "media3" }
|
|
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
|
|
androidx-runner = { group = "androidx.test", name = "runner", version.ref = "runner" }
|
|
androidx-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" }
|
|
androidx-security-crypto-ktx = { group = "androidx.security", name = "security-crypto-ktx", version.ref = "securityCryptoKtx" }
|
|
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
|
|
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
|
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
|
|
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
|
|
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
|
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
audiowaveform = { group = "com.github.lincollincol", name = "compose-audiowaveform", version.ref = "audiowaveform" }
|
|
charlietap-cachemap = { module = "io.github.charlietap:cachemap", version.ref = "cachemapVersion" }
|
|
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
|
|
coil-gif = { group = "io.coil-kt.coil3", name = "coil-gif", version.ref = "coil" }
|
|
coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" }
|
|
coil-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" }
|
|
coil-video = { group = "io.coil-kt.coil3", name = "coil-video", version.ref = "coil" }
|
|
commons-imaging = { group = "org.apache.commons", name = "commons-imaging", version.ref = "commonsImaging" }
|
|
thumbnailator = { group = "net.coobird", name = "thumbnailator", version.ref = "thumbnailator" }
|
|
slf4j-nop = { module = "org.slf4j:slf4j-nop", version.ref = "slf4j" }
|
|
composemediaplayer = { group = "io.github.kdroidfilter", name = "composemediaplayer", version.ref = "composemediaplayer" }
|
|
jcodec = { group = "org.jcodec", name = "jcodec", version.ref = "jcodec" }
|
|
jcodec-javase = { group = "org.jcodec", name = "jcodec-javase", version.ref = "jcodec" }
|
|
dev-whyoleg-cryptography-provider-apple-optimal = { module = "dev.whyoleg.cryptography:cryptography-provider-optimal", version.ref = "devWhyolegCryptography" }
|
|
firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
|
|
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
|
|
jetbrains-compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
|
|
jetbrains-compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-ui-tooling = { module = "org.jetbrains.compose.ui:ui-tooling", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-ui-tooling-preview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "jetbrainsCompose" }
|
|
jetbrains-compose-ui-test-junit4 = { module = "org.jetbrains.compose.ui:ui-test-junit4", version.ref = "jetbrainsCompose" }
|
|
google-mlkit-genai-proofreading = { group = "com.google.mlkit", name = "genai-proofreading", version.ref = "genaiProofreading" }
|
|
google-mlkit-genai-prompt = { group = "com.google.mlkit", name = "genai-prompt", version.ref = "genaiPrompt" }
|
|
google-mlkit-genai-rewriting = { group = "com.google.mlkit", name = "genai-rewriting", version.ref = "genaiRewriting" }
|
|
google-mlkit-genai-image-description = { group = "com.google.mlkit", name = "genai-image-description", version.ref = "genaiImageDescription" }
|
|
google-mlkit-language-id = { group = "com.google.mlkit", name = "language-id", version.ref = "languageId" }
|
|
google-mlkit-translate = { group = "com.google.mlkit", name = "translate", version.ref = "translate" }
|
|
jackson-module-kotlin = { group = "com.fasterxml.jackson.module", name = "jackson-module-kotlin", version.ref = "jacksonModuleKotlin" }
|
|
java-keyring = { group = "com.github.javakeyring", name = "java-keyring", version.ref = "javaKeyring" }
|
|
kmp-tor-runtime = { group = "io.matthewnelson.kmp-tor", name = "runtime", version.ref = "kmpTorRuntime" }
|
|
kmp-tor-resource-exec-tor = { group = "io.matthewnelson.kmp-tor", name = "resource-exec-tor", version.ref = "kmpTorResource" }
|
|
kodein-emoji-compose-m3 = { group = "org.kodein.emoji", name = "emoji-compose-m3", version.ref = "kodeinEmoji" }
|
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
kchesslib = { module = "io.github.cvb941:kchesslib", version.ref = "kchesslib" }
|
|
kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" }
|
|
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" }
|
|
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinxCoroutinesCore" }
|
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
|
kotlinx-serialization-cbor = { module = "org.jetbrains.kotlinx:kotlinx-serialization-cbor", version.ref = "kotlinxSerialization" }
|
|
jlatexmath-android = { module = "com.github.rikkahub.jlatexmath-android:jlatexmath", version.ref = "jlatexmath" }
|
|
jlatexmath-font-greek = { module = "com.github.rikkahub.jlatexmath-android:jlatexmath-font-greek", version.ref = "jlatexmath" }
|
|
jlatexmath-font-cyrillic = { module = "com.github.rikkahub.jlatexmath-android:jlatexmath-font-cyrillic", version.ref = "jlatexmath" }
|
|
markdown-commonmark = { group = "com.github.vitorpamplona.compose-richtext", name = "richtext-commonmark", version.ref = "markdown" }
|
|
markdown-ui = { group = "com.github.vitorpamplona.compose-richtext", name = "richtext-ui", version.ref = "markdown" }
|
|
markdown-ui-material3 = { group = "com.github.vitorpamplona.compose-richtext", name = "richtext-ui-material3", version.ref = "markdown" }
|
|
highlights = { group = "dev.snipme", name = "highlights", version.ref = "highlights" }
|
|
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
|
|
mockk-android = { group = "io.mockk", name = "mockk-android", version.ref = "mockk" }
|
|
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinx-coroutines-test"}
|
|
negentropy-kmp = { module = "com.vitorpamplona.negentropy:kmp-negentropy", version.ref = "negentropyKmp" }
|
|
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
|
|
okhttpCoroutines = { group = "com.squareup.okhttp3", name = "okhttp-coroutines", version.ref = "okhttp" }
|
|
osmdroid-android = { group = "org.osmdroid", name = "osmdroid-android", version.ref = "osmdroid" }
|
|
ktor-server-core = { group = "io.ktor", name = "ktor-server-core", version.ref = "ktor" }
|
|
ktor-server-cio = { group = "io.ktor", name = "ktor-server-cio", version.ref = "ktor" }
|
|
ktor-server-websockets = { group = "io.ktor", name = "ktor-server-websockets", version.ref = "ktor" }
|
|
fourkoma = { module = "cc.ekblad:4koma", version.ref = "fourkoma" }
|
|
secp256k1-kmp-common = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp", version.ref = "secp256k1KmpJniAndroid" }
|
|
secp256k1-kmp-jni-android = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp-jni-android", version.ref = "secp256k1KmpJniAndroid" }
|
|
secp256k1-kmp-jni-jvm = { group = "fr.acinq.secp256k1", name = "secp256k1-kmp-jni-jvm", version.ref = "secp256k1KmpJniAndroid" }
|
|
schnorr256k1-kmp = { group = "com.vitorpamplona.schnorr256k1", name = "schnorr256k1-kmp", version.ref = "schnorr256k1Kmp" }
|
|
# Build-time only, gated behind the local.properties sonar opt-in in the root build script (LGPL-3.0).
|
|
sonarqube-gradle-plugin = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version.ref = "sonarqubeGradlePlugin" }
|
|
stream-webrtc-android = { group = "io.getstream", name = "stream-webrtc-android", version.ref = "streamWebrtcAndroid" }
|
|
unifiedpush = { group = "com.github.UnifiedPush", name = "android-connector", version.ref = "unifiedpush" }
|
|
play-services-cast-framework = { group = "com.google.android.gms", name = "play-services-cast-framework", version.ref = "playServicesCast" }
|
|
vico-charts-compose = { group = "com.patrykandpatrick.vico", name = "compose", version.ref = "vico-charts-compose" }
|
|
androidx-webkit = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }
|
|
androidx-privacysandbox-ui-core = { group = "androidx.privacysandbox.ui", name = "ui-core", version.ref = "privacysandboxUi" }
|
|
androidx-privacysandbox-ui-client = { group = "androidx.privacysandbox.ui", name = "ui-client", version.ref = "privacysandboxUi" }
|
|
androidx-privacysandbox-ui-provider = { group = "androidx.privacysandbox.ui", name = "ui-provider", version.ref = "privacysandboxUi" }
|
|
vico-charts-m3 = { group = "com.patrykandpatrick.vico", name = "compose-m3", version.ref = "vico-charts-compose" }
|
|
zelory-image-compressor = { group = "id.zelory", name = "compressor", version.ref = "zelory" }
|
|
zoomable = { group = "net.engawapg.lib", name = "zoomable", version.ref = "zoomable" }
|
|
zxing = { group = "com.google.zxing", name = "core", version.ref = "zxing" }
|
|
zxing-embedded = { group = "com.journeyapps", name = "zxing-android-embedded", version.ref = "zxingAndroidEmbedded" }
|
|
androidx-window-core-android = { group = "androidx.window", name = "window-core-android", version.ref = "windowCoreAndroid" }
|
|
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
|
|
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlinTest" }
|
|
androidx-core = { group = "androidx.test", name = "core", version.ref = "core" }
|
|
androidx-sqlite = { group = "androidx.sqlite", name = "sqlite", version.ref = "sqlite" }
|
|
androidx-sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" }
|
|
androidx-sqlite-bundled-jvm = { module = "androidx.sqlite:sqlite-bundled-jvm", version.ref = "sqlite" }
|
|
androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workRuntime" }
|
|
androidx-health-connect-client = { group = "androidx.health.connect", name = "connect-client", version.ref = "healthConnect" }
|
|
|
|
[plugins]
|
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
|
androidBenchmark = { id = "androidx.benchmark", version.ref = "benchmark" }
|
|
androidLibrary = { id = "com.android.library", version.ref = "agp" }
|
|
androidTest = { id = "com.android.test", version.ref = "agp" }
|
|
androidxBaselineProfile = { id = "androidx.baselineprofile", version.ref = "benchmark" }
|
|
diffplugSpotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
|
|
googleServices = { id = "com.google.gms.google-services", version.ref = "gms" }
|
|
jetbrainsKotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
jetbrainsComposeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
serialization = { id = 'org.jetbrains.kotlin.plugin.serialization', version.ref = 'kotlin' }
|
|
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
androidKotlinMultiplatformLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
|
|
vanniktech-mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }
|
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
|
|
googleKsp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|