diff --git a/.github/workflows/build-pull-request.yaml b/.github/workflows/build-pull-request.yaml new file mode 100644 index 0000000..53ac625 --- /dev/null +++ b/.github/workflows/build-pull-request.yaml @@ -0,0 +1,12 @@ +name: Build pull request + +on: pull_request + +jobs: + build-pull-request: + runs-on: macos-latest + + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7 + - run: | + ./gradlew build diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 976ae87..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: CI - -on: - push: - pull_request: - -jobs: - build: - - runs-on: macOS-latest - - steps: - - uses: actions/checkout@v2 - - uses: gradle/gradle-build-action@v3 - - name: Check with Gradle - run: | - ./gradlew apiCheck --stacktrace - - name: Build with Gradle - run: | - ./gradlew build --stacktrace - ./gradlew publishIfNeeded - env: # Or as an environment variable - SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }} - SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} - IO_OPENFEEDBACK_PROFILE_ID: ${{ secrets.IO_OPENFEEDBACK_PROFILE_ID }} - OPENFEEDBACK_GPG_PRIVATE_KEY: ${{ secrets.OPENFEEDBACK_GPG_PRIVATE_KEY }} - OPENFEEDBACK_GPG_PRIVATE_KEY_PASSWORD: ${{ secrets.OPENFEEDBACK_GPG_PRIVATE_KEY_PASSWORD }} diff --git a/.github/workflows/publish-docs.yaml b/.github/workflows/publish-docs.yaml new file mode 100644 index 0000000..bb90ccf --- /dev/null +++ b/.github/workflows/publish-docs.yaml @@ -0,0 +1,41 @@ +name: Publish documentation + +on: + push: + branches: ["main"] + workflow_dispatch: + +env: + INSTANCE: 'Writerside/doc' + ARTIFACT: 'webHelpDOC2-all.zip' + DOCKER_VERSION: '241.16003' + +jobs: + build-docs: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7 + with: + fetch-depth: 0 + + - name: Prepare static content + run: | + export JAVA_HOME=$JAVA_HOME_21_X64 # Remove when ubuntu-latest updates to Java 21 + ./gradlew dokkatooGeneratePublicationHtml + mkdir -p build/static + cp -rf build/dokka/html build/static/kdoc + + - name: Deploy Kdoc to github pages + uses: JamesIves/github-pages-deploy-action@5c6e9e9f3672ce8fd37b9856193d2a537941e66c #v4.6.1 + with: + branch: gh-pages # The branch the action should deploy to. + folder: build/static # The folder the action should deploy. + + - name: Save artifact with build results + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 #v4.3.3 + with: + name: docs + path: | + artifacts/${{ env.ARTIFACT }} + retention-days: 7 \ No newline at end of file diff --git a/.github/workflows/publish-release.yaml b/.github/workflows/publish-release.yaml new file mode 100644 index 0000000..85bcd28 --- /dev/null +++ b/.github/workflows/publish-release.yaml @@ -0,0 +1,23 @@ +name: Publish release + +on: + workflow_dispatch: + push: + tags: + - '*' + +jobs: + publish-release: + runs-on: macos-latest + + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7 + - run: | + ./gradlew librarianPublishToMavenCentral + gh release create $GITHUB_REF_NAME --title $GITHUB_REF_NAME --verify-tag --notes-from-tag + env: + LIBRARIAN_SONATYPE_USERNAME: ${{ secrets.LIBRARIAN_SONATYPE_USERNAME }} + LIBRARIAN_SONATYPE_PASSWORD: ${{ secrets.LIBRARIAN_SONATYPE_PASSWORD }} + LIBRARIAN_SIGNING_PRIVATE_KEY: ${{ secrets.LIBRARIAN_SIGNING_PRIVATE_KEY }} + LIBRARIAN_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.LIBRARIAN_SIGNING_PRIVATE_KEY_PASSWORD }} + GH_TOKEN: ${{ github.token }} \ No newline at end of file diff --git a/.github/workflows/publish-snapshot.yaml b/.github/workflows/publish-snapshot.yaml new file mode 100644 index 0000000..7e16006 --- /dev/null +++ b/.github/workflows/publish-snapshot.yaml @@ -0,0 +1,18 @@ +name: Publish snapshot + +on: + push: + branches: [ main ] +jobs: + publish-snapshot: + runs-on: macos-latest + + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 #v4.1.7 + - run: | + ./gradlew librarianPublishToMavenSnapshots + env: + LIBRARIAN_SONATYPE_USERNAME: ${{ secrets.LIBRARIAN_SONATYPE_USERNAME }} + LIBRARIAN_SONATYPE_PASSWORD: ${{ secrets.LIBRARIAN_SONATYPE_PASSWORD }} + LIBRARIAN_SIGNING_PRIVATE_KEY: ${{ secrets.LIBRARIAN_SIGNING_PRIVATE_KEY }} + LIBRARIAN_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.LIBRARIAN_SIGNING_PRIVATE_KEY_PASSWORD }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..875e87f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +# Next version (unreleased) + +Bugfixes and performance improvements! diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 45772cc..8b943d9 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -12,7 +12,7 @@ repositories { dependencies { implementation(gradleApi()) - implementation(libs.mbonnin.vespene) + implementation(libs.librarian) implementation(libs.jetbrains.kotlinx.coroutines) implementation(libs.android.gradle.plugin) implementation(libs.jetbrains.kotlin.gradle.plugin) diff --git a/build-logic/src/main/kotlin/EnvVarKeys.kt b/build-logic/src/main/kotlin/EnvVarKeys.kt deleted file mode 100644 index 2858425..0000000 --- a/build-logic/src/main/kotlin/EnvVarKeys.kt +++ /dev/null @@ -1,17 +0,0 @@ -object EnvVarKeys { - object Nexus { - const val username = "SONATYPE_NEXUS_USERNAME" - const val password = "SONATYPE_NEXUS_PASSWORD" - const val profileId = "IO_OPENFEEDBACK_PROFILE_ID" - } - - object GPG { - const val privateKey = "OPENFEEDBACK_GPG_PRIVATE_KEY" - const val password = "OPENFEEDBACK_GPG_PRIVATE_KEY_PASSWORD" - } - - object GitHub { - const val event = "GITHUB_EVENT_NAME" - const val ref = "GITHUB_REF" - } -} \ No newline at end of file diff --git a/build-logic/src/main/kotlin/accessors.kt b/build-logic/src/main/kotlin/accessors.kt index 26ea74a..b59cc71 100644 --- a/build-logic/src/main/kotlin/accessors.kt +++ b/build-logic/src/main/kotlin/accessors.kt @@ -12,11 +12,6 @@ inline fun Project.extension(): T { return extensionOrNull() ?: error("No extension of type '${T::class.java.name}") } -inline fun Project.extension(block: T.() -> Unit) { - extension().apply(block) -} - - val KotlinMultiplatformExtension.compose: ComposePlugin.Dependencies get() { return (this as ExtensionAware).extensions.getByName("compose") as ComposePlugin.Dependencies diff --git a/build-logic/src/main/kotlin/internal/Publishing.kt b/build-logic/src/main/kotlin/internal/Publishing.kt deleted file mode 100644 index 6fa76f0..0000000 --- a/build-logic/src/main/kotlin/internal/Publishing.kt +++ /dev/null @@ -1,221 +0,0 @@ -package internal - -import EnvVarKeys -import applyPublishingPlugin -import applySigningPlugin -import extension -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.withTimeout -import net.mbonnin.vespene.lib.NexusStagingClient -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.UnknownDomainObjectException -import org.gradle.api.artifacts.dsl.RepositoryHandler -import org.gradle.api.logging.LogLevel -import org.gradle.api.plugins.ExtensionContainer -import org.gradle.api.provider.Provider -import org.gradle.api.publish.PublishingExtension -import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.tasks.TaskProvider -import org.gradle.plugins.signing.Sign -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget -import kotlin.time.Duration.Companion.minutes - -internal fun Project.configurePublications( - publishing: PublishingExtension, - artifactName: String -) { - val project = this - - publishing.publications.configureEach { - (it as MavenPublication).apply { - groupId = "io.openfeedback" - version = project.rootProject.version.toString() - artifactId = artifactName - - pom { - it.name.set(artifactName) - - it.description.set(artifactId) - it.url.set("https://github.com/paug/openfeedback-android-sdk") - - it.scm { - it.url.set("https://github.com/paug/openfeedback-android-sdk") - it.connection.set("https://github.com/paug/openfeedback-android-sdk") - it.developerConnection.set("https://github.com/paug/openfeedback-android-sdk") - } - - it.licenses { - it.license { - it.name.set("MIT License") - it.url.set("https://github.com/paug/openfeedback-android-sdk/blob/master/LICENSE") - } - } - - it.developers { - it.developer { - it.id.set("openfeedback team") - it.name.set("openfeedback team") - } - } - } - } - } -} - - -internal fun Project.configurePublishingInternal( - androidTarget: KotlinAndroidTarget -) { - val publishing = applyPublishingPlugin() - - /** - * Signing - */ - val privateKey = System.getenv(EnvVarKeys.GPG.privateKey) - val password = System.getenv(EnvVarKeys.GPG.password) - applySigningPlugin().apply { - // GPG_PRIVATE_KEY should contain the armoured private key that starts with -----BEGIN PGP PRIVATE KEY BLOCK----- - // It can be obtained with gpg --armour --export-secret-keys KEY_ID - useInMemoryPgpKeys( - privateKey, - password - ) - sign(publishing.publications) - } - - tasks.withType(Sign::class.java).configureEach { - it.isEnabled = !privateKey.isNullOrBlank() - } - - /** - * Android publication - */ - androidTarget.apply { - publishLibraryVariants("release") - } - - /** - * Pom - */ - configurePublications( - publishing = publishing, - artifactName = name - ) - - /** - * Repositories - */ - publishing.repositories { - it.mavenSonatypeSnapshot(project = project) - it.mavenSonatypeStaging(project = project) - } - - rootProject.tasks.named("ossStagingRelease").configure { - it.dependsOn(this@configurePublishingInternal.tasks.named("publishAllPublicationsToOssStagingRepository")) - } -} - -private fun Project.getOrCreateRepoIdTask(): TaskProvider { - return try { - rootProject.tasks.named("createStagingRepo") - } catch (e: UnknownDomainObjectException) { - rootProject.tasks.register("createStagingRepo") { - it.outputs.file(rootProject.layout.buildDirectory.file("stagingRepoId")) - - it.doLast { - val repoId = runBlocking { - nexusStagingClient.createRepository( - profileId = System.getenv(EnvVarKeys.Nexus.profileId), - description = "io.openfeedback ${rootProject.version}" - ) - } - logger.log(LogLevel.LIFECYCLE, "repo created: $repoId") - it.outputs.files.singleFile.writeText(repoId) - } - } - } -} - -fun Project.publishIfNeededTaskProvider(): TaskProvider { - return try { - tasks.named("publishIfNeeded") - } catch (ignored: Exception) { - tasks.register("publishIfNeeded") - } -} - -private val baseUrl = "https://s01.oss.sonatype.org/service/local/" - -private val nexusStagingClient by lazy { - NexusStagingClient( - baseUrl = baseUrl, - username = System.getenv(EnvVarKeys.Nexus.username) - ?: error("please set the ${EnvVarKeys.Nexus.username} environment variable"), - password = System.getenv(EnvVarKeys.Nexus.password) - ?: error("please set the ${EnvVarKeys.Nexus.password} environment variable"), - ) -} - -fun Project.getOrCreateRepoId(): Provider { - return getOrCreateRepoIdTask().map { - it.outputs.files.singleFile.readText() - } -} - -fun Project.getOrCreateRepoUrl(): Provider { - return getOrCreateRepoId().map { "${baseUrl}staging/deployByRepositoryId/$it/" } -} - -fun Task.closeAndReleaseStagingRepository(repoId: String) { - runBlocking { - logger.log(LogLevel.LIFECYCLE, "Closing repository $repoId") - nexusStagingClient.closeRepositories(listOf(repoId)) - withTimeout(5.minutes) { - nexusStagingClient.waitForClose(repoId, 1000) { - logger.log(LogLevel.LIFECYCLE, ".") - } - } - nexusStagingClient.releaseRepositories(listOf(repoId), true) - } -} - -internal fun Project.registerReleaseTask(name: String): TaskProvider { - val task = try { - rootProject.tasks.named(name) - } catch (e: UnknownDomainObjectException) { - val repoId = getOrCreateRepoId() - rootProject.tasks.register(name) { - it.inputs.property( - "repoId", - repoId - ) - it.doLast { - it.closeAndReleaseStagingRepository(it.inputs.properties.get("repoId") as String) - } - } - } - - return task -} - -fun RepositoryHandler.mavenSonatypeSnapshot(project: Project) = maven { - it.name = "ossSnapshots" - it.url = project.uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") - it.credentials { - it.username = System.getenv(EnvVarKeys.Nexus.username) - it.password = System.getenv(EnvVarKeys.Nexus.password) - } -} - -fun RepositoryHandler.mavenSonatypeStaging(project: Project) = maven { - it.name = "ossStaging" - it.setUrl { - project.uri(project.getOrCreateRepoUrl()) - } - it.credentials { - it.username = System.getenv(EnvVarKeys.Nexus.username) - it.password = System.getenv(EnvVarKeys.Nexus.password) - } -} - diff --git a/build-logic/src/main/kotlin/main.kt b/build-logic/src/main/kotlin/main.kt index cbace40..6394795 100644 --- a/build-logic/src/main/kotlin/main.kt +++ b/build-logic/src/main/kotlin/main.kt @@ -1,15 +1,8 @@ import com.android.build.api.dsl.CommonExtension -import com.android.build.gradle.internal.tasks.factory.dependsOn -import internal.configurePublishingInternal -import internal.publishIfNeededTaskProvider -import internal.registerReleaseTask -import kotlinx.validation.ApiValidationExtension -import kotlinx.validation.ExperimentalBCVApi +import com.gradleup.librarian.gradle.librarianModule import org.gradle.api.JavaVersion import org.gradle.api.Project -import org.gradle.api.logging.LogLevel import org.jetbrains.kotlin.gradle.dsl.KotlinCompile -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension private fun Project.configureAndroid(namespace: String) { @@ -31,11 +24,6 @@ private fun Project.configureAndroid(namespace: String) { private fun Project.configureKotlin() { tasks.withType(KotlinCompile::class.java) { - it.kotlinOptions { - if (this is KotlinJvmOptions) { - jvmTarget = JavaVersion.VERSION_17.toString() - } - } it.kotlinOptions.freeCompilerArgs += "-Xexpect-actual-classes" } } @@ -57,52 +45,23 @@ fun Project.library( kotlin: (KotlinMultiplatformExtension) -> Unit ) { val kotlinMultiplatformExtension = applyKotlinMultiplatformPlugin() - val binaryCompatibilityValidation = applyBinaryCompatibilityValidation() if (compose) { applyJetbrainsComposePlugin() } - if (publish) { - configurePublishingInternal(kotlinMultiplatformExtension.androidTarget()) - } - configureBinaryCompatibilityValidation(binaryCompatibilityValidation) configureAndroid(namespace = namespace) configureKMP() + configureKotlin() kotlin(kotlinMultiplatformExtension) -} -@OptIn(ExperimentalBCVApi::class) -fun Project.configureBinaryCompatibilityValidation(extension: ApiValidationExtension) = with(extension) { - klib.enabled = true + librarianModule(publish) } + fun Project.androidApp( namespace: String, ) { configureAndroid(namespace = namespace) configureKotlin() } - - -fun Project.configureRoot() { - check(this == rootProject) { - "configureRoot must be called from the root project" - } - - val publishIfNeeded = project.publishIfNeededTaskProvider() - val ossStagingReleaseTask = project.registerReleaseTask("ossStagingRelease") - - val eventName = System.getenv(EnvVarKeys.GitHub.event) - val ref = System.getenv(EnvVarKeys.GitHub.ref) - - if (eventName == "push" && ref == "refs/heads/main" && project.version.toString().endsWith("SNAPSHOT")) { - project.logger.log(LogLevel.LIFECYCLE, "Deploying snapshot to OssSnapshot...") - publishIfNeeded.dependsOn(project.tasks.named("publishAllPublicationsToOssSnapshotsRepository")) - } - - if (ref?.startsWith("refs/tags/") == true) { - project.logger.log(LogLevel.LIFECYCLE, "Deploying release to OssStaging...") - publishIfNeeded.dependsOn(ossStagingReleaseTask) - } -} diff --git a/build-logic/src/main/kotlin/plugins.kt b/build-logic/src/main/kotlin/plugins.kt index fa1e89b..fae600e 100644 --- a/build-logic/src/main/kotlin/plugins.kt +++ b/build-logic/src/main/kotlin/plugins.kt @@ -1,19 +1,7 @@ -import kotlinx.validation.ApiValidationExtension import org.gradle.api.Project -import org.gradle.api.publish.PublishingExtension -import org.gradle.plugins.signing.SigningExtension import org.jetbrains.compose.ComposeExtension import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -fun Project.applyPublishingPlugin(): PublishingExtension { - pluginManager.apply("maven-publish") - return extension() -} - -fun Project.applySigningPlugin(): SigningExtension { - pluginManager.apply("signing") - return extension() -} fun Project.applyKotlinMultiplatformPlugin(): KotlinMultiplatformExtension { pluginManager.apply("org.jetbrains.kotlin.multiplatform") @@ -26,7 +14,3 @@ fun Project.applyJetbrainsComposePlugin(): ComposeExtension { return extension() } -fun Project.applyBinaryCompatibilityValidation(): ApiValidationExtension { - pluginManager.apply("org.jetbrains.kotlinx.binary-compatibility-validator") - return extension() -} diff --git a/build.gradle.kts b/build.gradle.kts index da77871..8aa4ad1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,5 @@ +import com.gradleup.librarian.gradle.librarianRoot + buildscript { repositories { mavenCentral() @@ -25,12 +27,4 @@ buildscript { } } -version = "1.0.0-SNAPSHOT" -allprojects { - repositories { - mavenCentral() - google() - } -} - -configureRoot() \ No newline at end of file +librarianRoot() \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3229260..aed7718 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,7 +39,7 @@ lyricist = { module = "cafe.adriel.lyricist:lyricist", version.ref = "lyricist" vanniktech-multiplatform-locale = { module = "com.vanniktech:multiplatform-locale", version.ref = "multiplatform-locale" } -mbonnin-vespene = "net.mbonnin.vespene:vespene-lib:0.5" +librarian = "com.gradleup.librarian:librarian-gradle-plugin:0.0.4" google-firebase-common = { module = "com.google.firebase:firebase-common", version.ref = "google-firebase-common" } google-firebase-firestore = { module = "com.google.firebase:firebase-firestore-ktx", version.ref = "google-firebase-firestore" } diff --git a/librarian.properties b/librarian.properties new file mode 100644 index 0000000..b5af090 --- /dev/null +++ b/librarian.properties @@ -0,0 +1,15 @@ +java.compatibility=11 +kotlin.compatibility=2.0.0 + +kdoc.olderVersions= +kdoc.artifactId=kdoc + +sonatype.backend=Default + +pom.groupId=io.openfeedback +pom.version=1.0.0-SNAPSHOT +pom.description=openfeedback-sdk-kotlin +pom.vcsUrl=https://github.com/paug/openfeedback-sdk-kotlin +pom.developer=openfeedback-sdk-kotlin authors +pom.license=MIT License +pom.licenseUrl=https://raw.githubusercontent.com/paug/openfeedback-sdk-kotlin/main/LICENSE \ No newline at end of file diff --git a/openfeedback-m3/api/openfeedback-m3.klib.api b/openfeedback-m3/api/openfeedback-m3.klib.api index 2703863..def84e9 100644 --- a/openfeedback-m3/api/openfeedback-m3.klib.api +++ b/openfeedback-m3/api/openfeedback-m3.klib.api @@ -5,7 +5,7 @@ // - Show manifest properties: true // - Show declarations: true -// Library unique name: +// Library unique name: final fun io.openfeedback.m3/Comment(io.openfeedback.ui.models/UIComment, androidx.compose.ui/Modifier?, androidx.compose.ui.graphics/Color, androidx.compose.ui.graphics/Color, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.text/TextStyle?, androidx.compose.ui.graphics/Shape?, kotlin/Function1, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // io.openfeedback.m3/Comment|Comment(io.openfeedback.ui.models.UIComment;androidx.compose.ui.Modifier?;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.text.TextStyle?;androidx.compose.ui.graphics.Shape?;kotlin.Function1;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun io.openfeedback.m3/CommentInput(kotlin/String, kotlin/Function1, kotlin/Function0, androidx.compose.ui/Modifier?, kotlin/Boolean, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // io.openfeedback.m3/CommentInput|CommentInput(kotlin.String;kotlin.Function1;kotlin.Function0;androidx.compose.ui.Modifier?;kotlin.Boolean;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] final fun io.openfeedback.m3/Loading(androidx.compose.ui/Modifier?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // io.openfeedback.m3/Loading|Loading(androidx.compose.ui.Modifier?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] diff --git a/openfeedback-resources/api/openfeedback-resources.klib.api b/openfeedback-resources/api/openfeedback-resources.klib.api index 2c56aad..d3cc91d 100644 --- a/openfeedback-resources/api/openfeedback-resources.klib.api +++ b/openfeedback-resources/api/openfeedback-resources.klib.api @@ -5,7 +5,7 @@ // - Show manifest properties: true // - Show declarations: true -// Library unique name: +// Library unique name: final class io.openfeedback.resources/CommentStrings { // io.openfeedback.resources/CommentStrings|null[0] constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/Function1) // io.openfeedback.resources/CommentStrings.|(kotlin.String;kotlin.String;kotlin.String;kotlin.Function1){}[0] diff --git a/openfeedback-ui-models/api/openfeedback-ui-models.klib.api b/openfeedback-ui-models/api/openfeedback-ui-models.klib.api index 86ed483..899fd32 100644 --- a/openfeedback-ui-models/api/openfeedback-ui-models.klib.api +++ b/openfeedback-ui-models/api/openfeedback-ui-models.klib.api @@ -5,7 +5,7 @@ // - Show manifest properties: true // - Show declarations: true -// Library unique name: +// Library unique name: final class io.openfeedback.ui.models/UIComment { // io.openfeedback.ui.models/UIComment|null[0] constructor (kotlin/String, kotlin/String, kotlin/String, kotlin/Int, kotlin.collections/List, kotlin/Boolean, kotlin/Boolean) // io.openfeedback.ui.models/UIComment.|(kotlin.String;kotlin.String;kotlin.String;kotlin.Int;kotlin.collections.List;kotlin.Boolean;kotlin.Boolean){}[0] diff --git a/openfeedback-viewmodel/api/openfeedback-viewmodel.klib.api b/openfeedback-viewmodel/api/openfeedback-viewmodel.klib.api index e189cb3..59e17a2 100644 --- a/openfeedback-viewmodel/api/openfeedback-viewmodel.klib.api +++ b/openfeedback-viewmodel/api/openfeedback-viewmodel.klib.api @@ -5,7 +5,7 @@ // - Show manifest properties: true // - Show declarations: true -// Library unique name: +// Library unique name: final class io.openfeedback.viewmodels/OpenFeedbackFirebaseConfig { // io.openfeedback.viewmodels/OpenFeedbackFirebaseConfig|null[0] constructor (kotlin/Any?, kotlin/String, kotlin/String, kotlin/String, kotlin/String, kotlin/String = ...) // io.openfeedback.viewmodels/OpenFeedbackFirebaseConfig.|(kotlin.Any?;kotlin.String;kotlin.String;kotlin.String;kotlin.String;kotlin.String){}[0] diff --git a/openfeedback/api/openfeedback.klib.api b/openfeedback/api/openfeedback.klib.api index 065143d..5a26edf 100644 --- a/openfeedback/api/openfeedback.klib.api +++ b/openfeedback/api/openfeedback.klib.api @@ -5,7 +5,7 @@ // - Show manifest properties: true // - Show declarations: true -// Library unique name: +// Library unique name: final class io.openfeedback.model/Comment : io.openfeedback.model/SessionThing { // io.openfeedback.model/Comment|null[0] constructor (kotlin/String, kotlin/String, kotlin/Long = ..., kotlinx.datetime/Instant, kotlinx.datetime/Instant, kotlin/String?) // io.openfeedback.model/Comment.|(kotlin.String;kotlin.String;kotlin.Long;kotlinx.datetime.Instant;kotlinx.datetime.Instant;kotlin.String?){}[0] diff --git a/sample-app-android/api/sample-app-android.api b/sample-app-android/api/sample-app-android.api new file mode 100644 index 0000000..f466cf8 --- /dev/null +++ b/sample-app-android/api/sample-app-android.api @@ -0,0 +1,14 @@ +public final class io/openfeedback/android/MainActivity : androidx/appcompat/app/AppCompatActivity { + public static final field $stable I + public fun ()V +} + +public final class io/openfeedback/android/MainApplication : android/app/Application { + public static final field $stable I + public field context Landroid/content/Context; + public fun ()V + public final fun getContext ()Landroid/content/Context; + public fun onCreate ()V + public final fun setContext (Landroid/content/Context;)V +} + diff --git a/settings.gradle.kts b/settings.gradle.kts index c576df6..8ed6a3c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,10 +1,12 @@ rootProject.name = "openfeedback-android-sdk" pluginManagement { - repositories { - gradlePluginPortal() - google() - mavenCentral() + listOf(repositories, dependencyResolutionManagement.repositories).forEach { + it.apply { + mavenCentral() + google() + gradlePluginPortal() + } } } @@ -19,4 +21,3 @@ include( ":sample-app-android", ":sample-app-shared", ) -