Status Update
Comments
da...@google.com <da...@google.com>
ap...@google.com <ap...@google.com> #2
Can you share your Gradle build file and how room-compiler
is being setup? The error is indicating that the Room processor likely did not run which in turns means the generated implementation of the database was not created and can't be found.
ap...@google.com <ap...@google.com> #3
This is my gradle file. I need to re -explain it runs well in Android, iOS, and Desktop's debug.It only crash when runRelease on desktop.
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
alias(libs.plugins.kotlinCocoapods)
alias(libs.plugins.googleKsp)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.androidxRoom)
}
kotlin {
androidTarget {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
iosX64()
iosArm64()
iosSimulatorArm64()
cocoapods {
summary = "Some description for the Shared Module"
homepage = "Link to the Shared Module homepage"
version = "1.0"
ios.deploymentTarget = "13.0"
podfile = project.file("../iosApp/Podfile")
framework {
baseName = "ComposeApp"
isStatic = true
}
}
jvm("desktop")
sourceSets {
val desktopMain by getting
androidMain.dependencies {
implementation(compose.preview)
implementation(libs.androidx.activity.compose)
}
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.navigation)
// Serialization
implementation(libs.kotlinx.serialization.json)
// Room
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.sqlite.bundled)
}
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
implementation(libs.kotlinx.coroutines.swing)
}
}
}
android {
namespace = "xxx"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
applicationId = "xxx"
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
dependencies {
debugImplementation(compose.uiTooling)
}
compose.desktop {
application {
mainClass = "xxx.MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "xxx"
packageVersion = "1.0.0"
}
}
}
dependencies {
kspCommonMainMetadata(libs.koin.ksp.compiler)
listOf(
"kspAndroid",
"kspDesktop",
"kspIosX64",
"kspIosArm64",
"kspIosSimulatorArm64"
).forEach {
add(it, libs.androidx.room.compiler)
}
}
project.tasks.withType(KotlinCompilationTask::class.java).configureEach {
if (name != "kspCommonMainKotlinMetadata") {
dependsOn("kspCommonMainKotlinMetadata")
}
}
kotlin.sourceSets.commonMain {
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
}
room {
schemaDirectory("$projectDir/schemas")
}
ap...@google.com <ap...@google.com> #4
Does release
have some type of obfuscation? The generated database file is found via reflection and if the class is renamed due to obfuscation, that could be a cause. For room-runtime
ships with proguard rules
Also, one thing in the build file is you seem to have an outdated workaround where Room is applied to the common source set and a manual dependency to the KSP generated in metadata is added, those workarounds should be removed if using the latest version. Specifically the lines:
// in dependencies
kspCommonMainMetadata(libs.koin.ksp.compiler)
project.tasks.withType(KotlinCompilationTask::class.java).configureEach {
if (name != "kspCommonMainKotlinMetadata") {
dependsOn("kspCommonMainKotlinMetadata")
}
}
kotlin.sourceSets.commonMain {
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
}
I'm not sure if it'll solve your issue but wanted to call them out.
ap...@google.com <ap...@google.com> #5
These codes are because I use koin-annotations. If I delete any of them, it will cause koin-annotations to be unable to generate code normally.
ap...@google.com <ap...@google.com> #6
Gotcha - I think the issue is obfuscation then.
Can you try disabling it:
compose.desktop {
application {
buildTypes.release.proguard.obfuscate = false
...
}
}
ap...@google.com <ap...@google.com> #7
Two more alternatives:
-
Include a proguard file with the same rule specified by Room's included one:
-keep class * extends androidx.room.RoomDatabase { void <init>(); }
via the DSLbuildTypes.release.proguard.configurationFiles
-
Include a 'factory' in your database builder that uses the database constructor in a more manual way, avoiding the reflection that is for convinience:
Room.inMemoryDatabaseBuilder<MyDatabase>(
factory = { MyDatabaseCtor.initialize() }
)
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
Author: Daniel Santiago Rivera <
Link:
Include Proguard rules in Room's runtime JVM artifacts
Expand for full commit details
Include Proguard rules in Room's runtime JVM artifacts
Bug: 392657750
Test: Manually on sample app with ./gradlew runRelease
Change-Id: I43950728d7227e13979945a64a118e55270ed4e0
Files:
- M
room/room-runtime/build.gradle
- M
room/room-runtime/src/androidMain/proguard-rules.pro
- A
room/room-runtime/src/jvmMain/resources/META-INF/com.android.tools/proguard/room.pro
- A
room/room-runtime/src/jvmMain/resources/META-INF/com.android.tools/r8/room.pro
- A
room/room-runtime/src/jvmMain/resources/META-INF/proguard/room.pro
Hash: 977f11f1f2adcc7ed85c109eca38b96dfd2c3f8d
Date: Tue Jan 28 12:56:52 2025
ap...@google.com <ap...@google.com> #9
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-runtime:2.7.0-beta01
androidx.room:room-runtime-android:2.7.0-beta01
androidx.room:room-runtime-iosarm64:2.7.0-beta01
androidx.room:room-runtime-iossimulatorarm64:2.7.0-beta01
androidx.room:room-runtime-iosx64:2.7.0-beta01
androidx.room:room-runtime-jvm:2.7.0-beta01
androidx.room:room-runtime-linuxarm64:2.7.0-beta01
androidx.room:room-runtime-linuxx64:2.7.0-beta01
androidx.room:room-runtime-macosarm64:2.7.0-beta01
androidx.room:room-runtime-macosx64:2.7.0-beta01
ap...@google.com <ap...@google.com> #10
After upgrading 2.7.0-beta01, this crash still exists.
Caused by: java.lang.RuntimeException: Cannot find implementation for com.develop.ximi.db.AppDatabase. AppDatabase_Impl does not exist. Is Room annotation processor correctly configured?
Component used: room-runtime, room-compiler, sqlite-bundled Version used: room: 2.7.0-beta01, sqlite: 2.5.0-beta01
ap...@google.com <ap...@google.com> #11
Re-opening since this doesn't seem to be resolved.
I'm not sure what else we need to include in the artifact, the JVM .jar
now contains rules to avoid removing the default no-arg constructor:
❯ unzip -l /Users/danysantiago/Downloads/room-runtime-jvm-2.7.0-beta01.jar
Archive: /Users/danysantiago/Downloads/room-runtime-jvm-2.7.0-beta01.jar
Length Date Time Name
--------- ---------- ----- ----
0 02-01-1980 00:00 META-INF/
25 02-01-1980 00:00 META-INF/MANIFEST.MF
703 02-01-1980 00:00 META-INF/room-runtime.kotlin_module
...
0 02-01-1980 00:00 META-INF/com.android.tools/
0 02-01-1980 00:00 META-INF/com.android.tools/proguard/
62 02-01-1980 00:00 META-INF/com.android.tools/proguard/room.pro
0 02-01-1980 00:00 META-INF/com.android.tools/r8/
62 02-01-1980 00:00 META-INF/com.android.tools/r8/room.pro
0 02-01-1980 00:00 META-INF/proguard/
62 02-01-1980 00:00 META-INF/proguard/room.pro
0 02-01-1980 00:00 META-INF/androidx/
0 02-01-1980 00:00 META-INF/androidx/room/
0 02-01-1980 00:00 META-INF/androidx/room/room-runtime/
But it seems that is not enough?
However if I create the same proguard file and include it via the DSL it works:
compose.desktop {
application {
mainClass = "org.example.project.MainKt"
buildTypes.release.proguard {
configurationFiles.from(project.layout.projectDirectory.file("proguard.pro"))
}
}
}
It seems the issue might be with Kotlin Gradle Plugin consuming proguard rules in dependencies?
ap...@google.com <ap...@google.com> #12
If turn off the obfuscation, there is no error, but it's certainly not a good solution
compose.desktop {
application {
buildTypes.release{
proguard {
isEnabled = true // false to disable proguard
optimize = true
obfuscate = true // if set to false, no err. default is false.
// additional rule
configurationFiles.from(project.layout.projectDirectory.file("proguard-rules.pro"))
}
}
}
}
After using version 2.7.0-beta01, I also get "AppDatabase_Impl does not exist. Is Room annotation processor correctly configured?"
then I used "-keep" on the database code and generated code path. eg:
-keep class com.example.room.** {* ;}
but I got the new error, So now I really don't know how to do it。
SLF4J(I): Connected with provider of type [ch.qos.logback.classic.spi.LogbackServiceProvider]
Exception in thread "AWT-EventQueue-0" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at ayr.a(KClassUtil.jvmAndroid.kt:44)
at ayr.a(KClassUtil.jvmAndroid.kt:29)
at com.example.room.di.DatabaseCreatorFactory_jvmKt$getDatabaseBuilder$$inlined$databaseBuilder$default$1.invoke(Room.jvm.kt:57)
at com.example.room.di.DatabaseCreatorFactory_jvmKt$getDatabaseBuilder$$inlined$databaseBuilder$default$1.invoke(Room.jvm.kt:57)
at awc$a.a(RoomDatabase.jvmNative.kt:516)
at com.example.room.di.DatabaseCreatorFactory_jvmKt.getRoomDatabase(DatabaseCreatorFactory.jvm.kt:35)
at com.example.room.di.DatabaseCreatorFactory.createRoomDatabase(DatabaseCreatorFactory.jvm.kt:12)
at com.example.room.di.LocalDb.db_delegate$lambda$0(DatabaseCreatorFactory.jvm.kt:17)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at com.example.room.di.LocalDb.getDb(DatabaseCreatorFactory.jvm.kt:17)
at org.lodestone.app.c.invokeSuspend(Main.kt:22)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at vr.a(FlushCoroutineDispatcher.skiko.kt:93)
at vr.invoke(FlushCoroutineDispatcher.skiko.kt:80)
at vo.a(FlushCoroutineDispatcher.skiko.kt:102)
at vo.a(FlushCoroutineDispatcher.skiko.kt:80)
at adn.b(ComposeSceneRecomposer.skiko.kt:91)
at abg.a(BaseComposeScene.skiko.kt:165)
at ade.a(ComposeSceneMediator.desktop.kt:574)
at ade.invoke(ComposeSceneMediator.desktop.kt:572)
at aob.b(SwingInteropContainer.desktop.kt:229)
at acr.onRender(ComposeSceneMediator.desktop.kt:572)
at org.jetbrains.skiko.SkiaLayer.update$skiko(SkiaLayer.awt.kt:533)
at org.jetbrains.skiko.redrawer.AWTRedrawer.update(AWTRedrawer.kt:54)
at org.jetbrains.skiko.redrawer.Direct3DRedrawer.redrawImmediately(Direct3DRedrawer.kt:74)
at org.jetbrains.skiko.SkiaLayer.tryRedrawImmediately(SkiaLayer.awt.kt:373)
at org.jetbrains.skiko.SkiaLayer.paint(SkiaLayer.awt.kt:346)
at aeg.paint(WindowSkiaLayerComponent.desktop.kt:64)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:952)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1128)
at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:952)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1128)
at aqv.a(Window.desktop.kt:630)
at aqv.invoke(Window.desktop.kt:615)
at aoy.a(AwtWindow.desktop.kt:78)
at aoy.invoke(AwtWindow.desktop.kt:76)
at anc.a(UpdateEffect.desktop.kt:59)
at anc.invoke(UpdateEffect.desktop.kt:55)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2442)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:505)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:261)
at amy.b(UpdateEffect.desktop.kt:55)
at amy.a(UpdateEffect.desktop.kt:64)
at amy.invoke(UpdateEffect.desktop.kt:47)
at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:82)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1364)
at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:992)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:1013)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1150)
at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:649)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:635)
at aoq.invokeSuspend(Application.desktop.kt:221)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [abx$b@4d3249cd, androidx.compose.runtime.BroadcastFrameClock@4da3912d, StandaloneCoroutine{Cancelling}@7be3a417, vo@55ce55d]
Caused by: java.lang.ExceptionInInitializerError
at azs.a(AtomicFU.kt:39)
at azs.a(AtomicFU.kt:41)
at axg.<init>(CloseBarrier.kt:43)
at awc.<init>(RoomDatabase.jvmNative.kt:77)
at com.example.room.database.AppDatabase.<init>(AppDatabase.kt:19)
at com.example.room.database.AppDatabase_Impl.<init>(AppDatabase_Impl.kt:33)
... 74 more
Caused by: java.lang.IllegalArgumentException: Must be integer type
at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.<init>(AtomicIntegerFieldUpdater.java:417)
at java.base/java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater(AtomicIntegerFieldUpdater.java:93)
at azt.<clinit>(AtomicFU.kt:315)
... 80 more
[Incubating] Problems report is available at: file:///E:/libs/kmp/desktop-template/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 33s
46 actionable tasks: 3 executed, 43 up-to-date
ap...@google.com <ap...@google.com> #13
So it turns out Proguard for KMP Desktop does not consume library rules like in Android (
re Caused by: java.lang.ExceptionInInitializerError
, can you try with Room version 2.7.0-rc01 ? We removed the usages of AtomicFu from the JVM / Android variants and based on my testing and after adding the progaurd rule -keep class * extends androidx.room.RoomDatabase { <init>(); }
and enabling obfuscation, things work for me.
ap...@google.com <ap...@google.com> #14
Branch: androidx-main
commit 6edd878457349e6b7b7b8d8045ef4299d1481723
Author: Kuan-Ying Chou <kuanyingchou@google.com>
Date: Wed Aug 14 17:56:58 2024
Update tests that use room-compiler-processing-testing
- Remove KOTLINC_LANGUAGE_1_9_ARGS from tests that now pass without it.
- Replace manually specified args with KOTLINC_LANGUAGE_1_9_ARGS.
- Add comments/Github issue links to all KOTLINC_LANGUAGE_1_9_ARGS usages in room-compiler-processing.
- Two new tests fail with KSP2 under current setup (InternalModifierTest and KspTypeNamesGoldenTest). Need to investigate.
Test: existing tests still pass
Bug: 314151707
Change-Id: Ic1617bd88ae0d08d92fa1ca3df990c1116b0e5d0
M room/room-compiler-processing-testing/src/test/java/androidx/room/compiler/processing/util/TestRunnerTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/FallbackLocationInformationTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/InternalModifierTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/MethodSpecHelperTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationBoxTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationValueTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XExecutableElementTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XExecutableTypeTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XMessagerTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/compat/XConvertersTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/javac/kotlin/KotlinMetadataElementTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspJvmDescriptorUtilsTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt
M room/room-compiler/src/test/kotlin/androidx/room/ProcessorTestWrapper.kt
ap...@google.com <ap...@google.com> #15
Branch: androidx-main
commit 5edbaa2d9bed50bfb3080a0d454ab1c4cfbc36cd
Author: Kuan-Ying Chou <kuanyingchou@google.com>
Date: Thu Aug 15 17:15:41 2024
Add KSP issue links for InternalModifierTest and KspTypeNamesGoldenTest
Bug: 314151707
Test: existing tests still pass
Change-Id: Id8620469172bf5d6eb109d33a149f112a5afa7af
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/InternalModifierTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/ksp/KspTypeNamesGoldenTest.kt
ap...@google.com <ap...@google.com> #16
Branch: androidx-main
commit ff918f6c5cf6c7fc01496ec9818b7882ec46a7d7
Author: Kuan-Ying Chou <kuanyingchou@google.com>
Date: Fri Aug 16 18:43:52 2024
Update KSP issue links in room-compiler-processing and room-compiler
Adding and removing KSP issue links as some KSP issues are resolved and some are added.
This CL also changes XTypeElementTest.allMethods_withJvmNames() as the behaviors changed a bit in KSP2 and the test is only to document the behaviors.
Bug: 314151707
Test: existing tests still pass
Change-Id: I9362f91d6a5fb1e2868e06595c36dd2b77085289
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationBoxTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationTest.kt
M room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
M room/room-compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
M room/room-compiler/src/test/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegateTest.kt
ap...@google.com <ap...@google.com> #17
Project: platform/frameworks/support
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Update Kotlin and KSP to 2.1.0-Beta1 in room-compiler-processing-testing
Expand for full commit details
Update Kotlin and KSP to 2.1.0-Beta1 in room-compiler-processing-testing
Update Kotlin Compiler Embeddable and KSP used by XProcessing testing to 2.1.0-Beta1 and 2.1.0-Beta1-1.0.25. This only affects users of XProcessing testing and not users of Room or Dagger. Some other changes include:
- Pass JVM module name to KSP2 as its processing is separated from Kotlin compilation and its default module name is an empty string instead of "main".
- Explicitly disable K2 KAPT for XProcessing testing. This can be enabled by XProcesing testing users by passing `-Xuse-k2-kapt` to kotlinc arguments.
- Add `isKSP2` to XTestInvocation.
- Add a test for K2 related flags.
- Update FieldProcessorTest for covariant Java array in KSP2.
- Remove the 1.9 language-version flag from some tests as the related issues have been fixed in KSP2.
Bug: 314151707
Test: existing tests still pass
Change-Id: If80933c113f9b31dabe49acf4a32c3e4381467f5
Files:
- M
room/room-compiler-processing-testing/build.gradle
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/CompilationResultSubject.kt
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/XTestInvocation.kt
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/compiler/KotlinCliRunner.kt
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/compiler/Ksp2Compilation.kt
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/compiler/TestDefaultOptions.kt
- M
room/room-compiler-processing-testing/src/test/java/androidx/room/compiler/processing/util/TestRunnerTest.kt
- M
room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/synthetic/KspSyntheticPropertyMethodElement.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/FallbackLocationInformationTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/KotlinMetadataTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationBoxTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XAnnotationValueTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XExecutableElementTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XMessagerTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/compat/XConvertersTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
Hash: c42f580c795db5d708b4f6fcfff1bc58b93d067f
Date: Thu Sep 19 20:47:26 2024
ap...@google.com <ap...@google.com> #18
Project: platform/frameworks/support
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Remove ordering check in XTypeElementTest.declaredAndInstancemethods
Expand for full commit details
Remove ordering check in XTypeElementTest.declaredAndInstancemethods
Removing the ordering check in KSP2 as it can't restore the declaration order in companion objects for now.
Bug: 314151707
Test: XTypeElementTest.declaredAndInstancemethods
Change-Id: I1e28575f9fcc6595fac10ed1266dff917a8fd873
Files:
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
Hash: 6710458dc0acbe3a7bc90a68fde6dcf6c2665640
Date: Tue Oct 15 14:58:02 2024
ap...@google.com <ap...@google.com> #19
Project: platform/frameworks/support
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Fix kotlin.Unit
in KSP2
Expand for full commit details
Fix `kotlin.Unit` in KSP2
We convert kotlin.* types to Java equivalents in KSDeclaration.asJTypeName() by calling KSP's `Resolver.mapToJvmSignature()`. However, this function now (with 2.0.21-1.0.26-SNAPSHOT) maps `kotlin.Unit` to "V"(void) instead of "Lkotlin/Unit;" and this change breaks our code. This CL fixes that by not calling this function as we shouldn't convert `kotlin.Unit` for most cases in the first place.
There are only few cases we need `void` when getting Java typename:
1. `void` as the return type of a method in Java.
2. `kotlin.Unit` as the return type of a function in Kotlin directly (not a type variable).
3. `kotlin.Unit` as the return type of a Kotlin property setter.
And we use KspVoidType to cover these. From now on KspVoidType is only used when its Java typename should be 'void'. This also fixes an issue that sometimes we return 'void' when a parameter type is `kotlin.Unit`.
Test: XTypeNameTest.kt
Bug: 314151707
Change-Id: I08b4799ee9901b1e50cd61c84d4f8a6913af81e3
Files:
- M
room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSFunctionExt.kt
- M
room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KSTypeJavaPoetExt.kt
- M
room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspProcessingEnv.kt
- M
room/room-compiler-processing/src/test/java/androidx/room/compiler/codegen/XTypeNameTest.kt
Hash: fc64dffe4a1ae6e4ef5721201bf44fc00eba41d5
Date: Mon Oct 21 15:03:46 2024
ap...@google.com <ap...@google.com> #20
Project: platform/prebuilts/androidx/external
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Add KSP 2.0.21-1.0.28 artifacts
Expand for full commit details
Add KSP 2.0.21-1.0.28 artifacts
Bug: 314151707
Test: existing tests still pass
Change-Id: I518dbb6fdac219163cf6f806f8f4386964a2dff1
Files:
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/LICENSE
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar.asc
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28-sources.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar.asc
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom.asc
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom.asc.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom.md5
- A
com/google/devtools/ksp/symbol-processing-aa-embeddable/2.0.21-1.0.28/symbol-processing-aa-embeddable-2.0.21-1.0.28.pom.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/LICENSE
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar.asc
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28-sources.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar.asc
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module.asc
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module.asc.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.module.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom.asc
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom.asc.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom.md5
- A
com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.pom.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/LICENSE
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar.asc
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28-sources.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar.asc
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.jar.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module.asc
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module.asc.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.module.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom.asc
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom.asc.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom.asc.sha1
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom.md5
- A
com/google/devtools/ksp/symbol-processing-common-deps/2.0.21-1.0.28/symbol-processing-common-deps-2.0.21-1.0.28.pom.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/LICENSE
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar.asc
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28-sources.jar.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar.asc
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar.asc.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar.asc.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.jar.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom.asc
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom.asc.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom.asc.sha1
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom.md5
- A
com/google/devtools/ksp/symbol-processing/2.0.21-1.0.28/symbol-processing-2.0.21-1.0.28.pom.sha1
Hash: 3c140afec1b7103d6f6b879cc6d7edfa96b5f501
Date: Tue Nov 19 15:07:57 2024
ap...@google.com <ap...@google.com> #21
Project: platform/frameworks/support
Branch: androidx-main
Author: Kuan-Ying Chou <
Link:
Update KSP to 2.0.21-1.0.28
Expand for full commit details
Update KSP to 2.0.21-1.0.28
Bug: 314151707
Test: existing tests still pass
Change-Id: I7ebc4535b4cf407f9edd04f2694e023c9c28bcae
Files:
- M
room/room-compiler-processing-testing/build.gradle
- M
room/room-compiler-processing-testing/src/main/java/androidx/room/compiler/processing/util/compiler/TestKspRegistrar.kt
Hash: 853f95402b61632b9fe28d7ac76e6304439174ab
Date: Tue Nov 19 15:04:54 2024
da...@google.com <da...@google.com> #22
Marking this as fixed - The main changes for XProcessing processors to support KSP2 (such as Room and Dagger) is done and XProcessing-Testing also supports running tests with KSP2. All XProcessing tests are passing with KSP2 and 98% of Room tests are in KSP2, the remaining pending KSP fixes. Remaining issues presents when running KSP2 vs KSP1 are regular KSP or XProcessing issues and we'll work towards fixing them, I think the stability is in a decent place to mark this as fixed and continue with regular maintenance and stability improvements.
ap...@google.com <ap...@google.com> #23
Project: platform/frameworks/support
Branch: androidx-main
Author: Daniel Santiago Rivera <
Link:
Move remaining Room compilation tests to KSP2
Expand for full commit details
Move remaining Room compilation tests to KSP2
Some intended tests changes where done:
* InsertOrUpsertShortcutFunctionProcessorTest and DeleteOrUpdateShortcutFunctionProcessorTest - Array types in KSP2 are covariant. This aligns with Java's array types behaviour and was one of the noted changes from KSP1 to KSP2
* DataClassProcessorTest - Accessor (getter or setter) JVM name is slightly different in KSP2. This doesn't really affect code generation or Room as the names used are those provided by the AST so the test was adjusted for KSP2.
* TableEntityProcessorTest - Order of synthetic accessors (getter or setter) in KSP2 are consistent, getters followed by setters. This also doesn't affect Room and only affected the error message in the test when displaying multiple getter / setter for a property column. The test source was simply adjusted to match KSP2 and Java.
Bug: 314151707
Test: ./gradlew :room:room-compiler:test
Change-Id: If0cdf6cf01661d747e8c131865effbdfdaef610a
Files:
- D
room/room-compiler/src/test/kotlin/androidx/room/ProcessorTestWrapper.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/ext/ElementExtTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/parser/SQLTypeAffinityTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/AutoMigrationProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/BaseDaoTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/CustomConverterProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DataClassProcessorTargetFunctionTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DataClassProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseConstructorProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/DeleteOrUpdateShortcutFunctionProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/GeneratedCustomConverterTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/InsertOrUpsertShortcutFunctionProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/ProjectionExpanderTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/QueryFunctionProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/RawQueryFunctionProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/RemoveUnusedColumnsTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/TableEntityProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/TransactionFunctionProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/processor/autovalue/AutoValuePojoProcessorDelegateTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/BuiltInConverterFlagsTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/CustomTypeConverterResolutionTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/NullabilityAwareTypeConverterStoreTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAdapterStoreTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/TypeAssignmentTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/TypeConverterStoreTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/solver/query/QueryWriterTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/testing/InProcessorTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/writer/AutoMigrationWriterTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/writer/BaseDaoKotlinCodeGenTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/writer/DatabaseObjectConstructorWriterKotlinCodeGenTest.kt
- M
room/room-compiler/src/test/kotlin/androidx/room/writer/OpenDelegateWriterTest.kt
Hash: 097a642be66db27285ce0988559650a1078e3925
Date: Fri Jan 24 11:37:13 2025
pr...@google.com <pr...@google.com> #24
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-compiler:2.7.0-beta01
Description
Currently we use KAPT3 infra which does not work with K2 and FIR (front-end intermediate representation) light mode hence xprocessing-testing Kotlin compilation is forced to Kotlin language version 1.9.
Moreover go over the KSP 2 differences and make workarounds for xprocessing. See