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
47 changes: 20 additions & 27 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,24 @@ on:
jobs:
build:
name: Build & Test
runs-on: macos-13
runs-on: macos-15
steps:
- name: Checkout workspace
uses: actions/checkout@v3
uses: actions/checkout@v4
timeout-minutes: 5
with:
fetch-depth: 0 # no shallow clones for SonarQube
fetch-depth: 0
- name: Set up Java JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17.0.13+11'
- name: Select XCode 15.2
java-version: '17.0.15+6'
- name: Select XCode 16.3
run: |
sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer
xcodebuild -version
- name: Gradle Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
Expand All @@ -39,36 +39,29 @@ jobs:
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }}
restore-keys: ${{ runner.os }}-gradle-
- name: Kotlin Native Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.konan
key: ${{ runner.os }}-konan-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }}
restore-keys: ${{ runner.os }}-konan-
- name: Android Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.android
key: ${{ runner.os }}-android-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'build.gradle.kts') }}
restore-keys: ${{ runner.os }}-android-
- name: Cache SonarCloud packages
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Build & Test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
chmod +x ./gradlew
./gradlew build test koverXmlReport detekt sonar assembleXCFramework --parallel
./gradlew build test detekt assembleXCFramework --parallel
- name: Set RELEASE_VERSION variable
run: |
echo "RELEASE_VERSION=$(cat build/version.txt)" >> $GITHUB_ENV
echo ${{ env.RELEASE_VERSION }}
- name: Upload reports
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: reports.zip
Expand All @@ -77,49 +70,49 @@ jobs:
run: |
ls -lah build/bin/*/releaseExecutable build/libs/ build/outputs/aar/ build/XCFrameworks/release/
- name: Upload xmpcore.jar
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore.jar
path: build/libs/xmpcore-jvm-${{ env.RELEASE_VERSION }}.jar
- name: Upload xmpcore.aar
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore.aar
path: build/outputs/aar/xmpcore-release.aar
- name: Upload xmpcore.xcframework
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore.xcframework
path: build/XCFrameworks/release/xmpcore.xcframework
- name: Upload xmpcore.exe
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore.exe
path: build/bin/win/releaseExecutable/xmpcore.exe
- name: Upload xmpcore-macosX64.kexe
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore-macosX64.kexe
path: build/bin/macosX64/releaseExecutable/xmpcore.kexe
- name: Upload xmpcore-macosArm64.kexe
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore-macosArm64.kexe
path: build/bin/macosArm64/releaseExecutable/xmpcore.kexe
- name: Upload xmpcore-linuxArm64.kexe
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore-linuxArm64.kexe
path: build/bin/linuxArm64/releaseExecutable/xmpcore.kexe
- name: Upload xmpcore-linuxX64.kexe
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: xmpcore-linuxX64.kexe
Expand Down
55 changes: 0 additions & 55 deletions .github/workflows/pages.yml

This file was deleted.

6 changes: 6 additions & 0 deletions .idea/AndroidProjectSystem.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions .idea/runConfigurations/Create_Kover_report.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# XMP Core for Kotlin Multiplatform

[![Kotlin](https://img.shields.io/badge/kotlin-2.1.10-blue.svg?logo=kotlin)](httpw://kotlinlang.org)
[![Kotlin](https://img.shields.io/badge/kotlin-2.1.21-blue.svg?logo=kotlin)](httpw://kotlinlang.org)
![JVM](https://img.shields.io/badge/-JVM-gray.svg?style=flat)
![Android](https://img.shields.io/badge/-Android-gray.svg?style=flat)
![iOS](https://img.shields.io/badge/-iOS-gray.svg?style=flat)
Expand All @@ -10,7 +10,6 @@
![JS](https://img.shields.io/badge/-JS-gray.svg?style=flat)
![WASM](https://img.shields.io/badge/-WASM-gray.svg?style=flat)
![WASI](https://img.shields.io/badge/-WASI-gray.svg?style=flat)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=xmpcore&metric=coverage)](https://sonarcloud.io/summary/new_code?id=xmpcore)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.ashampoo/xmpcore)

This library is a port of Adobe's XMP SDK to Kotlin Multiplatform by Ashampoo.
Expand All @@ -20,7 +19,7 @@ It's part of [Ashampoo Photo Organizer](https://ashampoo.com/photo-organizer).
## Installation

```
implementation("com.ashampoo:xmpcore:1.5.1")
implementation("com.ashampoo:xmpcore:1.5.2")
```

## How to use
Expand Down
57 changes: 10 additions & 47 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,16 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework

plugins {
kotlin("multiplatform") version "2.1.10"
id("com.android.library") version "8.5.0"
kotlin("multiplatform") version "2.1.21"
id("com.android.library") version "8.9.2"
id("maven-publish")
id("signing")
id("io.gitlab.arturbosch.detekt") version "1.23.7"
id("org.sonarqube") version "4.3.1.3277"
id("org.jetbrains.kotlinx.kover") version "0.6.1"
id("com.asarkar.gradle.build-time-tracker") version "4.3.0"
id("io.gitlab.arturbosch.detekt") version "1.23.8"
id("org.jetbrains.kotlinx.kover") version "0.9.1"
id("com.asarkar.gradle.build-time-tracker") version "5.0.1"
id("me.qoomon.git-versioning") version "6.4.4"
id("com.goncalossilva.resources") version "0.10.0"
id("com.github.ben-manes.versions") version "0.51.0"
id("org.jetbrains.dokka") version "1.9.20"
id("com.github.ben-manes.versions") version "0.52.0"
}

repositories {
Expand All @@ -24,8 +22,8 @@ repositories {

val productName = "Ashampoo XMP Core"

val xmlUtilVersion: String = "0.90.3"
val kotlinIoVersion: String = "0.6.0"
val xmlUtilVersion: String = "0.91.1"
val kotlinxIoVersion: String = "0.7.0"

description = productName
group = "com.ashampoo"
Expand All @@ -51,41 +49,11 @@ gitVersioning.apply {
}

apply(plugin = "io.gitlab.arturbosch.detekt")
apply(plugin = "org.sonarqube")
apply(plugin = "kover")

buildTimeTracker {
sortBy.set(com.asarkar.gradle.buildtimetracker.Sort.DESC)
}

sonar {
properties {

property("sonar.projectKey", "xmpcore")
property("sonar.projectName", productName)
property("sonar.organization", "ashampoo")
property("sonar.host.url", "https://sonarcloud.io")

property(
"sonar.sources",
listOf(
"./src/commonMain/kotlin",
"./src/posixMain/kotlin"
)
)
property(
"sonar.tests",
listOf(
"./src/commonTest/kotlin"
)
)

property("sonar.android.lint.report", "build/reports/lint-results.xml")
property("sonar.kotlin.detekt.reportPaths", "build/reports/detekt/detekt.xml")
property("sonar.coverage.jacoco.xmlReportPaths", "build/reports/kover/xml/report.xml")
}
}

detekt {
source.from("src", "build.gradle.kts")
allRules = true
Expand All @@ -98,13 +66,8 @@ detekt {
kover {
}

koverMerged {
xmlReport {
}
}

dependencies {
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.7")
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.23.8")
}

kotlin {
Expand Down Expand Up @@ -180,7 +143,7 @@ kotlin {
implementation(kotlin("test"))

/* Multiplatform file access */
implementation("org.jetbrains.kotlinx:kotlinx-io-core:$kotlinIoVersion")
implementation("org.jetbrains.kotlinx:kotlinx-io-core:$kotlinxIoVersion")
}
}

Expand Down
8 changes: 4 additions & 4 deletions detekt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ comments:
complexity:
active: true
CognitiveComplexMethod:
active: false # already checked by SonarQube
active: true
threshold: 15
ComplexCondition:
active: true
Expand All @@ -108,7 +108,7 @@ complexity:
includePrivateDeclarations: false
ignoreOverloaded: false
CyclomaticComplexMethod:
active: false # already checked by SonarQube
active: true
threshold: 15
ignoreSingleWhenExpression: false
ignoreSimpleWhenEntries: false
Expand All @@ -133,8 +133,8 @@ complexity:
active: true
threshold: 60
LongParameterList:
active: false # already checked by SonarQube
functionThreshold: 7 # 7 is SonarQube default
active: true
functionThreshold: 7
constructorThreshold: 7
ignoreDefaultParameters: false
ignoreDataClasses: true
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion src/commonMain/kotlin/com/ashampoo/xmp/XMPVersionInfo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public object XMPVersionInfo {

public const val MAJOR: Int = 1
public const val MINOR: Int = 5
public const val PATCH: Int = 1
public const val PATCH: Int = 2

public const val VERSION_MESSAGE: String =
"Ashampoo XMP Core $MAJOR.$MINOR.$PATCH"
Expand Down
Loading