From 4c2c13b626f07aabd9055098af7ebfcbbd84941c Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Mon, 7 Apr 2025 09:36:59 +0200 Subject: [PATCH 01/13] initial api ref --- build.gradle.kts | 45 +++++++++++++++++++++++++++++++++++++++++++ core/build.gradle.kts | 5 +++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index da36a00a..1882f2ea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,9 @@ +import com.sun.net.httpserver.HttpExchange +import com.sun.net.httpserver.HttpServer +import java.net.InetSocketAddress +import java.net.URLDecoder +import java.nio.file.Files + plugins { alias(libs.plugins.jetbrainsCompose) apply false alias(libs.plugins.compose.compiler) apply false @@ -16,6 +22,7 @@ plugins { alias(libs.plugins.kotlinter) apply false alias(libs.plugins.keeper) apply false alias(libs.plugins.kotlin.atomicfu) apply false + id("org.jetbrains.dokka") version "2.0.0" } allprojects { @@ -57,3 +64,41 @@ subprojects { tasks.register("clean") { delete(rootProject.layout.buildDirectory) } + +tasks.register("serveDokka") { + dependsOn("dokkaHtml") + doLast { + val server = HttpServer.create(InetSocketAddress(0), 0) + val root = file("core/build/dokka/html") + + val handler = + com.sun.net.httpserver.HttpHandler { exchange: HttpExchange -> + val rawPath = exchange.requestURI.path + val cleanPath = URLDecoder.decode(rawPath.removePrefix("/"), "UTF-8") + val requestedFile = File(root, cleanPath) + + val file = + when { + requestedFile.exists() && !requestedFile.isDirectory -> requestedFile + else -> File(root, "index.html") // fallback + } + + val contentType = + Files.probeContentType(file.toPath()) ?: "application/octet-stream" + val bytes = file.readBytes() + exchange.responseHeaders.add("Content-Type", contentType) + exchange.sendResponseHeaders(200, bytes.size.toLong()) + exchange.responseBody.use { it.write(bytes) } + } + + server.createContext("/", handler) + server.executor = null + server.start() + + println("📘 Serving Dokka docs at http://localhost:${server.address.port}/") + println("Press Ctrl+C to stop.") + + // Keep the task alive + Thread.currentThread().join() + } +} diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 96f77274..a473ef54 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -21,6 +21,7 @@ plugins { id("com.powersync.plugins.sonatype") alias(libs.plugins.mokkery) alias(libs.plugins.kotlin.atomicfu) + id("org.jetbrains.dokka") } val binariesFolder = project.layout.buildDirectory.dir("binaries/desktop") @@ -315,8 +316,8 @@ android { } androidComponents.onVariants { - tasks.named("preBuild") { - dependsOn(moveJDBCJNIFiles) + tasks.named("preBuild") { + dependsOn(moveJDBCJNIFiles) } } From c2a01156e2567da591644bf2b4a990df64694234 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Tue, 22 Apr 2025 11:21:42 +0200 Subject: [PATCH 02/13] multi module --- connectors/supabase/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/connectors/supabase/build.gradle.kts b/connectors/supabase/build.gradle.kts index 984d62b6..1acf2983 100644 --- a/connectors/supabase/build.gradle.kts +++ b/connectors/supabase/build.gradle.kts @@ -8,6 +8,7 @@ plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.kotlinter) id("com.powersync.plugins.sonatype") + id("org.jetbrains.dokka") } kotlin { From 6c062376cd18f62969767072c6dbfbf33f97ed22 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Tue, 22 Apr 2025 17:55:26 +0200 Subject: [PATCH 03/13] docs --- build.gradle.kts | 27 +++++++++- connectors/supabase/build.gradle.kts | 2 +- core/build.gradle.kts | 16 +++++- docs/assets/discord.svg | 18 +++++++ docs/assets/doc-styles.css | 34 +++++++++++++ .../dokka-templates/includes/footer.ftl | 47 ++++++++++++++++++ docs/assets/github.svg | 22 ++++++++ docs/assets/linkedin.svg | 12 +++++ docs/assets/powersync-logo.png | Bin 0 -> 54518 bytes docs/assets/web.svg | 7 +++ docs/assets/x.svg | 3 ++ docs/assets/youtube.svg | 8 +++ gradle.properties | 2 + 13 files changed, 195 insertions(+), 3 deletions(-) create mode 100644 docs/assets/discord.svg create mode 100644 docs/assets/doc-styles.css create mode 100644 docs/assets/dokka-templates/includes/footer.ftl create mode 100644 docs/assets/github.svg create mode 100644 docs/assets/linkedin.svg create mode 100644 docs/assets/powersync-logo.png create mode 100644 docs/assets/web.svg create mode 100644 docs/assets/x.svg create mode 100644 docs/assets/youtube.svg diff --git a/build.gradle.kts b/build.gradle.kts index 1882f2ea..eb233300 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -61,10 +61,35 @@ subprojects { version = LIBRARY_VERSION } -tasks.register("clean") { +tasks.getByName("clean") { delete(rootProject.layout.buildDirectory) } +buildscript { + dependencies { + classpath("org.jetbrains.dokka:dokka-base:2.0.0") + } +} + +dokka { + pluginsConfiguration.html { + customAssets.from("./docs/assets/powersync-logo.png") + customAssets.from("./docs/assets/discord.svg") + customAssets.from("./docs/assets/github.svg") + customAssets.from("./docs/assets/web.svg") + customAssets.from("./docs/assets/x.svg") + customAssets.from("./docs/assets/youtube.svg") + customAssets.from("./docs/assets/linkedin.svg") + customStyleSheets.from("./docs/assets/doc-styles.css") + templatesDir = file("./docs/assets/dokka-templates") + } +} + +dependencies { + dokka(project(":core:")) + dokka(project(":connectors:supabase")) +} + tasks.register("serveDokka") { dependsOn("dokkaHtml") doLast { diff --git a/connectors/supabase/build.gradle.kts b/connectors/supabase/build.gradle.kts index 1acf2983..5c995b37 100644 --- a/connectors/supabase/build.gradle.kts +++ b/connectors/supabase/build.gradle.kts @@ -8,7 +8,7 @@ plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.kotlinter) id("com.powersync.plugins.sonatype") - id("org.jetbrains.dokka") + id("org.jetbrains.dokka") version "2.0.0" } kotlin { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 753fd561..510c233d 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -20,7 +20,7 @@ plugins { id("com.powersync.plugins.sonatype") alias(libs.plugins.mokkery) alias(libs.plugins.kotlin.atomicfu) - id("org.jetbrains.dokka") + id("org.jetbrains.dokka") version "2.0.0" } val binariesFolder = project.layout.buildDirectory.dir("binaries/desktop") @@ -354,3 +354,17 @@ tasks.withType { } } setupGithubRepository() + +dokka { + pluginsConfiguration.html { + customAssets.from("../docs/assets/powersync-logo.png") + customAssets.from("../docs/assets/discord.svg") + customAssets.from("../docs/assets/github.svg") + customAssets.from("../docs/assets/web.svg") + customAssets.from("../docs/assets/x.svg") + customAssets.from("../docs/assets/youtube.svg") + customAssets.from("../docs/assets/linkedin.svg") + customStyleSheets.from("../docs/assets/doc-styles.css") + templatesDir = file("../docs/assets/dokka-templates") + } +} diff --git a/docs/assets/discord.svg b/docs/assets/discord.svg new file mode 100644 index 00000000..727a2e3e --- /dev/null +++ b/docs/assets/discord.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/docs/assets/doc-styles.css b/docs/assets/doc-styles.css new file mode 100644 index 00000000..3b85dcab --- /dev/null +++ b/docs/assets/doc-styles.css @@ -0,0 +1,34 @@ +:root { + --dokka-logo-image-url: url('../images/powersync-logo.png'); +} + +.footer-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 8px; + margin-top: auto; + box-sizing: border-box; + background-color: var(--footer-background); + color: var(--footer-font-color); +} + +.footer-title { + margin-bottom: 8px; +} + +.footer-column { + flex: 1 1 0; + align-items: center; + text-align: center; + min-width: 300px; + padding: 8px; +} + +.footer-icon-row { + display: flex; + justify-content: center; + align-items: center; + gap: 8px; + flex-wrap: wrap; + } diff --git a/docs/assets/dokka-templates/includes/footer.ftl b/docs/assets/dokka-templates/includes/footer.ftl new file mode 100644 index 00000000..76822cd0 --- /dev/null +++ b/docs/assets/dokka-templates/includes/footer.ftl @@ -0,0 +1,47 @@ +<#macro display> +
+ + + + + +
+ \ No newline at end of file diff --git a/docs/assets/github.svg b/docs/assets/github.svg new file mode 100644 index 00000000..b41d8046 --- /dev/null +++ b/docs/assets/github.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/docs/assets/linkedin.svg b/docs/assets/linkedin.svg new file mode 100644 index 00000000..bf74d81f --- /dev/null +++ b/docs/assets/linkedin.svg @@ -0,0 +1,12 @@ + + + + + + diff --git a/docs/assets/powersync-logo.png b/docs/assets/powersync-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7111c85f1fbd0e8dec9aca120a69f30c994ff5 GIT binary patch literal 54518 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 k|NH+E_ + + + + + + diff --git a/docs/assets/x.svg b/docs/assets/x.svg new file mode 100644 index 00000000..d30639eb --- /dev/null +++ b/docs/assets/x.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/youtube.svg b/docs/assets/youtube.svg new file mode 100644 index 00000000..9245ed8c --- /dev/null +++ b/docs/assets/youtube.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/gradle.properties b/gradle.properties index 6cc158f7..2342df09 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,3 +31,5 @@ POM_DEVELOPER_ID=powersync POM_DEVELOPER_NAME=PowerSync SDK Team POM_DEVELOPER_URL=https://powersync.com/ POM_DEVELOPER_EMAIL=support@journeyapps.com +#Dokka +org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled From 130e5c36b627ffbb34514f0b276b01b310f9529a Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Tue, 22 Apr 2025 18:01:22 +0200 Subject: [PATCH 04/13] update build --- build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index eb233300..bf4f9961 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -85,16 +85,17 @@ dokka { } } +// Merges individual module docs into a single HTML output dependencies { dokka(project(":core:")) dokka(project(":connectors:supabase")) } tasks.register("serveDokka") { - dependsOn("dokkaHtml") + dependsOn("dokkaGenerate") doLast { val server = HttpServer.create(InetSocketAddress(0), 0) - val root = file("core/build/dokka/html") + val root = file("build/dokka/html") val handler = com.sun.net.httpserver.HttpHandler { exchange: HttpExchange -> From 169314995eba1f217e9de44521453f4178930009 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Wed, 23 Apr 2025 10:41:59 +0200 Subject: [PATCH 05/13] docs --- .github/workflows/docs-deploy.yml | 50 + build.gradle.kts | 27 +- connectors/supabase/build.gradle.kts | 5 + core/build.gradle.kts | 14 +- docs/assets/logo-icon.svg | 899 ++++++++++++++++++ gradle/libs.versions.toml | 3 + plugins/build-plugin/build.gradle.kts | 5 +- .../main/kotlin/dokka-convention.gradle.kts | 21 + 8 files changed, 990 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/docs-deploy.yml create mode 100644 docs/assets/logo-icon.svg create mode 100644 plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml new file mode 100644 index 00000000..06b727e2 --- /dev/null +++ b/.github/workflows/docs-deploy.yml @@ -0,0 +1,50 @@ +name: Deploy Docs + +on: + push: + branches: [ 'api-ref', 'main' ] + +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v1 + - uses: actions/cache@v3 + with: + path: ~/.konan + key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Gradle publish + run: | + ./gradlew dokkaGenerate + shell: bash + - name: Upload static files as artifact + id: deployment + uses: actions/upload-pages-artifact@v3 # or specific "vX.X.X" version tag for this action + with: + path: build/dokka/html + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index bf4f9961..87d18b32 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ plugins { alias(libs.plugins.keeper) apply false alias(libs.plugins.kotlin.atomicfu) apply false id("org.jetbrains.dokka") version "2.0.0" + id("dokka-convention") } allprojects { @@ -65,32 +66,18 @@ tasks.getByName("clean") { delete(rootProject.layout.buildDirectory) } -buildscript { - dependencies { - classpath("org.jetbrains.dokka:dokka-base:2.0.0") - } -} - -dokka { - pluginsConfiguration.html { - customAssets.from("./docs/assets/powersync-logo.png") - customAssets.from("./docs/assets/discord.svg") - customAssets.from("./docs/assets/github.svg") - customAssets.from("./docs/assets/web.svg") - customAssets.from("./docs/assets/x.svg") - customAssets.from("./docs/assets/youtube.svg") - customAssets.from("./docs/assets/linkedin.svg") - customStyleSheets.from("./docs/assets/doc-styles.css") - templatesDir = file("./docs/assets/dokka-templates") - } -} - // Merges individual module docs into a single HTML output dependencies { dokka(project(":core:")) dokka(project(":connectors:supabase")) } +dokka { + moduleName.set("PowerSync Kotlin") +} + +// Serve the generated Dokka documentation using a simple HTTP server +// File changes are not watched here tasks.register("serveDokka") { dependsOn("dokkaGenerate") doLast { diff --git a/connectors/supabase/build.gradle.kts b/connectors/supabase/build.gradle.kts index aee9a516..16365e73 100644 --- a/connectors/supabase/build.gradle.kts +++ b/connectors/supabase/build.gradle.kts @@ -9,6 +9,7 @@ plugins { alias(libs.plugins.kotlinter) id("com.powersync.plugins.sonatype") id("org.jetbrains.dokka") version "2.0.0" + id("dokka-convention") } kotlin { @@ -52,3 +53,7 @@ android { } setupGithubRepository() + +dokka { + moduleName.set("PowerSync Supabase Connector") +} diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 442d636b..87a44af8 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -19,7 +19,7 @@ plugins { id("com.powersync.plugins.sharedbuild") alias(libs.plugins.mokkery) alias(libs.plugins.kotlin.atomicfu) - id("org.jetbrains.dokka") version "2.0.0" + id("dokka-convention") } val binariesFolder = project.layout.buildDirectory.dir("binaries/desktop") @@ -298,15 +298,5 @@ tasks.withType { setupGithubRepository() dokka { - pluginsConfiguration.html { - customAssets.from("../docs/assets/powersync-logo.png") - customAssets.from("../docs/assets/discord.svg") - customAssets.from("../docs/assets/github.svg") - customAssets.from("../docs/assets/web.svg") - customAssets.from("../docs/assets/x.svg") - customAssets.from("../docs/assets/youtube.svg") - customAssets.from("../docs/assets/linkedin.svg") - customStyleSheets.from("../docs/assets/doc-styles.css") - templatesDir = file("../docs/assets/dokka-templates") - } + moduleName.set("PowerSync Core") } diff --git a/docs/assets/logo-icon.svg b/docs/assets/logo-icon.svg new file mode 100644 index 00000000..86e99d66 --- /dev/null +++ b/docs/assets/logo-icon.svg @@ -0,0 +1,899 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 336a60e3..4d3cb8a6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,6 +4,7 @@ android-minSdk = "24" android-targetSdk = "35" android-compileSdk = "35" configurationAnnotations = "0.9.5" +dokkaBase = "2.0.0" gradleDownloadTask = "5.5.0" java = "17" idea = "243.22562.218" # Meerkat | 2024.3.1 (see https://plugins.jetbrains.com/docs/intellij/android-studio-releases-list.html) @@ -56,6 +57,8 @@ junitVersion = "1.2.1" [libraries] configuration-annotations = { module = "co.touchlab.skie:configuration-annotations", version.ref = "configurationAnnotations" } +dokka-base = { module = "org.jetbrains.dokka:dokka-base", version.ref = "dokkaBase" } +dokka-gradle-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokkaBase" } gradle-download-task = { module = "de.undercouch:gradle-download-task", version.ref = "gradleDownloadTask" } kermit = { module = "co.touchlab:kermit", version.ref = "kermit" } kermit-test = { module = "co.touchlab:kermit-test", version.ref = "kermit" } diff --git a/plugins/build-plugin/build.gradle.kts b/plugins/build-plugin/build.gradle.kts index 1690f112..4335a91a 100644 --- a/plugins/build-plugin/build.gradle.kts +++ b/plugins/build-plugin/build.gradle.kts @@ -3,8 +3,8 @@ plugins { } gradlePlugin { - // Define the plugin - val sonatypeCentralUpload by plugins.creating { + // Define the plugin + val sharedBuild by plugins.creating { id = "com.powersync.plugins.sharedbuild" implementationClass = "com.powersync.plugins.sharedbuild.SharedBuildPlugin" } @@ -13,4 +13,5 @@ gradlePlugin { dependencies { implementation(libs.gradle.download.task) implementation(libs.kotlin.gradle.plugin) + implementation(libs.dokka.gradle.plugin) } diff --git a/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts b/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts new file mode 100644 index 00000000..f2a4bc68 --- /dev/null +++ b/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts @@ -0,0 +1,21 @@ +plugins { + id("org.jetbrains.dokka") +} + +// Shared Dokka config +dokka { + pluginsConfiguration.html { + val docsAssetsDir = rootProject.file("docs/assets") + + customAssets.from(docsAssetsDir.resolve("powersync-logo.png")) + customAssets.from(docsAssetsDir.resolve("logo-icon.svg")) + customAssets.from(docsAssetsDir.resolve("discord.svg")) + customAssets.from(docsAssetsDir.resolve("github.svg")) + customAssets.from(docsAssetsDir.resolve("web.svg")) + customAssets.from(docsAssetsDir.resolve("x.svg")) + customAssets.from(docsAssetsDir.resolve("youtube.svg")) + customAssets.from(docsAssetsDir.resolve("linkedin.svg")) + customStyleSheets.from(docsAssetsDir.resolve("doc-styles.css")) + templatesDir = file(docsAssetsDir.resolve("dokka-templates")) + } +} From d5461c3b98a5aa3a57e1a770946cb3f552b20d12 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Wed, 23 Apr 2025 10:51:06 +0200 Subject: [PATCH 06/13] update action --- .github/workflows/docs-deploy.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 06b727e2..2089490b 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -27,9 +27,11 @@ jobs: distribution: 'temurin' - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 - - name: Gradle publish + - name: Build Docs run: | - ./gradlew dokkaGenerate + ./gradlew \ + -PGITHUB_PUBLISH_TOKEN=${{ secrets.GITHUB_TOKEN }} \ + dokkaGenerate shell: bash - name: Upload static files as artifact id: deployment From a1ce9851ecec2e9a446fae483ab83a67c70e3144 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Wed, 23 Apr 2025 11:23:45 +0200 Subject: [PATCH 07/13] update images --- .github/workflows/docs-deploy.yml | 3 ++- docs/assets/base.css | 0 .../dokka-templates/includes/footer.ftl | 15 ++++++++------- docs/assets/logo-icon.svg | Bin 52183 -> 54518 bytes 4 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 docs/assets/base.css diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 2089490b..81cf776f 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -11,7 +11,8 @@ permissions: jobs: build: - runs-on: ubuntu-latest + # Need to be able to build targets + runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Validate Gradle Wrapper diff --git a/docs/assets/base.css b/docs/assets/base.css new file mode 100644 index 00000000..e69de29b diff --git a/docs/assets/dokka-templates/includes/footer.ftl b/docs/assets/dokka-templates/includes/footer.ftl index 76822cd0..a1af3d32 100644 --- a/docs/assets/dokka-templates/includes/footer.ftl +++ b/docs/assets/dokka-templates/includes/footer.ftl @@ -1,21 +1,21 @@ <#macro display> +<@template_cmd name="pathToRoot">
- @@ -44,4 +44,5 @@
+ \ No newline at end of file diff --git a/docs/assets/logo-icon.svg b/docs/assets/logo-icon.svg index 86e99d666d990aead0af23273071284ec0dc1e0c..8d7111c85f1fbd0e8dec9aca120a69f30c994ff5 100644 GIT binary patch literal 54518 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 From d7fb5b9a6bcd6ee6082b62a88672ea8fd0bde536 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Wed, 23 Apr 2025 11:36:39 +0200 Subject: [PATCH 08/13] update images --- docs/assets/dokka-templates/includes/footer.ftl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/assets/dokka-templates/includes/footer.ftl b/docs/assets/dokka-templates/includes/footer.ftl index a1af3d32..d2e4a6c6 100644 --- a/docs/assets/dokka-templates/includes/footer.ftl +++ b/docs/assets/dokka-templates/includes/footer.ftl @@ -6,16 +6,16 @@ Community @@ -24,10 +24,10 @@ More From a3696bd72db75ca37dca83c3b92ac589799e9bed Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Thu, 24 Apr 2025 09:18:11 +0200 Subject: [PATCH 09/13] add schema comment --- .github/workflows/docs-deploy.yml | 3 +-- connectors/supabase/build.gradle.kts | 1 - .../kotlin/com/powersync/db/schema/Schema.kt | 15 +++++++++++++++ docs/assets/base.css | 0 .../src/main/kotlin/dokka-convention.gradle.kts | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) delete mode 100644 docs/assets/base.css diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 81cf776f..2089490b 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -11,8 +11,7 @@ permissions: jobs: build: - # Need to be able to build targets - runs-on: macos-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Validate Gradle Wrapper diff --git a/connectors/supabase/build.gradle.kts b/connectors/supabase/build.gradle.kts index 16365e73..4de82464 100644 --- a/connectors/supabase/build.gradle.kts +++ b/connectors/supabase/build.gradle.kts @@ -8,7 +8,6 @@ plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.kotlinter) id("com.powersync.plugins.sonatype") - id("org.jetbrains.dokka") version "2.0.0" id("dokka-convention") } diff --git a/core/src/commonMain/kotlin/com/powersync/db/schema/Schema.kt b/core/src/commonMain/kotlin/com/powersync/db/schema/Schema.kt index b9038e9e..61c92b39 100644 --- a/core/src/commonMain/kotlin/com/powersync/db/schema/Schema.kt +++ b/core/src/commonMain/kotlin/com/powersync/db/schema/Schema.kt @@ -2,6 +2,12 @@ package com.powersync.db.schema import kotlinx.serialization.Serializable +/** + * The schema used by the database. + * + * The implementation uses the schema as a "VIEW" on top of JSON data. + * No migrations are required on the client. + */ public data class Schema( val tables: List, ) { @@ -9,8 +15,17 @@ public data class Schema( validate() } + /** + * Secondary constructor to create a schema with a variable number of tables. + */ public constructor(vararg tables: Table) : this(tables.asList()) + /** + * Validates the schema by ensuring there are no duplicate table names + * and that each table is valid. + * + * @throws AssertionError if duplicate table names are found. + */ public fun validate() { val tableNames = mutableSetOf() tables.forEach { table -> diff --git a/docs/assets/base.css b/docs/assets/base.css deleted file mode 100644 index e69de29b..00000000 diff --git a/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts b/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts index f2a4bc68..2bdc662f 100644 --- a/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts +++ b/plugins/build-plugin/src/main/kotlin/dokka-convention.gradle.kts @@ -2,7 +2,7 @@ plugins { id("org.jetbrains.dokka") } -// Shared Dokka config +// Shared Dokka config for additional assets dokka { pluginsConfiguration.html { val docsAssetsDir = rootProject.file("docs/assets") From c0f666ad1a0ebc29ad330e239b388caa138a4f78 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Thu, 24 Apr 2025 09:25:13 +0200 Subject: [PATCH 10/13] update icon --- .github/workflows/docs-deploy.yml | 2 +- docs/assets/logo-icon.svg | Bin 54518 -> 32051 bytes gradle/libs.versions.toml | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 2089490b..28bfb239 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -35,7 +35,7 @@ jobs: shell: bash - name: Upload static files as artifact id: deployment - uses: actions/upload-pages-artifact@v3 # or specific "vX.X.X" version tag for this action + uses: actions/upload-pages-artifact@v3 with: path: build/dokka/html diff --git a/docs/assets/logo-icon.svg b/docs/assets/logo-icon.svg index 8d7111c85f1fbd0e8dec9aca120a69f30c994ff5..f361e6d98d6a06d8e050aa9a8b1e925a31ab5fd1 100644 GIT binary patch literal 32051 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 F{|g%~zX1RM literal 54518 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 k|NH+E_ Date: Thu, 24 Apr 2025 09:30:04 +0200 Subject: [PATCH 11/13] update branch --- .github/workflows/docs-deploy.yml | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 28bfb239..68806cf6 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -2,7 +2,7 @@ name: Deploy Docs on: push: - branches: [ 'api-ref', 'main' ] + branches: [ 'main' ] permissions: contents: read diff --git a/build.gradle.kts b/build.gradle.kts index 87d18b32..6de578f3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -22,7 +22,7 @@ plugins { alias(libs.plugins.kotlinter) apply false alias(libs.plugins.keeper) apply false alias(libs.plugins.kotlin.atomicfu) apply false - id("org.jetbrains.dokka") version "2.0.0" + id("org.jetbrains.dokka") version libs.versions.dokkaBase id("dokka-convention") } From 6402b3f64e9043d5d3d3be2a6d72a51c7a75af01 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Thu, 24 Apr 2025 11:28:25 +0200 Subject: [PATCH 12/13] Add compose module to docs. Test pages again. Fix image trailing slash. Internalize buildconfig. --- .github/workflows/docs-deploy.yml | 2 +- build.gradle.kts | 2 ++ compose/build.gradle.kts | 5 +++++ core/src/androidMain/kotlin/BuildConfig.kt | 4 ++-- core/src/appleMain/kotlin/BuildConfig.kt | 4 ++-- core/src/commonMain/kotlin/BuildConfig.kt | 4 ++-- core/src/jvmMain/kotlin/BuildConfig.kt | 4 ++-- docs/assets/dokka-templates/includes/footer.ftl | 12 ++++++------ 8 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 68806cf6..28bfb239 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -2,7 +2,7 @@ name: Deploy Docs on: push: - branches: [ 'main' ] + branches: [ 'api-ref', 'main' ] permissions: contents: read diff --git a/build.gradle.kts b/build.gradle.kts index 6de578f3..17e391ee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -70,6 +70,7 @@ tasks.getByName("clean") { dependencies { dokka(project(":core:")) dokka(project(":connectors:supabase")) + dokka(project(":compose:")) } dokka { @@ -79,6 +80,7 @@ dokka { // Serve the generated Dokka documentation using a simple HTTP server // File changes are not watched here tasks.register("serveDokka") { + group = "dokka" dependsOn("dokkaGenerate") doLast { val server = HttpServer.create(InetSocketAddress(0), 0) diff --git a/compose/build.gradle.kts b/compose/build.gradle.kts index dd16112c..aabc9354 100644 --- a/compose/build.gradle.kts +++ b/compose/build.gradle.kts @@ -8,6 +8,7 @@ plugins { alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlinter) id("com.powersync.plugins.sonatype") + id("dokka-convention") } kotlin { @@ -45,3 +46,7 @@ android { } setupGithubRepository() + +dokka { + moduleName.set("PowerSync Compose") +} diff --git a/core/src/androidMain/kotlin/BuildConfig.kt b/core/src/androidMain/kotlin/BuildConfig.kt index 08f66eec..f52fcaa8 100644 --- a/core/src/androidMain/kotlin/BuildConfig.kt +++ b/core/src/androidMain/kotlin/BuildConfig.kt @@ -1,5 +1,5 @@ @Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual object BuildConfig { - public actual val isDebug: Boolean +internal actual object BuildConfig { + actual val isDebug: Boolean get() = com.powersync.BuildConfig.DEBUG } diff --git a/core/src/appleMain/kotlin/BuildConfig.kt b/core/src/appleMain/kotlin/BuildConfig.kt index 1005f70c..f18cc336 100644 --- a/core/src/appleMain/kotlin/BuildConfig.kt +++ b/core/src/appleMain/kotlin/BuildConfig.kt @@ -2,7 +2,7 @@ import kotlin.experimental.ExperimentalNativeApi import kotlin.native.Platform @Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual object BuildConfig { +internal actual object BuildConfig { @OptIn(ExperimentalNativeApi::class) - public actual val isDebug: Boolean = Platform.isDebugBinary + actual val isDebug: Boolean = Platform.isDebugBinary } diff --git a/core/src/commonMain/kotlin/BuildConfig.kt b/core/src/commonMain/kotlin/BuildConfig.kt index 599450e5..81f23796 100644 --- a/core/src/commonMain/kotlin/BuildConfig.kt +++ b/core/src/commonMain/kotlin/BuildConfig.kt @@ -1,4 +1,4 @@ @Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public expect object BuildConfig { - public val isDebug: Boolean +internal expect object BuildConfig { + val isDebug: Boolean } diff --git a/core/src/jvmMain/kotlin/BuildConfig.kt b/core/src/jvmMain/kotlin/BuildConfig.kt index c3260bed..86924a14 100644 --- a/core/src/jvmMain/kotlin/BuildConfig.kt +++ b/core/src/jvmMain/kotlin/BuildConfig.kt @@ -1,12 +1,12 @@ @Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING") -public actual object BuildConfig { +internal actual object BuildConfig { /* To debug on the JVM, you can: - Set the com.powersync.debug property with System.setProperty("com.powersync.debug", true) BEFORE calling any powersync API. - Start your java program with the -Dcom.powersync.debug=true command line argument. - Set the POWERSYNC_JVM_DEBUG environment variable to "true" before starting your program. */ - public actual val isDebug: Boolean = + actual val isDebug: Boolean = System.getProperty("com.powersync.debug") == "true" || System.getenv("POWERSYNC_JVM_DEBUG") == "true" } diff --git a/docs/assets/dokka-templates/includes/footer.ftl b/docs/assets/dokka-templates/includes/footer.ftl index d2e4a6c6..36483bb6 100644 --- a/docs/assets/dokka-templates/includes/footer.ftl +++ b/docs/assets/dokka-templates/includes/footer.ftl @@ -6,16 +6,16 @@ Community @@ -24,10 +24,10 @@ More From 42694413fc53cca00ca644365b1deec857c509e0 Mon Sep 17 00:00:00 2001 From: stevensJourney Date: Thu, 24 Apr 2025 11:36:18 +0200 Subject: [PATCH 13/13] revert test docs deploy --- .github/workflows/docs-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 28bfb239..68806cf6 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -2,7 +2,7 @@ name: Deploy Docs on: push: - branches: [ 'api-ref', 'main' ] + branches: [ 'main' ] permissions: contents: read