cortinico / ktfmt-gradle

A Gradle plugin to apply ktfmt to your builds, and reformat you Kotlin source code like a glimpse 🧹🐘
MIT License
149 stars 20 forks source link

[Chore] build script throws exception in verifyDatabaseMigration #321

Closed simonhauck closed 1 month ago

simonhauck commented 1 month ago

🐛 Describe the bug

The build log reports always an exception

Log Entry ```shell > Task :example:verifyMainDatabaseMigration Changing log factory from null to null java.lang.Throwable at com.intellij.openapi.diagnostic.Logger.logFactoryChanged(Logger.java:79) at com.intellij.openapi.diagnostic.Logger.setFactory(Logger.java:70) at com.alecstrong.sql.psi.core.ApplicationEnvironment.(SqlCoreEnvironment.kt:50) at com.alecstrong.sql.psi.core.SqlCoreEnvironment.(SqlCoreEnvironment.kt:77) at app.cash.sqldelight.core.SqlDelightEnvironment.(SqlDelightEnvironment.kt:73) at app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction$environment$2.invoke(VerifyMigrationTask.kt:102) at app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction$environment$2.invoke(VerifyMigrationTask.kt:101) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction.getEnvironment(VerifyMigrationTask.kt:101) at app.cash.sqldelight.gradle.VerifyMigrationTask$VerifyMigrationAction.execute(VerifyMigrationTask.kt:118) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:[54](https://github.com/cortinico/ktfmt-gradle/actions/runs/9909618785/job/27378078211?pr=319#step:5:55)) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30) at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:102) at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:71) at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:146) at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41) at org.gradle.process.internal.worker.request.WorkerAction.lambda$run$0(WorkerAction.java:143) at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80) at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:[56](https://github.com/cortinico/ktfmt-gradle/actions/runs/9909618785/job/27378078211?pr=319#step:5:57)8) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:[63](https://github.com/cortinico/ktfmt-gradle/actions/runs/9909618785/job/27378078211?pr=319#step:5:64)5) at java.base/java.lang.Thread.run(Thread.java:840) ```

⚠️ Current behavior

An exception is in every build log. This can be a bit confusing at first.

✅ Expected behavior

The log contains only exceptions if something is wrong.

@cortinico It seems that the dependency is not really required. If you are okay with it, I would remove it.

💣 Steps to reproduce

📷 Screenshots

📱 Tech info

cortinico commented 1 month ago

@cortinico It seems that the dependency is not really required. If you are okay with it, I would remove it.

Which dependency do you mean?

simonhauck commented 1 month ago

The plugin id("app.cash.sqldelight") version "2.0.2" in the example build.gradle.kts

cortinico commented 1 month ago

I'd rather keep it. It was added due to https://github.com/cortinico/ktfmt-gradle/issues/158 to have a test bed to make sure we don't break compatibility with sqldelight

simonhauck commented 1 month ago

I see. I tried to figure out what happens, but maybe this is a bug in SqlDelight itself https://github.com/cashapp/sqldelight/issues/5256.

We could try to add tasks.verifySqlDelightMigration { enabled = false }. I checked that the kotlin stubs will still be generated, so we would notice if something breaks. But maybe this exception no longer occurs in the logs

cortinico commented 1 month ago

I'd say let's just disable the task as you suggest as at the end of the day we care about the generated code