From 25fa628dcbbc82368cfca0cdb2c2de9a1779e504 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Wed, 6 Aug 2025 13:06:12 +0200 Subject: [PATCH 1/3] Update core extension to 0.4.3 --- .github/workflows/test.yml | 2 +- .../kotlin/com/powersync/DatabaseDriverFactory.tvos.kt | 7 +++++++ gradle/libs.versions.toml | 2 +- plugins/build-plugin/src/main/kotlin/SharedBuildPlugin.kt | 1 + .../src/main/kotlin/com/powersync/compile/ClangCompile.kt | 5 +++++ .../main/kotlin/com/powersync/plugins/utils/KmpUtils.kt | 4 ++++ 6 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 core/src/tvosMain/kotlin/com/powersync/DatabaseDriverFactory.tvos.kt diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 38d623bb..cfb90b0c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: - os: windows-latest targets: jvmTest runs-on: ${{ matrix.os }} - timeout-minutes: 15 + timeout-minutes: 20 steps: - uses: actions/checkout@v4 diff --git a/core/src/tvosMain/kotlin/com/powersync/DatabaseDriverFactory.tvos.kt b/core/src/tvosMain/kotlin/com/powersync/DatabaseDriverFactory.tvos.kt new file mode 100644 index 00000000..2f2c759c --- /dev/null +++ b/core/src/tvosMain/kotlin/com/powersync/DatabaseDriverFactory.tvos.kt @@ -0,0 +1,7 @@ +package com.powersync + +import co.touchlab.sqliter.DatabaseConnection + +internal actual fun DatabaseConnection.loadPowerSyncSqliteCoreExtension() { + loadPowerSyncSqliteCoreExtensionDynamically() +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3104e356..18886fe0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ kotlinx-datetime = "0.7.1" kotlinx-io = "0.8.0" ktor = "3.2.3" uuid = "0.8.4" -powersync-core = "0.4.2" +powersync-core = "0.4.3" sqlite-jdbc = "3.50.3.0" sqliter = "1.3.3" turbine = "1.2.1" diff --git a/plugins/build-plugin/src/main/kotlin/SharedBuildPlugin.kt b/plugins/build-plugin/src/main/kotlin/SharedBuildPlugin.kt index 7cf32739..7905d11f 100644 --- a/plugins/build-plugin/src/main/kotlin/SharedBuildPlugin.kt +++ b/plugins/build-plugin/src/main/kotlin/SharedBuildPlugin.kt @@ -62,6 +62,7 @@ class SharedBuildPlugin : Plugin { // We're testing on simulators Family.IOS -> "ios-arm64_x86_64-simulator" Family.WATCHOS -> "watchos-arm64_x86_64-simulator" + Family.TVOS -> "tvos-arm64_x86_64-simulator" else -> return@configureEach } diff --git a/plugins/build-plugin/src/main/kotlin/com/powersync/compile/ClangCompile.kt b/plugins/build-plugin/src/main/kotlin/com/powersync/compile/ClangCompile.kt index 749def36..e51df1bc 100644 --- a/plugins/build-plugin/src/main/kotlin/com/powersync/compile/ClangCompile.kt +++ b/plugins/build-plugin/src/main/kotlin/com/powersync/compile/ClangCompile.kt @@ -68,6 +68,9 @@ abstract class ClangCompile: DefaultTask() { KonanTarget.WATCHOS_ARM64 -> "arm64_32-apple-watchos" to WATCHOS_SDK KonanTarget.WATCHOS_SIMULATOR_ARM64 -> "aarch64-apple-watchos-simulator" to WATCHOS_SIMULATOR_SDK KonanTarget.WATCHOS_X64 -> "x86_64-apple-watchos-simulator" to WATCHOS_SIMULATOR_SDK + KonanTarget.TVOS_ARM64 -> "aarch64-apple-tvos" to TVOS_SDK + KonanTarget.TVOS_X64 -> "x86_64-apple-tvos-simulator" to TVOS_SIMULATOR_SDK + KonanTarget.TVOS_SIMULATOR_ARM64 -> "aarch64-apple-tvos-simulator" to TVOS_SIMULATOR_SDK else -> error("Unexpected target $target") } @@ -104,6 +107,8 @@ abstract class ClangCompile: DefaultTask() { const val WATCHOS_SIMULATOR_SDK = "Platforms/WatchSimulator.platform/Developer/SDKs/WatchSimulator.sdk/" const val IOS_SDK = "Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" const val IOS_SIMULATOR_SDK = "Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk" + const val TVOS_SDK = "Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk" + const val TVOS_SIMULATOR_SDK = "Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk" const val MACOS_SDK = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/" } } diff --git a/plugins/sonatype/src/main/kotlin/com/powersync/plugins/utils/KmpUtils.kt b/plugins/sonatype/src/main/kotlin/com/powersync/plugins/utils/KmpUtils.kt index 416b79f5..2e7f145e 100644 --- a/plugins/sonatype/src/main/kotlin/com/powersync/plugins/utils/KmpUtils.kt +++ b/plugins/sonatype/src/main/kotlin/com/powersync/plugins/utils/KmpUtils.kt @@ -45,6 +45,10 @@ public fun KotlinTargetContainerWithPresetFunctions.powersyncTargets( macosX64() macosArm64() + tvosSimulatorArm64() + tvosX64() + tvosArm64() + if (watchOS) { watchosDeviceArm64() // aarch64-apple-watchos watchosArm64() // arm64_32-apple-watchos From a0e1396a638af7bc049e2343b46d510d421e21b0 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Wed, 6 Aug 2025 16:58:58 +0200 Subject: [PATCH 2/3] Update core extension to 0.4.4 --- 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 18886fe0..c91b3aae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ kotlinx-datetime = "0.7.1" kotlinx-io = "0.8.0" ktor = "3.2.3" uuid = "0.8.4" -powersync-core = "0.4.3" +powersync-core = "0.4.4" sqlite-jdbc = "3.50.3.0" sqliter = "1.3.3" turbine = "1.2.1" From dd4ff65ed3356612dffe8bc5212af41599be5455 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Wed, 6 Aug 2025 17:06:53 +0200 Subject: [PATCH 3/3] Also test on tvOS simulator --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cfb90b0c..a618511c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: matrix: include: - os: macos-latest - targets: iosSimulatorArm64Test macosArm64Test watchosSimulatorArm64Test jvmTest + targets: iosSimulatorArm64Test macosArm64Test watchosSimulatorArm64Test tvosSimulatorArm64Test jvmTest - os: ubuntu-latest targets: testDebugUnitTest testReleaseUnitTest jvmTest lintKotlin - os: windows-latest