From 0b66ea99606b4f14116c5aa4daddab3b4e647838 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Apr 2025 18:23:36 +0000 Subject: [PATCH 1/9] Bump com.android.library from 8.7.3 to 8.9.1 Bumps com.android.library from 8.7.3 to 8.9.1. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0f74a6b..f640f01 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.1.20" # DO NOT INCREASE UNTIL GITLIVE UPDATES THEIR KOTLIN VERSION -agp = "8.7.3" +agp = "8.9.1" bcv = "0.17.0" dokka = "2.0.0" kover = "0.9.1" From 51142752c7b8153a0f5952fe174b54709503c1fe Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:24:30 -0400 Subject: [PATCH 2/9] Init for v0.2.6-beta01 --- .gitignore | 4 +++- build.gradle.kts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3746988..0970a1e 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,6 @@ replay_pid* # Self-imposed .idea/ .gradle/ -docs/ \ No newline at end of file +docs/ +build/ +*/build/ \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b60aadf..f80ab89 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ dependencies { allprojects { group = "app.lexilabs.basic" - version = "0.2.5" + version = "0.2.6-beta01" apply(plugin = "org.jetbrains.dokka") apply(plugin = "maven-publish") From b5de4bd00f4db469b6068f689728dfaefab6630d Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:33:26 -0400 Subject: [PATCH 3/9] Updated README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e61d97..afbff99 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # Basic-Logging -basic +basic -[Basic-Logging](#basic-logging) [![Maven Central](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-logging?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-logging) +![GitHub License](https://img.shields.io/github/license/lexilabs-app/basic-logging) +![GitHub Release Date](https://img.shields.io/github/release-date/lexilabs-app/basic-logging) +[![Maven Central](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-logging?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-logging) +[![Kotlin](https://img.shields.io/badge/Kotlin-2.0.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) A Kotlin Multiplatform library to rapidly add logging to any project. From f0e7927e1a9ef0dc0ab1a62bce51834a698e73d4 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:35:01 -0400 Subject: [PATCH 4/9] Updated Kotlin Version in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afbff99..de5bfa9 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![GitHub License](https://img.shields.io/github/license/lexilabs-app/basic-logging) ![GitHub Release Date](https://img.shields.io/github/release-date/lexilabs-app/basic-logging) [![Maven Central](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-logging?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-logging) -[![Kotlin](https://img.shields.io/badge/Kotlin-2.0.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) +[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.20-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) A Kotlin Multiplatform library to rapidly add logging to any project. From f75a9b6fec24858393909c653b48eea24d23d501 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:21:12 -0400 Subject: [PATCH 5/9] Updated Gradle to 8.13 Updated AGP to 8.9.1 --- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 3 +-- gradlew | 9 +++++---- gradlew.bat | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0f74a6b..f640f01 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.1.20" # DO NOT INCREASE UNTIL GITLIVE UPDATES THEIR KOTLIN VERSION -agp = "8.7.3" +agp = "8.9.1" bcv = "0.17.0" dokka = "2.0.0" kover = "0.9.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 714e90f..37f853b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ -#Tue Oct 22 11:38:10 EDT 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index ad93365..faf9300 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,3 @@ - #!/bin/sh # @@ -16,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -56,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -85,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -204,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/gradlew.bat b/gradlew.bat index 5c2a58c..9d21a21 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,3 @@ - @rem @rem Copyright 2015 the original author or authors. @rem @@ -14,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## From d8093ece05f60dc9f3835e2f9acd1283a3131971 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:47:39 -0400 Subject: [PATCH 6/9] Removed "main" branch from publishing scope --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 359e7af..97192f4 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -2,7 +2,7 @@ name: Publish on: push: - branches: [main, publishing] + branches: [ publishing ] # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: From 5b2d4938adf986f2124ff14e8286afae43752e68 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Wed, 9 Apr 2025 23:14:05 -0400 Subject: [PATCH 7/9] HOTFIX for bug --- basic-logging/build.gradle.kts | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/basic-logging/build.gradle.kts b/basic-logging/build.gradle.kts index 6278ecf..332a352 100644 --- a/basic-logging/build.gradle.kts +++ b/basic-logging/build.gradle.kts @@ -97,7 +97,7 @@ android { compileSdk = 35 defaultConfig { - minSdk = 1 // was 24 + minSdk = 4 // was 24 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 diff --git a/build.gradle.kts b/build.gradle.kts index f80ab89..7ae32e3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ dependencies { allprojects { group = "app.lexilabs.basic" - version = "0.2.6-beta01" + version = "0.2.6-beta02" apply(plugin = "org.jetbrains.dokka") apply(plugin = "maven-publish") From a3add4ea371f0c347d30ee52b33a4f014e6296ba Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Fri, 25 Apr 2025 22:45:18 -0400 Subject: [PATCH 8/9] V0.2.6 beta03 (#14) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * V0.2.6 beta03 (#9) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * HOTFIX - Wasm logger redesigned again. Updated API dump * V0.2.6 beta03 (#10) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * HOTFIX - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * HOTFIX #2 - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish.yaml | 33 +---------------- README.md | 8 ++-- .../app/lexilabs/basic/logging/Connectors.kt | 15 ++++++++ .../app/lexilabs/basic/logging/Log.wasmJs.kt | 26 ++++--------- .../src/wasmJsMain/resources/logger.js | 19 ++++++++++ build.gradle.kts | 37 +++++++++++++------ gradle/libs.versions.toml | 8 +++- images/logo-icon.svg | 16 ++++++++ 8 files changed, 96 insertions(+), 66 deletions(-) create mode 100644 basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Connectors.kt create mode 100644 basic-logging/src/wasmJsMain/resources/logger.js create mode 100644 images/logo-icon.svg diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 97192f4..fe1a3e2 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -24,34 +24,12 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Write test variable to local.properties - if: ${{ github.event_name != 'pull_request' }} - run: | - echo test="${TEST}" >> local.properties - env: - TEST: ${{ vars.TEST }} - - name: Setup gradle uses: gradle/gradle-build-action@v2 - name: Check api run: ./gradlew apiCheck - - name: Generate kover coverage report - run: ./gradlew koverXmlReport - - - name: Add coverage report to PR - if: ${{ github.event_name == 'pull_request' }} - id: kover - uses: mi-kas/kover-report@v1 - with: - path: ${{ github.workspace }}/basic-logging/build/reports/kover/report.xml - token: ${{ secrets.GITHUB_TOKEN }} - title: Code Coverage - update-comment: true - min-coverage-overall: 00 - min-coverage-changed-files: 00 - release: name: Release to Sonatype if: ${{ github.event_name != 'pull_request' }} @@ -79,9 +57,7 @@ jobs: echo gpgKeyId="${GPG_KEY_ID}" >> "local.properties" echo gpgKeySecret="${GPG_KEY_SECRET}" >> "local.properties" echo gpgKeyPassword="${GPG_KEY_PASSWORD}" >> "local.properties" - echo test="${TEST}" >> local.properties env: - TEST: ${{ vars.TEST }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} @@ -116,17 +92,12 @@ jobs: uses: actions/configure-pages@v3 - name: Generate api docs with dokka - run: ./gradlew dokkaHtmlMultiModule - - - name: Move dokka api-doc to docs - run: | - sudo mkdir -p build/docs - sudo mv build/dokka/htmlMultiModule/* build/docs + run: ./gradlew dokkaHtml - name: Upload pages uses: actions/upload-pages-artifact@v3 with: - path: build/docs + path: docs - name: Release to GitHub Pages id: deployment diff --git a/README.md b/README.md index de5bfa9..2e2464b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Basic-Logging -basic +basic ![GitHub License](https://img.shields.io/github/license/lexilabs-app/basic-logging) ![GitHub Release Date](https://img.shields.io/github/release-date/lexilabs-app/basic-logging) -[![Maven Central](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-logging?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-logging) +[![Latest Release](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-logging?color=blue)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-logging) [![Kotlin](https://img.shields.io/badge/Kotlin-2.1.20-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) A Kotlin Multiplatform library to rapidly add logging to any project. @@ -14,8 +14,8 @@ A Kotlin Multiplatform library to rapidly add logging to any project. ![badge-watchos](http://img.shields.io/badge/watchos-full_support-65c663.svg?style=flat) ![badge-tvos](http://img.shields.io/badge/tvos-full_support-65c663.svg?style=flat) ![badge-nodejs](https://img.shields.io/badge/jsNode-full_support-65c663.svg?style=flat) -![badge-jsBrowser](https://img.shields.io/badge/jsBrowser-full_support-65c663.svg?style=flat) -![badge-wasmJsBrowser](https://img.shields.io/badge/wasmJsBrowser-full_support-65c663.svg?style=flat) +![badge-javascript](https://img.shields.io/badge/jsBrowser-full_support-65c663.svg?style=flat) +![badge-wasm](https://img.shields.io/badge/wasmJsBrowser-full_support-65c663.svg?style=flat) ![badge-jvm](http://img.shields.io/badge/jvm-full_support-65c663.svg?style=flat) ![badge-linux](http://img.shields.io/badge/linux-full_support-65c663.svg?style=flat) ![badge-windows](http://img.shields.io/badge/windows-full_support-65c663.svg?style=flat) diff --git a/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Connectors.kt b/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Connectors.kt new file mode 100644 index 0000000..846cd08 --- /dev/null +++ b/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Connectors.kt @@ -0,0 +1,15 @@ +@file:JsModule("logger.js") + +package app.lexilabs.basic.logging + +@JsFun("(message) => console.debug(message)") +public external fun debug(message: String): Unit = definedExternally + +@JsFun("(message) => console.log(message)") +public external fun log(message: String): Unit = definedExternally + +@JsFun("(message) => console.warn(message)") +public external fun warn(message: String): Unit = definedExternally + +@JsFun("(message) => console.error(message)") +public external fun error(message: String): Unit = definedExternally diff --git a/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Log.wasmJs.kt b/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Log.wasmJs.kt index 964eec6..7990d8b 100644 --- a/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Log.wasmJs.kt +++ b/basic-logging/src/wasmJsMain/kotlin/app/lexilabs/basic/logging/Log.wasmJs.kt @@ -1,26 +1,16 @@ package app.lexilabs.basic.logging public actual object Log : Logger { - actual override fun v(tag: String, message: String) { - println("VERBOSE: [$tag] $message") - } - actual override fun d(tag: String, message: String) { - println("DEBUG: [$tag] $message") - } + actual override fun v(tag: String, message: String): Unit = debug("[$tag] $message") - actual override fun i(tag: String, message: String) { - println("INFO: [$tag] $message") - } + actual override fun d(tag: String, message: String): Unit = debug("[$tag] $message") - actual override fun w(tag: String, message: String) { - println("WARN: [$tag] $message") - } + actual override fun i(tag: String, message: String): Unit = log("[$tag] $message") - actual override fun e(tag: String, message: String) { - println("ERROR: [$tag] $message") - } - actual override fun wtf(tag: String, message: String) { - println("WHAT-THE-F***: [$tag] $message") - } + actual override fun w(tag: String, message: String): Unit = warn("[$tag] $message") + + actual override fun e(tag: String, message: String): Unit = error("[$tag] $message") + + actual override fun wtf(tag: String, message: String): Unit = error("WHAT-THE-F***: [$tag] $message") } \ No newline at end of file diff --git a/basic-logging/src/wasmJsMain/resources/logger.js b/basic-logging/src/wasmJsMain/resources/logger.js new file mode 100644 index 0000000..1500b56 --- /dev/null +++ b/basic-logging/src/wasmJsMain/resources/logger.js @@ -0,0 +1,19 @@ +function debug (tag, message) { + console.debug("[" + tag + "] " + message); +} + +function info (tag, message) { + console.log("[" + tag + "] " + message); +} + +function warn (tag, message) { + console.warn("[" + tag + "] " + message); +} + +function error (tag, message) { + console.error("[" + tag + "] " + message); +} + +function whatTheF (tag, message) { + console.error("WHAT-THE-F***: [" + tag + "] " + message); +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 7ae32e3..2ced4d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,7 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties +import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.base.DokkaBaseConfiguration +import org.jetbrains.dokka.gradle.DokkaTask plugins { alias(libs.plugins.multiplatform).apply(false) @@ -11,9 +14,15 @@ dependencies { kover(project(":basic-logging")) } +buildscript { + dependencies { + classpath(libs.dokka.base) + } +} + allprojects { group = "app.lexilabs.basic" - version = "0.2.6-beta02" + version = rootProject.libs.versions.logging.get() apply(plugin = "org.jetbrains.dokka") apply(plugin = "maven-publish") @@ -39,17 +48,23 @@ allprojects { /** dokka generation **/ tasks.register("clearDokkaHtml") { - delete("${projectDir.parent}/docs/${project.name}") + delete("${projectDir.parent}/docs") } - tasks.dokkaHtml { - dependsOn("clearDokkaHtml") - outputDirectory.set(file("${projectDir.parent}/docs/${project.name}")) - moduleName.set(project.name) - moduleVersion.set(project.version.toString()) - failOnWarning.set(false) - suppressObviousFunctions.set(true) - suppressInheritedMembers.set(false) - offlineMode.set(false) + tasks.withType().configureEach{ + pluginConfiguration { + dependsOn("clearDokkaHtml") + outputDirectory = file("${projectDir.parent}/docs") + moduleName = project.name + moduleVersion = project.version.toString() + customAssets = listOf(file("${projectDir.parent}/images/logo-icon.svg")) + // Need to create a cool looking theme at some point + //customStyleSheets = listOf(file("${projectDir.parent}/dokka/styles.css")) + footerMessage = "(c) 2025 LexiLabs" + failOnWarning = false + suppressObviousFunctions = true + suppressInheritedMembers = false + offlineMode = false + } } publications { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f640f01..b4036c1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,14 @@ [versions] -kotlin = "2.1.20" # DO NOT INCREASE UNTIL GITLIVE UPDATES THEIR KOTLIN VERSION -agp = "8.9.1" +logging = "0.2.6-beta03" +kotlin = "2.1.21-RC" +agp = "8.9.2" bcv = "0.17.0" dokka = "2.0.0" kover = "0.9.1" +[libraries] +dokka-base = { module = "org.jetbrains.dokka:dokka-base", version.ref = "dokka" } + [plugins] multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } android-library = { id = "com.android.library", version.ref = "agp" } diff --git a/images/logo-icon.svg b/images/logo-icon.svg new file mode 100644 index 0000000..7b22379 --- /dev/null +++ b/images/logo-icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file From 5807aace9287e55e86f2de8b2d70f0f902a71b70 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Tue, 13 May 2025 14:55:39 -0400 Subject: [PATCH 9/9] V0.2.6 (#19) * V0.2.6 beta03 (#9) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * V0.2.6 beta03 (#10) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * HOTFIX - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * V0.2.6 beta03 (#11) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * HOTFIX - Wasm logger redesigned again. Updated API dump * HOTFIX #2 - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * V0.2.6 beta03 (#12) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * HOTFIX - Wasm logger redesigned again. Updated API dump * HOTFIX #2 - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * V0.2.6 beta03 (#13) * Bump com.android.library from 8.9.1 to 8.9.2 Bumps com.android.library from 8.9.1 to 8.9.2. --- updated-dependencies: - dependency-name: com.android.library dependency-version: 8.9.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * COMPLETELY CHANGED WASM CODE kotlin = 2.1.21-RC AGP = 8.9.2 Logging version shifted to TOML catalogue Upgraded Dokka formats Updated image from PNG to SVG Removed a bunch of lame rules in the publish.yaml workflow Improved README.md * HOTFIX - Wasm logger redesigned again. Updated API dump * HOTFIX #2 - Wasm logger redesigned again. Updated API dump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Init v0.2.6 Kotlin = v2.1.21 * Removed old images --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 4 ++-- images/basic.png | Bin 50704 -> 0 bytes images/basic_240.png | Bin 17971 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 images/basic.png delete mode 100644 images/basic_240.png diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b4036c1..6766144 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -logging = "0.2.6-beta03" -kotlin = "2.1.21-RC" +logging = "0.2.6" +kotlin = "2.1.21" agp = "8.9.2" bcv = "0.17.0" dokka = "2.0.0" diff --git a/images/basic.png b/images/basic.png deleted file mode 100644 index ed9320df39f0768a13382a931718deaca3f44f50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50704 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 diff --git a/images/basic_240.png b/images/basic_240.png deleted file mode 100644 index 869e4066c72bdb96db1a13e9ea4628a0915a3065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17971 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