This commit is contained in:
Vitor Pamplona
2026-06-16 14:38:13 -04:00
parent 242904afd2
commit 0572b0091c
12 changed files with 51 additions and 40 deletions
+1 -1
View File
@@ -750,7 +750,7 @@ android {
applicationId = "com.vitorpamplona.amethyst"
minSdk = 26 // Android 8.0 (Oreo)
targetSdk = 37 // android-targetSdk in libs.versions.toml
versionCode = 447
versionCode = 448
versionName = generateVersionName(libs.versions.app.get(), rootDir)
vectorDrawables {
+1 -1
View File
@@ -167,7 +167,7 @@ implementation(libs.jna)
**Current project config** (always re-check `gradle/libs.versions.toml` — these drift):
```toml
composeMultiplatform = "1.11.0" # Plugin + runtime
composeMultiplatform = "1.12.0" # Plugin + runtime
composeBom = "2026.05.01" # AndroidX Compose BOM
kotlin = "2.3.21"
```
@@ -212,7 +212,7 @@ implementation(compose.ui) // Compose Multiplatform BOM
implementation(compose.material3)
// Version catalog alignment (re-check libs.versions.toml — these drift)
composeMultiplatform = "1.11.0"
composeMultiplatform = "1.12.0"
composeBom = "2026.05.01" // AndroidX Compose
```
**Why:** Two Compose ecosystems (Multiplatform + AndroidX) must align
+3 -3
View File
@@ -7,7 +7,7 @@ description: Integration guide for using the Quartz Nostr KMP library in externa
Reference for integrating `com.vitorpamplona.quartz:quartz` into external Nostr KMP projects.
**Published artifact**: `com.vitorpamplona.quartz:quartz:1.11.0` (Maven Central)
**Published artifact**: `com.vitorpamplona.quartz:quartz:1.12.0` (Maven Central)
**Targets**: JVM 21+, Android (minSdk 21+), iOS (XCFramework `quartz-kmpKit`)
**License**: MIT
@@ -19,7 +19,7 @@ Reference for integrating `com.vitorpamplona.quartz:quartz` into external Nostr
```toml
[versions]
quartz = "1.11.0"
quartz = "1.12.0"
[libraries]
quartz = { module = "com.vitorpamplona.quartz:quartz", version.ref = "quartz" }
@@ -41,7 +41,7 @@ kotlin {
```kotlin
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.11.0")
implementation("com.vitorpamplona.quartz:quartz:1.12.0")
}
```
@@ -3,7 +3,7 @@
## Current version
```
com.vitorpamplona.quartz:quartz:1.11.0
com.vitorpamplona.quartz:quartz:1.12.0
```
Check latest: https://central.sonatype.com/artifact/com.vitorpamplona.quartz/quartz
@@ -16,7 +16,7 @@ Check latest: https://central.sonatype.com/artifact/com.vitorpamplona.quartz/qua
```toml
[versions]
quartz = "1.11.0"
quartz = "1.12.0"
[libraries]
quartz = { module = "com.vitorpamplona.quartz:quartz", version.ref = "quartz" }
@@ -55,7 +55,7 @@ kotlin {
```kotlin
// build.gradle.kts (app module)
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.11.0")
implementation("com.vitorpamplona.quartz:quartz:1.12.0")
}
```
@@ -70,7 +70,7 @@ plugins {
}
dependencies {
implementation("com.vitorpamplona.quartz:quartz:1.11.0")
implementation("com.vitorpamplona.quartz:quartz:1.12.0")
// JNA needed for libsodium (NIP-44) on JVM
implementation("net.java.dev.jna:jna:5.18.1")
}
@@ -6,7 +6,7 @@ description: >-
inputs:
tag:
description: "Tag to validate (e.g. v1.08.0)"
description: "Tag to validate (e.g. vX.YY.Z)"
required: true
is_prerelease:
description: "Whether the release is marked as prerelease (empty string treated as false)"
+1 -1
View File
@@ -11,7 +11,7 @@ on:
type: boolean
default: false
test_tag:
description: 'Synthetic tag name for dry-run (e.g. v1.08.0-dryrun); ignored on tag push'
description: 'Synthetic tag name for dry-run (e.g. vX.YY.Z-dryrun); ignored on tag push'
type: string
default: 'v0.0.0-dryrun'
+11 -11
View File
@@ -113,7 +113,7 @@ Where:
| Field | Values |
|---|---------------------------------------------------------|
| `<version>` | Tag stripped of leading `v` (e.g. `1.11.0`) |
| `<version>` | Tag stripped of leading `v` (e.g. `1.12.0`) |
| `<family>` | `macos`, `windows`, `linux` |
| `<arch>` | `x64`, `arm64` |
| `<ext>` | `dmg`, `msi`, `zip`, `deb`, `rpm`, `AppImage`, `tar.gz` |
@@ -124,10 +124,10 @@ any change is a breaking contract.
Examples:
- `amethyst-desktop-1.11.0-macos-x64.dmg`
- `amethyst-desktop-1.11.0-macos-arm64.dmg`
- `amethyst-desktop-1.11.0-windows-x64.msi`
- `amethyst-desktop-1.11.0-linux-x64.AppImage`
- `amethyst-desktop-1.12.0-macos-x64.dmg`
- `amethyst-desktop-1.12.0-macos-arm64.dmg`
- `amethyst-desktop-1.12.0-windows-x64.msi`
- `amethyst-desktop-1.12.0-linux-x64.AppImage`
---
@@ -147,15 +147,15 @@ Quartz library in one pipeline.
must increment even for same `versionName`):
```groovy
versionCode = 447
versionCode = 448
versionName = generateVersionName(libs.versions.app.get())
```
3. **Commit + tag + push**:
```bash
git commit -am "chore(release): 1.08.1"
git tag -s v1.08.1 -m "Release 1.08.1"
git commit -am "chore(release): 1.12.0"
git tag -s v1.12.0 -m "Release 1.12.0"
git push && git push --tags
```
@@ -223,8 +223,8 @@ or equivalent issue tracker. On rotation, paste new token and run
```bash
brew bump-cask-pr amethyst-nostr \
--version 1.11.0 \
--url "https://github.com/vitorpamplona/amethyst/releases/download/v1.11.0/amethyst-desktop-1.11.0-macos-arm64.dmg"
--version 1.12.0 \
--url "https://github.com/vitorpamplona/amethyst/releases/download/v1.12.0/amethyst-desktop-1.12.0-macos-arm64.dmg"
```
The cask filename is `amethyst-nostr` (not `amethyst` — that's taken by a
@@ -235,7 +235,7 @@ auto-submits new version bumps on each stable release.
```bash
wingetcreate new \
https://github.com/vitorpamplona/amethyst/releases/download/v1.11.0/amethyst-desktop-1.11.0-windows-x64.msi
https://github.com/vitorpamplona/amethyst/releases/download/v1.12.0/amethyst-desktop-1.12.0-windows-x64.msi
```
Set `PackageIdentifier = VitorPamplona.Amethyst`. After the first manifest is
+3 -3
View File
@@ -76,9 +76,9 @@ android {
libs.versions.android.targetSdk
.get()
.toInt()
versionCode = 447
versionCode = 448
versionName = generateVersionName(libs.versions.app.get(), rootDir)
buildConfigField("String", "RELEASE_NOTES_ID", "\"8ec0d94550b5538115226c6858159b1115713c9c6ed942173bd4fd5d292d8ba6\"")
buildConfigField("String", "RELEASE_NOTES_ID", "\"40e817712e397c07ba31784a92fa474aa095896a828c0e2dea0d09c60d49ee1e\"")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
@@ -282,7 +282,7 @@ android {
unitTests.all { test ->
test.systemProperty(
"java.library.path",
"${projectDir}/src/test/native-libs/x86_64-linux",
"$projectDir/src/test/native-libs/x86_64-linux",
)
project
.findProperty("amethyst.arti.integration")
@@ -41,7 +41,7 @@ data class RelayInfo(
const val NAME = "geode"
const val DESCRIPTION = "Embedded Nostr relay from the Amethyst quartz library."
const val SOFTWARE = "https://github.com/vitorpamplona/amethyst/tree/main/geode"
const val VERSION = "1.11.0"
const val VERSION = "1.12.0"
/**
* NIPs this relay implements out of the box. Single source of
+1 -1
View File
@@ -2,7 +2,7 @@
# Amethyst app version — single source of truth consumed by both Android (amethyst/)
# and Desktop (desktopApp/). Android versionCode is bumped independently in
# amethyst/build.gradle because it must be a monotonic integer.
app = "1.11.0"
app = "1.12.0"
accompanistAdaptive = "0.37.3"
cachemapVersion = "0.2.4"
composeMultiplatform = "1.11.1"
+23 -12
View File
@@ -372,16 +372,26 @@ val verifyKmpPurity by tasks.registering {
description = "Fails if iOS-targeted source sets import JVM-only deps."
val checkedDirs =
listOf(
"src/commonMain", "src/commonTest",
"src/appleMain", "src/appleTest",
"src/nativeMain", "src/nativeTest",
"src/iosMain", "src/iosTest",
"src/iosArm64Main", "src/iosArm64Test",
"src/iosSimulatorArm64Main", "src/iosSimulatorArm64Test",
"src/linuxMain", "src/linuxTest",
"src/linuxX64Main", "src/linuxX64Test",
"src/macosMain", "src/macosTest",
"src/macosArm64Main", "src/macosArm64Test",
"src/commonMain",
"src/commonTest",
"src/appleMain",
"src/appleTest",
"src/nativeMain",
"src/nativeTest",
"src/iosMain",
"src/iosTest",
"src/iosArm64Main",
"src/iosArm64Test",
"src/iosSimulatorArm64Main",
"src/iosSimulatorArm64Test",
"src/linuxMain",
"src/linuxTest",
"src/linuxX64Main",
"src/linuxX64Test",
"src/macosMain",
"src/macosTest",
"src/macosArm64Main",
"src/macosArm64Test",
).map { layout.projectDirectory.dir(it).asFile }
.filter { it.exists() }
inputs.files(checkedDirs)
@@ -400,7 +410,8 @@ val verifyKmpPurity by tasks.registering {
)
val offenders =
checkedDirs.flatMap { dir ->
dir.walkTopDown()
dir
.walkTopDown()
.filter { it.isFile && it.extension == "kt" }
.flatMap { file ->
file.readLines().withIndex().mapNotNull { (idx, line) ->
@@ -438,7 +449,7 @@ mavenPublishing {
coordinates(
groupId = "com.vitorpamplona.quartz",
artifactId = "quartz",
version = "1.11.0",
version = "1.12.0",
)
// Configure publishing to Maven Central