JavierSegoviaCordoba / kopy

Nested copies made easy in Kotlin
https://kopy.javiersc.com
193 stars 5 forks source link

`2.1.0-Beta1` support. #41

Open sureshg opened 1 month ago

sureshg commented 1 month ago

The plugin now shows this warning. Can we have the official support for 2.1.0 ?

Kopy uses a different Kotlin version, 2.0.20, than the Kotlin Gradle plugin applied to this project, 2.1.0-Beta1. It may not work as expected.
JavierSegoviaCordoba commented 1 month ago

@sureshg I have run all the tests and all of them are passing with version 2.1.0-Beta1, you can ignore that warning for this version 😄

Publishing a new version is not straightforward (I need to update Hubdle, publish it, and so on).

As the Kotlin version 2.0.21 will be released soon, I want to provide support for stable versions ASAP and only publish beta/rc versions if the plugin is broken to avoid having problems like downgrading to 2.0.30 if for whatever reason it is released in the future.

sureshg commented 3 weeks ago

Wasmjs compilation fails with the following error on 2.1.0-Beta1

e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing /Users/sgopal1/code/kotlin-mpp-playground/shared/src/commonMain/kotlin/dev/suresh/lang/Person.kt:6:1: java.lang.NoSuchMethodError: 'org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderKt.getRegularClassSymbolByClassId(org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider, org.jetbrains.kotlin.name.ClassId)'
        at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:57)
        at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:249)
        at org.jetbrains.kotlin.fir.resolve.transformers.AbstractFirStatusResolveTransformer.transformFile(FirStatusResolveTransformer.kt:542)
        at org.jetbrains.kotlin.fir.resolve.transformers.AbstractFirStatusResolveTransformer.transformFile(FirStatusResolveTransformer.kt:187)
        at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:46)
        at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:48)
        at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:36)
        at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runResolution(analyse.kt:24)
        at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:76)
        at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
        at org.jetbrains.kotlin.cli.js.klib.JsCompilerPipelineKt.compileModulesToAnalyzedFirWithLightTree(jsCompilerPipeline.kt:194)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.processSourceModuleWithK2(K2JSCompiler.kt:608)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.produceSourceModule(K2JSCompiler.kt:507)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.kt:333)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.kt:101)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:102)
        at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:316)
        at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:200)
        at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:75)
        at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
        at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
        at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
        at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
        at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:113)
        at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:608)
        at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:91)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1757)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:573)
        at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
        at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
        at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
        at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1576)
Caused by: java.lang.NoSuchMethodError: 'org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderKt.getRegularClassSymbolByClassId(org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider, org.jetbrains.kotlin.name.ClassId)'
        at com.javiersc.kotlin.kopy.compiler.fir.generation.FirKopyDeclarationGenerationExtension.createAnnotation(FirKopyDeclarationGenerationExtension.kt:408)
        at com.javiersc.kotlin.kopy.compiler.fir.generation.FirKopyDeclarationGenerationExtension.createCopyLikeFunction(FirKopyDeclarationGenerationExtension.kt:390)
        at com.javiersc.kotlin.kopy.compiler.fir.generation.FirKopyDeclarationGenerationExtension.createCopyFun(FirKopyDeclarationGenerationExtension.kt:191)
        at com.javiersc.kotlin.kopy.compiler.fir.generation.FirKopyDeclarationGenerationExtension.generateFunctions(FirKopyDeclarationGenerationExtension.kt:152)
        at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.generateMemberFunctions(FirGeneratedScopes.kt:210)
        at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.access$generateMemberFunctions(FirGeneratedScopes.kt:187)
        at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:73)
        at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:71)
        at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:40)
        at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedClassDeclaredMemberScope.processFunctionsByName(FirGeneratedScopes.kt:293)
        at org.jetbrains.kotlin.fir.scopes.FirCompositeScope.processFunctionsByName(FirCompositeScope.kt:57)
        at org.jetbrains.kotlin.fir.scopes.FirNameAwareCompositeScope.processFunctionsByName(FirCompositeScope.kt:90)
        at org.jetbrains.kotlin.fir.scopes.impl.FirClassAnySynthesizedMemberScope.processFunctionsByName(FirClassAnySynthesizedMemberScope.kt:100)
        at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectDeclaredFunctions(AbstractFirUseSiteMemberScope.kt:79)
        at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:73)
JavierSegoviaCordoba commented 3 weeks ago

I am going to ask on the compiler as it is existing on the JVM and it does not make sense it has been removed for other.

sureshg commented 3 weeks ago

Kopy uses a different Kotlin version, 2.0.20, than the Kotlin Gradle plugin applied to this project, 2.1.0-Beta1. It may not work as expected.

Also, it would be great to provide an option to hide the compiler mismatch warning message with a configuration in kopy {}