build: remove unused :ammolite module
The :ammolite module contained no production Kotlin/Java sources (just
a manifest, build.gradle, and proguard stubs) and no module in the
codebase imports com.vitorpamplona.ammolite.*.
Removes:
- ammolite/ directory (5 files)
- :ammolite project include in settings.gradle
- implementation project(':ammolite') from :amethyst
- androidTestImplementation project(':ammolite') from :benchmark
- :ammolite:testDebugUnitTest from CI workflow and pre-push hook
- -keep class com.vitorpamplona.ammolite.** rules from
:amethyst, :commons, and :desktopApp proguard files
- Stale references in CONTRIBUTING.md, CLAUDE.md, and the
gradle-expert skill dependency-graph doc
Small build-graph win: one fewer module to configure, compile, lint,
and spotless-check on every build, and one fewer unit-test target in
both CI and the local pre-push hook.
This commit is contained in:
+1
-2
@@ -46,8 +46,7 @@ amethyst/
|
|||||||
│ └── jvmAndroid/ # Opus encode/decode, AudioRecord/AudioTrack
|
│ └── jvmAndroid/ # Opus encode/decode, AudioRecord/AudioTrack
|
||||||
├── desktopApp/ # Desktop JVM application (layouts, navigation)
|
├── desktopApp/ # Desktop JVM application (layouts, navigation)
|
||||||
├── amethyst/ # Android app (layouts, navigation)
|
├── amethyst/ # Android app (layouts, navigation)
|
||||||
├── cli/ # Amy — non-interactive CLI (JVM only, no Compose)
|
└── cli/ # Amy — non-interactive CLI (JVM only, no Compose)
|
||||||
└── ammolite/ # Support module (unused)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Sharing Philosophy:**
|
**Sharing Philosophy:**
|
||||||
|
|||||||
@@ -8,13 +8,13 @@
|
|||||||
│ (Amethyst) │
|
│ (Amethyst) │
|
||||||
└─────────────────────────────────────────────────────────┘
|
└─────────────────────────────────────────────────────────┘
|
||||||
│
|
│
|
||||||
┌────────────────┼────────────────┬────────────┐
|
┌────────────────┼────────────────┐
|
||||||
│ │ │ │
|
│ │ │
|
||||||
▼ ▼ ▼ ▼
|
▼ ▼ ▼
|
||||||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────┐
|
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||||||
│ :amethyst │ │ :desktopApp │ │ :benchmark │ │:ammolite │
|
│ :amethyst │ │ :desktopApp │ │ :benchmark │
|
||||||
│ (Android) │ │ (JVM) │ │ (Android) │ │ (Support)│
|
│ (Android) │ │ (JVM) │ │ (Android) │
|
||||||
└─────────────┘ └─────────────┘ └─────────────┘ └──────────┘
|
└─────────────┘ └─────────────┘ └─────────────┘
|
||||||
│ │ │
|
│ │ │
|
||||||
│ │ │
|
│ │ │
|
||||||
└────────────────┼────────────────┘
|
└────────────────┼────────────────┘
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
**Type:** Android Application
|
**Type:** Android Application
|
||||||
**Targets:** Android
|
**Targets:** Android
|
||||||
**Dependencies:**
|
**Dependencies:**
|
||||||
- Modules: `:commons`, `:quartz`, `:ammolite`
|
- Modules: `:commons`, `:quartz`, `:nestsClient`
|
||||||
- External: Android SDK, AndroidX, Firebase, Tor
|
- External: Android SDK, AndroidX, Firebase, Tor
|
||||||
|
|
||||||
**Role:** Android-specific navigation, layouts, and entry point
|
**Role:** Android-specific navigation, layouts, and entry point
|
||||||
@@ -91,13 +91,6 @@
|
|||||||
|
|
||||||
**Role:** Performance benchmarking for Android builds
|
**Role:** Performance benchmarking for Android builds
|
||||||
|
|
||||||
### :ammolite (Support Module)
|
|
||||||
**Type:** Android Library
|
|
||||||
**Targets:** Android
|
|
||||||
**Dependencies:** Android-specific utilities
|
|
||||||
|
|
||||||
**Role:** Android support utilities for amethyst
|
|
||||||
|
|
||||||
## Dependency Flow Patterns
|
## Dependency Flow Patterns
|
||||||
|
|
||||||
### Desktop Build Chain
|
### Desktop Build Chain
|
||||||
@@ -112,10 +105,10 @@
|
|||||||
### Android Build Chain
|
### Android Build Chain
|
||||||
```
|
```
|
||||||
:amethyst → :commons (androidMain) → :quartz (androidMain)
|
:amethyst → :commons (androidMain) → :quartz (androidMain)
|
||||||
↓ ↓
|
↓
|
||||||
:ammolite jvmAndroid
|
jvmAndroid
|
||||||
↓
|
↓
|
||||||
commonMain
|
commonMain
|
||||||
```
|
```
|
||||||
|
|
||||||
## Source Set Dependencies
|
## Source Set Dependencies
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ TASKS=(
|
|||||||
:commons:jvmTest
|
:commons:jvmTest
|
||||||
:nestsClient:jvmTest
|
:nestsClient:jvmTest
|
||||||
:quic:jvmTest
|
:quic:jvmTest
|
||||||
:ammolite:testDebugUnitTest
|
|
||||||
:amethyst:testPlayDebugUnitTest
|
:amethyst:testPlayDebugUnitTest
|
||||||
:cli:test
|
:cli:test
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -218,7 +218,6 @@ jobs:
|
|||||||
:quartz:jvmTest \
|
:quartz:jvmTest \
|
||||||
:commons:jvmTest \
|
:commons:jvmTest \
|
||||||
:nestsClient:jvmTest \
|
:nestsClient:jvmTest \
|
||||||
:ammolite:testDebugUnitTest \
|
|
||||||
:amethyst:testFdroidDebugUnitTest \
|
:amethyst:testFdroidDebugUnitTest \
|
||||||
:amethyst:testPlayDebugUnitTest \
|
:amethyst:testPlayDebugUnitTest \
|
||||||
:amethyst:assembleBenchmark \
|
:amethyst:assembleBenchmark \
|
||||||
|
|||||||
@@ -164,7 +164,6 @@ Modules:
|
|||||||
- `amethyst/` — Android app: Activity, layouts, navigation.
|
- `amethyst/` — Android app: Activity, layouts, navigation.
|
||||||
- `desktopApp/` — Desktop JVM app: Window, sidebar, keyboard shortcuts.
|
- `desktopApp/` — Desktop JVM app: Window, sidebar, keyboard shortcuts.
|
||||||
- `cli/` — `amy`, a non-interactive JVM CLI over `quartz` + `commons`.
|
- `cli/` — `amy`, a non-interactive JVM CLI over `quartz` + `commons`.
|
||||||
- `ammolite/` — Legacy support module.
|
|
||||||
|
|
||||||
Per-module design docs live in `<module>/plans/YYYY-MM-DD-<slug>.md`. The
|
Per-module design docs live in `<module>/plans/YYYY-MM-DD-<slug>.md`. The
|
||||||
global `docs/plans/` folder is frozen.
|
global `docs/plans/` folder is frozen.
|
||||||
|
|||||||
@@ -270,7 +270,6 @@ dependencies {
|
|||||||
|
|
||||||
implementation project(path: ':quartz')
|
implementation project(path: ':quartz')
|
||||||
implementation project(path: ':commons')
|
implementation project(path: ':commons')
|
||||||
implementation project(path: ':ammolite')
|
|
||||||
implementation project(path: ':nestsClient')
|
implementation project(path: ':nestsClient')
|
||||||
implementation libs.androidx.core.ktx
|
implementation libs.androidx.core.ktx
|
||||||
implementation libs.androidx.activity.compose
|
implementation libs.androidx.activity.compose
|
||||||
|
|||||||
Vendored
-1
@@ -62,7 +62,6 @@
|
|||||||
# JSON parsing
|
# JSON parsing
|
||||||
-keep class com.vitorpamplona.quartz.** { *; }
|
-keep class com.vitorpamplona.quartz.** { *; }
|
||||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
|
||||||
|
|
||||||
# Room generates *_Impl subclasses instantiated reflectively via no-arg constructor.
|
# Room generates *_Impl subclasses instantiated reflectively via no-arg constructor.
|
||||||
# -keepnames preserves the name but R8 still strips the unused <init>().
|
# -keepnames preserves the name but R8 still strips the unused <init>().
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/build
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
alias(libs.plugins.androidLibrary)
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
namespace = 'com.vitorpamplona.ammolite'
|
|
||||||
compileSdk = libs.versions.android.compileSdk.get().toInteger()
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
minSdk = libs.versions.android.minSdk.get().toInteger()
|
|
||||||
targetSdk = libs.versions.android.targetSdk.get().toInteger()
|
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
consumerProguardFiles "consumer-rules.pro"
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFeatures {
|
|
||||||
buildConfig = true
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
minifyEnabled = true
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
||||||
}
|
|
||||||
create("benchmark") {
|
|
||||||
initWith(getByName("release"))
|
|
||||||
signingConfig = signingConfigs.debug
|
|
||||||
}
|
|
||||||
}
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility JavaVersion.VERSION_21
|
|
||||||
targetCompatibility JavaVersion.VERSION_21
|
|
||||||
}
|
|
||||||
packagingOptions {
|
|
||||||
resources {
|
|
||||||
excludes += ['**/libscrypt.dylib']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
compilerOptions {
|
|
||||||
jvmTarget = JvmTarget.JVM_21
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Lru Cache used in Relay stats
|
|
||||||
implementation libs.androidx.core.ktx
|
|
||||||
|
|
||||||
implementation project(path: ':quartz')
|
|
||||||
|
|
||||||
testImplementation libs.junit
|
|
||||||
|
|
||||||
androidTestImplementation libs.androidx.junit
|
|
||||||
androidTestImplementation libs.androidx.espresso.core
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
# Add project specific ProGuard rules here.
|
|
||||||
# You can control the set of applied configuration files using the
|
|
||||||
# proguardFiles setting in build.gradle.
|
|
||||||
#
|
|
||||||
# For more details, see
|
|
||||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
||||||
|
|
||||||
# If your project uses WebView with JS, uncomment the following
|
|
||||||
# and specify the fully qualified class name to the JavaScript interface
|
|
||||||
# class:
|
|
||||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
||||||
# public *;
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Uncomment this to preserve the line number information for
|
|
||||||
# debugging stack traces.
|
|
||||||
#-keepattributes SourceFile,LineNumberTable
|
|
||||||
|
|
||||||
# If you keep the line number information, uncomment this to
|
|
||||||
# hide the original source file name.
|
|
||||||
#-renamesourcefileattribute SourceFile
|
|
||||||
# preserve the line number information for debugging stack traces.
|
|
||||||
-keepattributes LocalVariableTable
|
|
||||||
-keepattributes LocalVariableTypeTable
|
|
||||||
-keepattributes Signature
|
|
||||||
-keepattributes Exceptions
|
|
||||||
-keepattributes InnerClasses
|
|
||||||
-keepattributes EnclosingMethod
|
|
||||||
-keepattributes MethodParameters
|
|
||||||
-keepparameternames
|
|
||||||
|
|
||||||
-keepdirectories libs
|
|
||||||
|
|
||||||
# Keep all names
|
|
||||||
-keepnames class ** { *; }
|
|
||||||
|
|
||||||
# Keep All enums
|
|
||||||
-keep enum ** { *; }
|
|
||||||
|
|
||||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
|
||||||
Vendored
-44
@@ -1,44 +0,0 @@
|
|||||||
# Add project specific ProGuard rules here.
|
|
||||||
# You can control the set of applied configuration files using the
|
|
||||||
# proguardFiles setting in build.gradle.
|
|
||||||
#
|
|
||||||
# For more details, see
|
|
||||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
||||||
|
|
||||||
# If your project uses WebView with JS, uncomment the following
|
|
||||||
# and specify the fully qualified class name to the JavaScript interface
|
|
||||||
# class:
|
|
||||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
||||||
# public *;
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Uncomment this to preserve the line number information for
|
|
||||||
# debugging stack traces.
|
|
||||||
#-keepattributes SourceFile,LineNumberTable
|
|
||||||
|
|
||||||
# If you keep the line number information, uncomment this to
|
|
||||||
# hide the original source file name.
|
|
||||||
#-renamesourcefileattribute SourceFile
|
|
||||||
# preserve the line number information for debugging stack traces.
|
|
||||||
-dontobfuscate
|
|
||||||
-keepattributes LocalVariableTable
|
|
||||||
-keepattributes LocalVariableTypeTable
|
|
||||||
-keepattributes *Annotation*
|
|
||||||
-keepattributes SourceFile
|
|
||||||
-keepattributes LineNumberTable
|
|
||||||
-keepattributes Signature
|
|
||||||
-keepattributes Exceptions
|
|
||||||
-keepattributes InnerClasses
|
|
||||||
-keepattributes EnclosingMethod
|
|
||||||
-keepattributes MethodParameters
|
|
||||||
-keepparameternames
|
|
||||||
|
|
||||||
-keepdirectories libs
|
|
||||||
|
|
||||||
# Keep all names
|
|
||||||
-keepnames class ** { *; }
|
|
||||||
|
|
||||||
# Keep All enums
|
|
||||||
-keep enum ** { *; }
|
|
||||||
|
|
||||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<manifest>
|
|
||||||
|
|
||||||
</manifest>
|
|
||||||
@@ -60,7 +60,6 @@ dependencies {
|
|||||||
androidTestImplementation libs.androidx.benchmark.junit4
|
androidTestImplementation libs.androidx.benchmark.junit4
|
||||||
androidTestImplementation project(path: ':quartz')
|
androidTestImplementation project(path: ':quartz')
|
||||||
androidTestImplementation project(path: ':commons')
|
androidTestImplementation project(path: ':commons')
|
||||||
androidTestImplementation project(path: ':ammolite')
|
|
||||||
|
|
||||||
// Custom C secp256k1 (libschnorr256k1) for the 3-way Android benchmark
|
// Custom C secp256k1 (libschnorr256k1) for the 3-way Android benchmark
|
||||||
androidTestImplementation libs.schnorr256k1.kmp
|
androidTestImplementation libs.schnorr256k1.kmp
|
||||||
|
|||||||
Vendored
+1
-2
@@ -21,5 +21,4 @@
|
|||||||
#-renamesourcefileattribute SourceFile
|
#-renamesourcefileattribute SourceFile
|
||||||
|
|
||||||
-keep class com.vitorpamplona.quartz.** { *; }
|
-keep class com.vitorpamplona.quartz.** { *; }
|
||||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
|
||||||
@@ -70,7 +70,6 @@
|
|||||||
# JSON-mapped first-party types (mirrors mobile)
|
# JSON-mapped first-party types (mirrors mobile)
|
||||||
-keep class com.vitorpamplona.quartz.** { *; }
|
-keep class com.vitorpamplona.quartz.** { *; }
|
||||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# Desktop-only JNI keep rules — libraries the mobile module doesn't ship
|
# Desktop-only JNI keep rules — libraries the mobile module doesn't ship
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ include ':benchmark'
|
|||||||
include ':quartz'
|
include ':quartz'
|
||||||
include ':geode'
|
include ':geode'
|
||||||
include ':commons'
|
include ':commons'
|
||||||
include ':ammolite'
|
|
||||||
include ':quic'
|
include ':quic'
|
||||||
include ':nestsClient'
|
include ':nestsClient'
|
||||||
include ':desktopApp'
|
include ':desktopApp'
|
||||||
|
|||||||
Reference in New Issue
Block a user