diff --git a/.github/workflows/release-workflow.yml b/.github/workflows/release-workflow.yml index 961540fc98..476265c1f3 100644 --- a/.github/workflows/release-workflow.yml +++ b/.github/workflows/release-workflow.yml @@ -50,7 +50,7 @@ jobs: ./gradlew findSonatypeStagingRepository releaseSonatypeStagingRepository -Dorg.gradle.parallel=false --stacktrace - name: Generate Documentation - run: ./gradlew dokkaHtml + run: ./gradlew dokkaHtmlMultiModule - name: Configure git run: | @@ -59,7 +59,7 @@ jobs: - name: Publish gh-pages run: | - mv docs .docs-newly-generated # new docs generated by previous step + mv embrace-android-sdk/build/dokka/html .docs-newly-generated # new docs generated by previous step git checkout gh-pages git rm -rf docs # old docs on gh-pages branch mv .docs-newly-generated docs diff --git a/build.gradle.kts b/build.gradle.kts index af866b4061..f46be600cf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. import java.io.FileInputStream import java.util.Properties +import org.jetbrains.dokka.gradle.DokkaTaskPartial buildscript { repositories { @@ -19,10 +20,11 @@ plugins { id("io.github.gradle-nexus.publish-plugin") version "1.3.0" id("com.android.library") apply false id("org.jetbrains.kotlin.android") apply false + id("org.jetbrains.dokka") version "1.9.20" } group = "io.embrace" -version = project.version//.properties.getVersion() +version = project.version // load credentials from local properties if present val localProperties = Properties() @@ -47,3 +49,27 @@ allprojects { maven(url = "https://plugins.gradle.org/m2/") } } + +// You can apply and configure Dokka in each subproject +// individially or configure all subprojects at once +subprojects { + if (project.name == "embrace-android-sdk" || project.name == "embrace-android-api") { + apply(plugin = "org.jetbrains.dokka") + } + + tasks.withType().configureEach { + dokkaSourceSets.configureEach { + perPackageOption { + skipDeprecated.set(false) + reportUndocumented.set(true) // Emit warnings about not documented members + includeNonPublic.set(false) + + // Suppress files in the internal package + matchingRegex.set(".*.internal.*?") + suppress.set(true) + } + suppressObviousFunctions.set(true) + noAndroidSdkLink.set(false) + } + } +} diff --git a/embrace-android-api/api/embrace-android-api.api b/embrace-android-api/api/embrace-android-api.api new file mode 100644 index 0000000000..e5ecfb2d61 --- /dev/null +++ b/embrace-android-api/api/embrace-android-api.api @@ -0,0 +1,8 @@ +public final class io/embrace/android/embracesdk/Severity : java/lang/Enum { + public static final field ERROR Lio/embrace/android/embracesdk/Severity; + public static final field INFO Lio/embrace/android/embracesdk/Severity; + public static final field WARNING Lio/embrace/android/embracesdk/Severity; + public static fun valueOf (Ljava/lang/String;)Lio/embrace/android/embracesdk/Severity; + public static fun values ()[Lio/embrace/android/embracesdk/Severity; +} + diff --git a/embrace-android-api/build.gradle.kts b/embrace-android-api/build.gradle.kts new file mode 100644 index 0000000000..efe617c146 --- /dev/null +++ b/embrace-android-api/build.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("embrace-defaults") +} + +description = "Embrace Android SDK: API" + +android { + namespace = "io.embrace.android.embracesdk.api" +} + +dependencies { + compileOnly(platform(libs.opentelemetry.bom)) + compileOnly(libs.opentelemetry.api) +} diff --git a/embrace-android-api/lint-baseline.xml b/embrace-android-api/lint-baseline.xml new file mode 100644 index 0000000000..8f3a74fd40 --- /dev/null +++ b/embrace-android-api/lint-baseline.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/Severity.java b/embrace-android-api/src/main/java/io/embrace/android/embracesdk/Severity.java similarity index 100% rename from embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/Severity.java rename to embrace-android-api/src/main/java/io/embrace/android/embracesdk/Severity.java diff --git a/embrace-android-core/build.gradle.kts b/embrace-android-core/build.gradle.kts index 8e977d5823..2174952faf 100644 --- a/embrace-android-core/build.gradle.kts +++ b/embrace-android-core/build.gradle.kts @@ -12,6 +12,7 @@ apiValidation.validationDisabled = true dependencies { implementation(project(":embrace-android-payload")) + compileOnly(project(":embrace-android-api")) compileOnly(platform(libs.opentelemetry.bom)) compileOnly(libs.opentelemetry.api) compileOnly(libs.opentelemetry.semconv) diff --git a/embrace-android-sdk/api/embrace-android-sdk.api b/embrace-android-sdk/api/embrace-android-sdk.api index fc5ad34fe2..001ff385a0 100644 --- a/embrace-android-sdk/api/embrace-android-sdk.api +++ b/embrace-android-sdk/api/embrace-android-sdk.api @@ -155,14 +155,6 @@ public abstract interface class io/embrace/android/embracesdk/ReactNativeInterna public abstract fun setReactNativeVersionNumber (Ljava/lang/String;)V } -public final class io/embrace/android/embracesdk/Severity : java/lang/Enum { - public static final field ERROR Lio/embrace/android/embracesdk/Severity; - public static final field INFO Lio/embrace/android/embracesdk/Severity; - public static final field WARNING Lio/embrace/android/embracesdk/Severity; - public static fun valueOf (Ljava/lang/String;)Lio/embrace/android/embracesdk/Severity; - public static fun values ()[Lio/embrace/android/embracesdk/Severity; -} - public abstract interface class io/embrace/android/embracesdk/UnityInternalInterface : io/embrace/android/embracesdk/internal/EmbraceInternalInterface { public abstract fun installUnityThreadSampler ()V public abstract fun logHandledUnityException (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V diff --git a/embrace-android-sdk/build.gradle.kts b/embrace-android-sdk/build.gradle.kts index 632943abf3..86364a4215 100644 --- a/embrace-android-sdk/build.gradle.kts +++ b/embrace-android-sdk/build.gradle.kts @@ -1,12 +1,8 @@ import io.embrace.gradle.Versions -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.base.DokkaBaseConfiguration -import org.jetbrains.dokka.gradle.DokkaTask plugins { id("embrace-defaults") id("org.jetbrains.kotlin.kapt") - id("org.jetbrains.dokka") } description = "Embrace Android SDK: Core" @@ -48,6 +44,8 @@ dependencies { kover(project(":embrace-android-okhttp3")) kover(project(":embrace-android-core")) kover(project(":embrace-android-features")) + kover(project(":embrace-android-payload")) + kover(project(":embrace-android-api")) } kover { @@ -65,6 +63,7 @@ kover { } dependencies { + api(project(":embrace-android-api")) implementation(project(":embrace-android-core")) implementation(project(":embrace-android-features")) implementation(project(":embrace-android-payload")) @@ -90,34 +89,6 @@ dependencies { testImplementation(libs.protobuf.java) testImplementation(libs.protobuf.java.util) testImplementation(libs.kotlin.reflect) - - dokkaHtmlPlugin(libs.dokka.convert) - dokkaHtmlPlugin(libs.dokka.docs) -} - -tasks.withType().configureEach { - pluginConfiguration { - outputDirectory.set(rootProject.file("docs")) - dokkaSourceSets { - configureEach { - perPackageOption { - skipDeprecated.set(false) - reportUndocumented.set(true) // Emit warnings about not documented members - includeNonPublic.set(false) - - // Suppress files in the internal package - perPackageOption { - matchingRegex.set(".*.internal.*?") - suppress.set(true) - } - } - } - named("main") { - noAndroidSdkLink.set(false) - } - } - suppressObviousFunctions.set(true) - } } project.tasks.register("publishLocal") { dependsOn("publishMavenPublicationToMavenLocal") } diff --git a/embrace-android-sdk/lint-baseline.xml b/embrace-android-sdk/lint-baseline.xml index 2fdc06d384..a3ccdf522e 100644 --- a/embrace-android-sdk/lint-baseline.xml +++ b/embrace-android-sdk/lint-baseline.xml @@ -1,5 +1,5 @@ - + @@ -85,21 +85,10 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - - - - @@ -195,7 +184,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/settings.gradle.kts b/settings.gradle.kts index ab693d74fd..88ae517cea 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,5 @@ include( + ":embrace-android-api", ":embrace-android-sdk", ":embrace-android-core", ":embrace-android-features",