Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: macOS-latest
steps:
- name: Check out code
uses: actions/checkout@v5
uses: actions/checkout@v6

- name: Set up JDK 21
uses: actions/setup-java@v5
Expand All @@ -26,11 +26,10 @@ jobs:
uses: gradle/actions/setup-gradle@v5

- name: Publish to MavenCentral
run: ./gradlew publishToMavenCentral --no-configuration-cache
run: ./gradlew publishToMavenCentral --no-configuration-cache -x allTests -x check -x test -x jvmTest -x jsTest -x wasmJsTest -x jsBrowserTest -x jsNodeTest -x wasmJsBrowserTest
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY_CONTENTS }}

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,16 @@ Type-safe currency formatting for Kotlin Multiplatform with Compose support and

```kotlin
dependencies {
implementation("org.kimplify:kurrency:1.0.0")
implementation("org.kimplify:kurrency-core:0.2.1")
}
```

### Compose Integration (Optional)

```kotlin
dependencies {
implementation("org.kimplify:kurrency:1.0.0")
implementation("org.kimplify:kurrency-compose:1.0.0")
implementation("org.kimplify:kurrency-core:0.2.1")
implementation("org.kimplify:kurrency-compose:0.2.1")
}
```

Expand Down
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.composeMultiplatform) apply false
alias(libs.plugins.composeHotReload) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.maven.publish) apply false
}
15 changes: 7 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
[versions]
appVersionCode = "5"
appVersionName = "0.2.3"
appVersionName = "0.2.1"

# SDK Versions
minSdk = "21"
minSdk = "24"
compileSdk = "36"
targetSdk = "36"
javaVersion = "21"
jvmVersion = "JVM_21"

agp = "8.13.1"
androidx-activity = "1.12.0"
agp = "8.13.2"
androidx-activity = "1.12.2"
androidx-appcompat = "1.7.1"
androidx-core = "1.17.0"
androidx-espresso = "3.7.0"
androidx-lifecycle = "2.9.6"
androidx-testExt = "1.3.0"
composeHotReload = "1.0.0-rc04"
composeMultiplatform = "1.9.3"
junit = "4.13.2"
kotlin = "2.2.21"
kotlin = "2.3.0"
kotlinx-coroutines = "1.10.2"
kotlinStdlib = "2.2.21"
kotlinStdlib = "2.3.0"
runner = "1.7.0"
core = "1.7.0"
maven-publish = "0.35.0"
kotlinx-datetime = "0.7.1"
cedar-logging = "0.2.2"

[libraries]
androidx-rules = { module = "androidx.test:rules", version.ref = "runner" }
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
junit = { module = "junit:junit", version.ref = "junit" }
Expand All @@ -52,7 +52,6 @@ cedar-logging = { group = "org.kimplify", name = "cedar-logging", version.ref =
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
Expand Down
39 changes: 19 additions & 20 deletions kotlin-js-store/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1024,10 +1024,10 @@ engine.io@~6.6.0:
engine.io-parser "~5.2.1"
ws "~8.17.1"

enhanced-resolve@^5.17.2:
version "5.18.3"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44"
integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==
enhanced-resolve@^5.17.3:
version "5.18.4"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz#c22d33055f3952035ce6a144ce092447c525f828"
integrity sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.2.0"
Expand Down Expand Up @@ -1718,10 +1718,9 @@ karma-webpack@5.0.1:
minimatch "^9.0.3"
webpack-merge "^4.1.5"

karma@6.4.4:
"karma@github:Kotlin/karma#6.4.5":
version "6.4.4"
resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492"
integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==
resolved "https://codeload.github.com/Kotlin/karma/tar.gz/239a8fc984584f0d96b1dd750e7a5e2c79da93a6"
dependencies:
"@colors/colors" "1.5.0"
body-parser "^1.19.0"
Expand Down Expand Up @@ -1753,10 +1752,10 @@ kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==

kotlin-web-helpers@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.1.0.tgz#6cd4b0f0dc3baea163929c8638155b8d19c55a74"
integrity sha512-NAJhiNB84tnvJ5EQx7iER3GWw7rsTZkX9HVHZpe7E3dDBD/dhTzqgSwNU3MfQjniy2rB04bP24WM9Z32ntUWRg==
kotlin-web-helpers@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-3.0.0.tgz#3ed6b48f694f74bb60a737a9d7e2c0e3b29abdb9"
integrity sha512-kdQO4AJQkUPvpLh9aglkXDRyN+CfXO7pKq+GESEnxooBFkQpytLrqZis3ABvmFN1cGw/ZQ/K38u5sRGW+NfBnw==
dependencies:
format-util "^1.0.5"

Expand Down Expand Up @@ -1931,10 +1930,10 @@ mkdirp@^0.5.5:
dependencies:
minimist "^1.2.6"

mocha@11.7.1:
version "11.7.1"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.1.tgz#91948fecd624fb4bd154ed260b7e1ad3910d7c7a"
integrity sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A==
mocha@11.7.2:
version "11.7.2"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.2.tgz#3c0079fe5cc2f8ea86d99124debcc42bb1ab22b5"
integrity sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ==
dependencies:
browser-stdout "^1.3.1"
chokidar "^4.0.1"
Expand Down Expand Up @@ -2885,10 +2884,10 @@ webpack-sources@^3.3.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723"
integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==

webpack@5.100.2:
version "5.100.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8"
integrity sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==
webpack@5.101.3:
version "5.101.3"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.3.tgz#3633b2375bb29ea4b06ffb1902734d977bc44346"
integrity sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==
dependencies:
"@types/eslint-scope" "^3.7.7"
"@types/estree" "^1.0.8"
Expand All @@ -2900,7 +2899,7 @@ webpack@5.100.2:
acorn-import-phases "^1.0.3"
browserslist "^4.24.0"
chrome-trace-event "^1.0.2"
enhanced-resolve "^5.17.2"
enhanced-resolve "^5.17.3"
es-module-lexer "^1.2.1"
eslint-scope "5.1.1"
events "^3.2.0"
Expand Down
47 changes: 8 additions & 39 deletions kurrency-compose/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
@file:OptIn(ExperimentalWasmDsl::class)

import com.android.build.api.dsl.androidLibrary
Comment thread
Merkost marked this conversation as resolved.
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.androidKotlinMultiplatformLibrary)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.maven.publish)
}

kotlin {
androidTarget {
androidLibrary {
namespace = "org.kimplify.kurrency.compose"
compileSdk = libs.versions.compileSdk.get().toInt()
minSdk = libs.versions.minSdk.get().toInt()

compilations.configureEach {
compileTaskProvider.get().compilerOptions {
jvmTarget.set(JvmTarget.valueOf(libs.versions.jvmVersion.get()))
Expand Down Expand Up @@ -61,45 +66,9 @@ kotlin {

val androidMain by getting {
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation(libs.androidx.core.ktx)
}
}

val jvmMain by getting

val wasmJsMain by getting
val jsMain by getting

val webMain by creating {
dependsOn(commonMain)
wasmJsMain.dependsOn(this)
jsMain.dependsOn(this)
}

val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting

val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
}
}

android {
namespace = "org.kimplify.kurrency.compose"
compileSdk = 36

defaultConfig {
minSdk = 24
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}

Expand Down
88 changes: 29 additions & 59 deletions kurrency-core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
@file:OptIn(ExperimentalWasmDsl::class)

import com.android.build.api.dsl.androidLibrary
Comment thread
Merkost marked this conversation as resolved.
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.androidKotlinMultiplatformLibrary)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.maven.publish)
}

kotlin {
androidTarget {
androidLibrary {
namespace = "org.kimplify.kurrency.core"
compileSdk = libs.versions.compileSdk.get().toInt()
minSdk = libs.versions.minSdk.get().toInt()

withDeviceTest {
instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
execution = "ANDROIDX_TEST_ORCHESTRATOR"
}
withHostTest {
isIncludeAndroidResources = true
}

compilations.configureEach {
compileTaskProvider.get().compilerOptions {
jvmTarget.set(JvmTarget.valueOf(libs.versions.jvmVersion.get()))
Expand Down Expand Up @@ -40,17 +53,14 @@ kotlin {
iosTarget.binaries.framework {
baseName = "Kurrency"
isStatic = true
export(libs.cedar.logging)
}
}

sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
api(libs.cedar.logging)
}
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(libs.cedar.logging)
Comment thread
Merkost marked this conversation as resolved.
}

val commonTest by getting {
Expand All @@ -61,59 +71,18 @@ kotlin {

val androidMain by getting {
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
}
}

val androidInstrumentedTest by getting {
dependencies {
implementation("androidx.test.ext:junit:1.2.1")
implementation("androidx.test:runner:1.6.2")
implementation("androidx.test:rules:1.6.1")
implementation(libs.kotlin.test)
implementation(libs.androidx.core.ktx)
}
}

val jvmMain by getting

val wasmJsMain by getting
val jsMain by getting

val webMain by creating {
dependsOn(commonMain)
wasmJsMain.dependsOn(this)
jsMain.dependsOn(this)
androidInstrumentedTest.dependencies {
implementation(libs.androidx.testExt.junit)
implementation(libs.androidx.runner)
implementation(libs.androidx.rules)
implementation(libs.kotlin.test)
}

val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting

val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
}
}

android {
namespace = "org.kimplify.kurrency"
compileSdk = 36

defaultConfig {
minSdk = 24
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

testOptions {
unitTests.isIncludeAndroidResources = false
iosMain.dependencies {}
}
}

Expand All @@ -126,7 +95,8 @@ mavenPublishing {

pom {
name = "Kurrency"
description = "A Kotlin Multiplatform library for currency formatting and handling across Android, iOS, JVM, and Web platforms"
description =
"A Kotlin Multiplatform library for currency formatting and handling across Android, iOS, JVM, and Web platforms"
url = "https://github.com/Kimplify/Kurrency"

licenses {
Expand Down Expand Up @@ -154,4 +124,4 @@ mavenPublishing {
url = "https://github.com/Kimplify/Kurrency"
}
}
}
}
Loading
Loading