Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SmallRye GraphQL 2.12.0 and Kotlin 2.1 #45228

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

jmartisk
Copy link
Contributor

Also replaces #44809

@quarkus-bot quarkus-bot bot added area/arc Issue related to ARC (dependency injection) area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/gradle Gradle area/graphql area/smallrye labels Dec 20, 2024

This comment has been minimized.

Copy link

github-actions bot commented Dec 20, 2024

🎊 PR Preview 93eb395 has been successfully built and deployed to https://quarkus-pr-main-45228-preview.surge.sh/version/main/guides/

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@jmartisk
Copy link
Contributor Author

Ok it seems this needs a change in the quickstarts: quarkusio/quarkus-quickstarts#1483

@geoand
Copy link
Contributor

geoand commented Dec 20, 2024

The gradle test failure seems related:

Error:  Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 8.795 s <<< FAILURE! -- in io.quarkus.gradle.ConditionalDependenciesKotlinTest
Error:  io.quarkus.gradle.ConditionalDependenciesKotlinTest.buildProject -- Time elapsed: 8.787 s <<< FAILURE!
java.lang.AssertionError: Gradle build failed with exit code 1
	at app//io.quarkus.gradle.QuarkusGradleWrapperTestBase.runGradleWrapper(QuarkusGradleWrapperTestBase.java:140)
	at app//io.quarkus.gradle.QuarkusGradleWrapperTestBase.runGradleWrapper(QuarkusGradleWrapperTestBase.java:57)
	at app//io.quarkus.gradle.QuarkusGradleWrapperTestBase.runGradleWrapper(QuarkusGradleWrapperTestBase.java:52)
	at app//io.quarkus.gradle.ConditionalDependenciesKotlinTest.buildProject(ConditionalDependenciesKotlinTest.java:15)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)

@gsmet
Copy link
Member

gsmet commented Dec 20, 2024

I pushed a small fix for the Gradle failures.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@gsmet
Copy link
Member

gsmet commented Dec 20, 2024

I'm making progress on fixing the issues. I think we might have to upgrade Gradle too.

@quarkus-bot quarkus-bot bot added area/kotlin area/platform Issues related to definition and interaction with Quarkus Platform labels Dec 20, 2024
@gsmet
Copy link
Member

gsmet commented Dec 20, 2024

Even Gradle 8.12 released today isn't compatible with Kotlin 2.1.0: https://docs.gradle.org/current/userguide/compatibility.html#kotlin .

So I suppose this will have to wait.

Failure is:

shouldNotFailOnProjectDependenciesWithoutMain(Path)

org.gradle.testkit.runner.UnexpectedBuildFailure: Unexpected build execution failure in /tmp/junit16339159363799182023 with arguments [quarkusGenerateCode, --stacktrace]

Output:

FAILURE: Build failed with an exception.

* Where:
Build file '/tmp/junit16339159363799182023/mpp/build.gradle.kts' line: 11

* What went wrong:
'org.gradle.internal.buildoption.BuildOption$Value org.gradle.api.internal.StartParameterInternal.getIsolatedProjects()'

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

* Exception is:
java.lang.NoSuchMethodError: 'org.gradle.internal.buildoption.BuildOption$Value org.gradle.api.internal.StartParameterInternal.getIsolatedProjects()'
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76$isProjectIsolationEnabled$2.invoke(ProjectIsolationStartParameterAccessorG76.kt:16)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76$isProjectIsolationEnabled$2.invoke(ProjectIsolationStartParameterAccessorG76.kt:15)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76.isProjectIsolationEnabled(ProjectIsolationStartParameterAccessorG76.kt:15)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorKt.isProjectIsolationEnabled(ProjectIsolationStartParameterAccessor.kt:45)
	at org.jetbrains.kotlin.gradle.plugin.statistics.BuildFusService$Companion.registerIfAbsentImpl(BuildFusService.kt:94)
	at org.jetbrains.kotlin.gradle.plugin.statistics.BuildFusService$Companion.registerIfAbsent(BuildFusService.kt:80)
	at org.jetbrains.kotlin.gradle.plugin.DefaultKotlinBasePlugin.apply(KotlinPluginWrapper.kt:75)
	at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper.apply(KotlinPluginWrapper.kt:197)
	at org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper.apply(PluginWrappers.kt:74)
	at org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper.apply(PluginWrappers.kt:68)
	at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:54)
	at org.gradle.api.internal.plugins.RuleBasedPluginTarget.applyImperative(RuleBasedPluginTarget.java:51)
	at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:190)

@gsmet
Copy link
Member

gsmet commented Dec 20, 2024

@jmartisk is SmallRye GraphQL 2.12.0 compatible with current main? If so, I think we should probably update in main and keep this PR for the Kotlin update.

I will also create a separate PR for the Gradle update as I think we want it anyway.

Copy link

quarkus-bot bot commented Dec 20, 2024

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit cbec954.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

Copy link

quarkus-bot bot commented Dec 21, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit cbec954.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
JVM Tests - JDK 17 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 21 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 17 Windows Build Failures Logs Raw logs 🔍
Quickstarts Compilation - JDK 17 Compile Quickstarts Failures Logs Raw logs 🚧

You can consult the Develocity build scans.

Failures

⚙️ JVM Tests - JDK 17 #

- Failing: devtools/gradle/gradle-application-plugin 

📦 devtools/gradle/gradle-application-plugin

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (gradle) on project io.quarkus.gradle.plugin: Command execution failed.


⚙️ JVM Tests - JDK 21 #

- Failing: devtools/gradle/gradle-application-plugin 

📦 devtools/gradle/gradle-application-plugin

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (gradle) on project io.quarkus.gradle.plugin: Command execution failed.


⚙️ JVM Tests - JDK 17 Windows #

- Failing: devtools/gradle/gradle-application-plugin 

📦 devtools/gradle/gradle-application-plugin

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (gradle) on project io.quarkus.gradle.plugin: Command execution failed.


⚙️ Quickstarts Compilation - JDK 17 #

- Failing: hibernate-orm-panache-kotlin-quickstart 

📦 hibernate-orm-panache-kotlin-quickstart

Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.9.23:compile (compile) on project hibernate-orm-panache-kotlin-quickstart: Compilation failure


Flaky tests - Develocity

⚙️ JVM Tests - JDK 17

📦 integration-tests/reactive-messaging-kafka

io.quarkus.it.kafka.KafkaConnectorTest.testRequestReply - History

  • iterable contents differ at index [3], expected: <reply-4> but was: <{"details":"Error id a8805af0-442c-4204-b388-1729fbb9c003-1, org.jboss.resteasy.spi.UnhandledException: io.smallrye.mutiny.TimeoutException","stack":"org.jboss.resteasy.spi.UnhandledException: io.smallrye.mutiny.TimeoutException\n\tat org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:107)\n\tat org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:344)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:205)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:452)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$invokePropagateNotFound$6(SynchronousDispatcher.java:275)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:154)\n\tat org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchC... - org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError: iterable contents differ at index [3], expected: <reply-4> but was: <{"details":"Error id a8805af0-442c-4204-b388-1729fbb9c003-1, org.jboss.resteasy.spi.UnhandledException: io.smallrye.mutiny.TimeoutException","stack":"org.jboss.resteasy.spi.UnhandledException: io.smallrye.mutiny.TimeoutException\n\tat org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:107)\n\tat org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:344)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:205)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:452)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$invokePropagateNotFound$6(SynchronousDispatcher.java:275)\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:154)\n\tat org.jboss.resteasy.core.interception.jaxrs.PreMatchCon...

⚙️ JVM Tests - JDK 17 Windows

📦 integration-tests/opentelemetry-quickstart

io.quarkus.it.opentelemetry.OpenTelemetryDisabledTest.buildTimeDisabled - History

  • Condition with Lambda expression in io.quarkus.it.opentelemetry.OpenTelemetryDisabledTest was not fulfilled within 200 milliseconds. - org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: Condition with Lambda expression in io.quarkus.it.opentelemetry.OpenTelemetryDisabledTest was not fulfilled within 200 milliseconds.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:26)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:975)
	at io.quarkus.it.opentelemetry.OpenTelemetryDisabledTest.buildTimeDisabled(OpenTelemetryDisabledTest.java:29)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)

@jmartisk
Copy link
Contributor Author

jmartisk commented Dec 22, 2024

Do you know what version of Kotlin we can upgrade to?
SmallRye GraphQL bundles org.jetbrains.kotlin:kotlin-metadata-jvm 2.1.0. It also depends on kotlin compiler 2.1.0 but that is only used in tests, so I think that if Quarkus upgrades to a lower version of Kotlin, it should still work, but we probably do need kotlin-metadata-jvm 2.0+ (1.x definitely won't work because they've changed Java package names)

@mschorsch
Copy link
Contributor

Even Gradle 8.12 released today isn't compatible with Kotlin 2.1.0: https://docs.gradle.org/current/userguide/compatibility.html#kotlin .

So I suppose this will have to wait.

Failure is:

shouldNotFailOnProjectDependenciesWithoutMain(Path)

org.gradle.testkit.runner.UnexpectedBuildFailure: Unexpected build execution failure in /tmp/junit16339159363799182023 with arguments [quarkusGenerateCode, --stacktrace]

Output:

FAILURE: Build failed with an exception.

* Where:
Build file '/tmp/junit16339159363799182023/mpp/build.gradle.kts' line: 11

* What went wrong:
'org.gradle.internal.buildoption.BuildOption$Value org.gradle.api.internal.StartParameterInternal.getIsolatedProjects()'

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

* Exception is:
java.lang.NoSuchMethodError: 'org.gradle.internal.buildoption.BuildOption$Value org.gradle.api.internal.StartParameterInternal.getIsolatedProjects()'
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76$isProjectIsolationEnabled$2.invoke(ProjectIsolationStartParameterAccessorG76.kt:16)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76$isProjectIsolationEnabled$2.invoke(ProjectIsolationStartParameterAccessorG76.kt:15)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorG76.isProjectIsolationEnabled(ProjectIsolationStartParameterAccessorG76.kt:15)
	at org.jetbrains.kotlin.gradle.plugin.internal.ProjectIsolationStartParameterAccessorKt.isProjectIsolationEnabled(ProjectIsolationStartParameterAccessor.kt:45)
	at org.jetbrains.kotlin.gradle.plugin.statistics.BuildFusService$Companion.registerIfAbsentImpl(BuildFusService.kt:94)
	at org.jetbrains.kotlin.gradle.plugin.statistics.BuildFusService$Companion.registerIfAbsent(BuildFusService.kt:80)
	at org.jetbrains.kotlin.gradle.plugin.DefaultKotlinBasePlugin.apply(KotlinPluginWrapper.kt:75)
	at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper.apply(KotlinPluginWrapper.kt:197)
	at org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper.apply(PluginWrappers.kt:74)
	at org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper.apply(PluginWrappers.kt:68)
	at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:54)
	at org.gradle.api.internal.plugins.RuleBasedPluginTarget.applyImperative(RuleBasedPluginTarget.java:51)
	at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:190)

https://kotlinlang.org/docs/whatsnew21.html#gradle-improvements

Kotlin 2.1.0 is fully compatible with Gradle 7.6.3 through 8.6. Gradle versions 8.7 to 8.10 are also supported
...
You can also use Gradle versions up to the latest Gradle release, but if you do, keep in mind that you might encounter deprecation warnings or some new Gradle features might not work.

@gsmet
Copy link
Member

gsmet commented Dec 29, 2024

Well, we have to figure our why we are getting this error then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/arc Issue related to ARC (dependency injection) area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/gradle Gradle area/graphql area/kotlin area/platform Issues related to definition and interaction with Quarkus Platform area/smallrye triage/flaky-test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants