mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-07-31 20:16:16 +00:00
build: drive all module versions from the catalog
Make every module read its release version from gradle/libs.versions.toml instead of carrying its own literal, so a release bump is a single-file edit. - Move the Android versionCode out of amethyst/build.gradle.kts into the catalog as `appCode`; amethyst reads it via libs.versions.appCode.get(). - quartz publishes with version = libs.versions.app.get(). - geode generates a BuildConfig.VERSION from the catalog (new generateVersionFile task) and RelayInfo.VERSION reads it, so the NIP-11 software version tracks releases. - Update the root build comment to point at the appCode entry. Version-neutral: everything still resolves to the current 1.12.0 / 448. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
af27b7750e
commit
270d229d0a
@@ -76,7 +76,10 @@ android {
|
||||
libs.versions.android.targetSdk
|
||||
.get()
|
||||
.toInt()
|
||||
versionCode = 448
|
||||
versionCode =
|
||||
libs.versions.appCode
|
||||
.get()
|
||||
.toInt()
|
||||
versionName = generateVersionName(libs.versions.app.get(), rootDir)
|
||||
buildConfigField("String", "RELEASE_NOTES_ID", "\"40e817712e397c07ba31784a92fa474aa095896a828c0e2dea0d09c60d49ee1e\"")
|
||||
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ plugins {
|
||||
}
|
||||
|
||||
// Shared app version for all subprojects — read from gradle/libs.versions.toml.
|
||||
// Android versionCode stays local in amethyst/build.gradle.kts (must be monotonic int).
|
||||
// Android versionCode is the `appCode` entry in the same catalog (must be monotonic int).
|
||||
// Desktop packageVersion inherits via project.version in desktopApp/build.gradle.kts.
|
||||
val appVersion = libs.versions.app.get()
|
||||
|
||||
|
||||
@@ -19,9 +19,34 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate a BuildConfig.kt carrying the app version from the catalog so
|
||||
// RelayInfo.VERSION (reported over NIP-11) tracks releases automatically
|
||||
// instead of being a hand-bumped literal.
|
||||
val generateVersionFile by tasks.registering {
|
||||
val versionValue = libs.versions.app.get()
|
||||
val outDir = layout.buildDirectory.dir("generated/version/kotlin")
|
||||
inputs.property("version", versionValue)
|
||||
outputs.dir(outDir)
|
||||
doLast {
|
||||
val file = outDir.get().file("com/vitorpamplona/geode/BuildConfig.kt").asFile
|
||||
file.parentFile.mkdirs()
|
||||
file.writeText(
|
||||
buildString {
|
||||
appendLine("// Generated by the :geode build — do not edit.")
|
||||
appendLine("package com.vitorpamplona.geode")
|
||||
appendLine()
|
||||
appendLine("internal object BuildConfig {")
|
||||
appendLine(" const val VERSION = \"$versionValue\"")
|
||||
appendLine("}")
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
kotlin.srcDir("src/main/kotlin")
|
||||
kotlin.srcDir(generateVersionFile)
|
||||
}
|
||||
test {
|
||||
kotlin.srcDir("src/test/kotlin")
|
||||
|
||||
@@ -38,10 +38,10 @@ data class RelayInfo(
|
||||
val json: String by lazy { JsonMapper.toJson(document) }
|
||||
|
||||
companion object {
|
||||
const val NAME = "geode"
|
||||
const val DESCRIPTION = "Embedded Nostr relay from the Amethyst quartz library."
|
||||
const val NAME = "Geode"
|
||||
const val DESCRIPTION = "Nostr relay from Amethyst"
|
||||
const val SOFTWARE = "https://github.com/vitorpamplona/amethyst/tree/main/geode"
|
||||
const val VERSION = "1.12.0"
|
||||
const val VERSION = BuildConfig.VERSION
|
||||
|
||||
/**
|
||||
* NIPs this relay implements out of the box. Single source of
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
[versions]
|
||||
# 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.
|
||||
# and Desktop (desktopApp/). `appCode` is the Android versionCode: a monotonic
|
||||
# integer that must increment on every release, even when `app` is unchanged.
|
||||
app = "1.12.0"
|
||||
appCode = "448"
|
||||
accompanistAdaptive = "0.37.3"
|
||||
cachemapVersion = "0.2.4"
|
||||
composeMultiplatform = "1.11.1"
|
||||
|
||||
@@ -449,7 +449,9 @@ mavenPublishing {
|
||||
coordinates(
|
||||
groupId = "com.vitorpamplona.quartz",
|
||||
artifactId = "quartz",
|
||||
version = "1.12.0",
|
||||
// Library version tracks the app version in gradle/libs.versions.toml,
|
||||
// bumped in lockstep with each release.
|
||||
version = libs.versions.app.get(),
|
||||
)
|
||||
|
||||
// Configure publishing to Maven Central
|
||||
|
||||
Reference in New Issue
Block a user