mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-07-22 07:48:27 +00:00
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:
@@ -46,8 +46,7 @@ amethyst/
|
||||
│ └── jvmAndroid/ # Opus encode/decode, AudioRecord/AudioTrack
|
||||
├── desktopApp/ # Desktop JVM application (layouts, navigation)
|
||||
├── amethyst/ # Android app (layouts, navigation)
|
||||
├── cli/ # Amy — non-interactive CLI (JVM only, no Compose)
|
||||
└── ammolite/ # Support module (unused)
|
||||
└── cli/ # Amy — non-interactive CLI (JVM only, no Compose)
|
||||
```
|
||||
|
||||
**Sharing Philosophy:**
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
│ (Amethyst) │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
│
|
||||
┌────────────────┼────────────────┬────────────┐
|
||||
│ │ │ │
|
||||
▼ ▼ ▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────┐
|
||||
│ :amethyst │ │ :desktopApp │ │ :benchmark │ │:ammolite │
|
||||
│ (Android) │ │ (JVM) │ │ (Android) │ │ (Support)│
|
||||
└─────────────┘ └─────────────┘ └─────────────┘ └──────────┘
|
||||
┌────────────────┼────────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||||
│ :amethyst │ │ :desktopApp │ │ :benchmark │
|
||||
│ (Android) │ │ (JVM) │ │ (Android) │
|
||||
└─────────────┘ └─────────────┘ └─────────────┘
|
||||
│ │ │
|
||||
│ │ │
|
||||
└────────────────┼────────────────┘
|
||||
@@ -77,7 +77,7 @@
|
||||
**Type:** Android Application
|
||||
**Targets:** Android
|
||||
**Dependencies:**
|
||||
- Modules: `:commons`, `:quartz`, `:ammolite`
|
||||
- Modules: `:commons`, `:quartz`, `:nestsClient`
|
||||
- External: Android SDK, AndroidX, Firebase, Tor
|
||||
|
||||
**Role:** Android-specific navigation, layouts, and entry point
|
||||
@@ -91,13 +91,6 @@
|
||||
|
||||
**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
|
||||
|
||||
### Desktop Build Chain
|
||||
@@ -112,10 +105,10 @@
|
||||
### Android Build Chain
|
||||
```
|
||||
:amethyst → :commons (androidMain) → :quartz (androidMain)
|
||||
↓ ↓
|
||||
:ammolite jvmAndroid
|
||||
↓
|
||||
commonMain
|
||||
↓
|
||||
jvmAndroid
|
||||
↓
|
||||
commonMain
|
||||
```
|
||||
|
||||
## Source Set Dependencies
|
||||
|
||||
@@ -21,7 +21,6 @@ TASKS=(
|
||||
:commons:jvmTest
|
||||
:nestsClient:jvmTest
|
||||
:quic:jvmTest
|
||||
:ammolite:testDebugUnitTest
|
||||
:amethyst:testPlayDebugUnitTest
|
||||
:cli:test
|
||||
)
|
||||
|
||||
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@@ -218,7 +218,6 @@ jobs:
|
||||
:quartz:jvmTest \
|
||||
:commons:jvmTest \
|
||||
:nestsClient:jvmTest \
|
||||
:ammolite:testDebugUnitTest \
|
||||
:amethyst:testFdroidDebugUnitTest \
|
||||
:amethyst:testPlayDebugUnitTest \
|
||||
:amethyst:assembleBenchmark \
|
||||
|
||||
@@ -164,7 +164,6 @@ Modules:
|
||||
- `amethyst/` — Android app: Activity, layouts, navigation.
|
||||
- `desktopApp/` — Desktop JVM app: Window, sidebar, keyboard shortcuts.
|
||||
- `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
|
||||
global `docs/plans/` folder is frozen.
|
||||
|
||||
@@ -270,7 +270,6 @@ dependencies {
|
||||
|
||||
implementation project(path: ':quartz')
|
||||
implementation project(path: ':commons')
|
||||
implementation project(path: ':ammolite')
|
||||
implementation project(path: ':nestsClient')
|
||||
implementation libs.androidx.core.ktx
|
||||
implementation libs.androidx.activity.compose
|
||||
|
||||
1
amethyst/proguard-rules.pro
vendored
1
amethyst/proguard-rules.pro
vendored
@@ -62,7 +62,6 @@
|
||||
# JSON parsing
|
||||
-keep class com.vitorpamplona.quartz.** { *; }
|
||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
||||
|
||||
# Room generates *_Impl subclasses instantiated reflectively via no-arg constructor.
|
||||
# -keepnames preserves the name but R8 still strips the unused <init>().
|
||||
|
||||
1
ammolite/.gitignore
vendored
1
ammolite/.gitignore
vendored
@@ -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.** { *; }
|
||||
44
ammolite/proguard-rules.pro
vendored
44
ammolite/proguard-rules.pro
vendored
@@ -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 project(path: ':quartz')
|
||||
androidTestImplementation project(path: ':commons')
|
||||
androidTestImplementation project(path: ':ammolite')
|
||||
|
||||
// Custom C secp256k1 (libschnorr256k1) for the 3-way Android benchmark
|
||||
androidTestImplementation libs.schnorr256k1.kmp
|
||||
|
||||
3
commons/proguard-rules.pro
vendored
3
commons/proguard-rules.pro
vendored
@@ -21,5 +21,4 @@
|
||||
#-renamesourcefileattribute SourceFile
|
||||
|
||||
-keep class com.vitorpamplona.quartz.** { *; }
|
||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||
@@ -70,7 +70,6 @@
|
||||
# JSON-mapped first-party types (mirrors mobile)
|
||||
-keep class com.vitorpamplona.quartz.** { *; }
|
||||
-keep class com.vitorpamplona.amethyst.** { *; }
|
||||
-keep class com.vitorpamplona.ammolite.** { *; }
|
||||
|
||||
# ============================================================================
|
||||
# Desktop-only JNI keep rules — libraries the mobile module doesn't ship
|
||||
|
||||
@@ -36,7 +36,6 @@ include ':benchmark'
|
||||
include ':quartz'
|
||||
include ':geode'
|
||||
include ':commons'
|
||||
include ':ammolite'
|
||||
include ':quic'
|
||||
include ':nestsClient'
|
||||
include ':desktopApp'
|
||||
|
||||
Reference in New Issue
Block a user