feat(devops): configure desktop packaging and introduce semantic versioning

- Added `nativeDistributions` for Linux (.deb), Windows (.msi), and macOS (.dmg) in `build.gradle.kts` with platform-specific settings, embedded JRE, and JVM-args.
- Implemented centralized semantic versioning via `version.properties` as the single source of truth, applying it across all builds.
- Introduced CI/CD release workflow (`.gitea/workflows/release.yml`) for auto-tagging, artifact builds, and release summaries.
- Created `CHANGELOG.md` following Keep-a-Changelog format for tracking changes.
- Documented icon requirements and packaging steps in `ICONS_PLACEHOLDER.md`.
- Updated DevOps roadmap to reflect completed Sprint C-1 and C-2 tasks.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-03 11:26:43 +02:00
parent c696b8c50e
commit 7ff48ed3d7
9 changed files with 598 additions and 35 deletions
+14 -1
View File
@@ -38,9 +38,22 @@ plugins {
// ### ALLPROJECTS CONFIGURATION ###
// ##################################################################
// ---------------------------------------------------------------
// Zentrale Versionierung — liest version.properties (SemVer)
// ---------------------------------------------------------------
val versionProps =
java.util.Properties().also { props ->
rootProject.file("version.properties").inputStream().use { props.load(it) }
}
val vMajor = versionProps.getProperty("VERSION_MAJOR", "1")
val vMinor = versionProps.getProperty("VERSION_MINOR", "0")
val vPatch = versionProps.getProperty("VERSION_PATCH", "0")
val vQualifier = versionProps.getProperty("VERSION_QUALIFIER", "").trim()
val semVer = if (vQualifier.isBlank()) "$vMajor.$vMinor.$vPatch" else "$vMajor.$vMinor.$vPatch-$vQualifier"
allprojects {
group = "at.mocode"
version = "1.0.0-SNAPSHOT"
version = semVer
}
subprojects {