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

Bump org.jetbrains.kotlin:kotlin-bom from 1.9.23 to 2.0.0 #40745

Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github May 21, 2024

Bumps org.jetbrains.kotlin:kotlin-bom from 1.9.23 to 2.0.0.

Release notes

Sourced from org.jetbrains.kotlin:kotlin-bom's releases.

Kotlin 2.0.0

Changelog

Analysis. API

New Features

  • KT-65327 Support reading klib contents in Analysis API

Performance Improvements

  • KT-65560 K2: Anaysis API: ContextCollector triggers redundant resolution in the case of file elements
  • KT-64987 Analysis API: 50GB memory allocation on creating empty kotlinx.collections.immutable.persistentMapOf
  • KT-61789 K2: optimize getFirForNonKtFileElement for references inside super type reference
  • KT-59498 K2: getOnAirGetTowerContextProvider took too much time due to on air resolve
  • KT-61728 Analysis API: optimize AllCandidatesResolver.getAllCandidates

Fixes

  • KT-65561 Analysis API: dummy.kt is not a physical file
  • KT-65616 K2: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus from STATUS
  • KT-65600 Analysis Api: FirFile for KtCodeFragments are created and not updated on changes
  • KT-64919 K2 IDE: Implement KMP support for sealed class inheritors
  • KT-64241 K2: Unresolved calls to functions in scripts depending on included projects
  • KT-65813 Analysis API Standalone: FirDeclarationForCompiledElementSearcher does not find compiled elements
  • KT-66052 AA: render expect/actual modifier
  • KT-66795 KtCodeFragment.clone() is broken
  • KT-66532 K2 CodeGen AA: missing annotation setup for function in source module but not in a compile target file
  • KT-64833 Analysis API: Members implemented by delegation have no overridden symbols
  • KT-62405 Analysis API: Symbols SUBSTITUTION_OVERRIDE have no overridden symbols
  • KT-66749 K2: "Collection contains no element matching the predicate" on an unresolved call
  • KT-62832 K2: ClassCastException: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus
  • KT-66719 AbstractGetKlibSourceFileNameTest: The dependency to ":native:analysis-api-klib-reader" breaks JPS compilation
  • KT-66603 Analysis API: support type annotations in KtPsiTypeProviderMixIn#asPsiType
  • KT-64505 Analysis API Standalone: Remove test-specific calculation of sealed class inheritors
  • KT-66013 Analysis API Standalone: Sealed inheritors aren't correctly calculated for source classes
  • KT-62880 K2 IDE: Unresolved java annotation methods in KDoc
  • KT-66530 K2: Analysis API: KtPsiTypeProvider#asKtType crashes on PsiClassType for Java type parameter with wrong use site
  • KT-65571 Support VirtualFile inputs to Analysis API modules
  • KT-66485 Substituted types are not provided for callable references
  • KT-66498 Analysis API: 'KtFe10SymbolDeclarationOverridesProvider' considers a class to be a subclass of itself
  • KT-64579 K2 IDE: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(Source) but FirArgumentListImpl found"
  • KT-65978 Analysis API: Use soft references in FileStructureCache
  • KT-64051 K2 IDE: Analysis API: Unresolved links to typealias in KDoc
  • KT-66189 K2 / IDE: KtFirExpressionTypeProvider bugs
  • KT-61422 K2 IDE: "No array element type for vararg value parameter: org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl"
  • KT-66276 K2: Analysis API: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM false positive for script parameter
  • KT-66232 K2: Analysis API: cover ScriptWithCustomDefDiagnosticsTestBaseGenerated by LL FIR tests
  • KT-60996 K2: Stub Based Deserializer: Set versionRequirements to enable VERSION_REQUIREMENT_DEPRECATION diagnostics
  • KT-66306 K2: Analysis API: drop ability to enable global phase resolve lock
  • KT-55750 LL FIR: Implement multi-threaded resolve

... (truncated)

Changelog

Sourced from org.jetbrains.kotlin:kotlin-bom's changelog.

2.0.0

Analysis. API

New Features

  • KT-65327 Support reading klib contents in Analysis API

Performance Improvements

  • KT-65560 K2: Anaysis API: ContextCollector triggers redundant resolution in the case of file elements
  • KT-64987 Analysis API: 50GB memory allocation on creating empty kotlinx.collections.immutable.persistentMapOf
  • KT-61789 K2: optimize getFirForNonKtFileElement for references inside super type reference
  • KT-59498 K2: getOnAirGetTowerContextProvider took too much time due to on air resolve
  • KT-61728 Analysis API: optimize AllCandidatesResolver.getAllCandidates

Fixes

  • KT-65561 Analysis API: dummy.kt is not a physical file
  • KT-65616 K2: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus from STATUS
  • KT-65600 Analysis Api: FirFile for KtCodeFragments are created and not updated on changes
  • KT-64919 K2 IDE: Implement KMP support for sealed class inheritors
  • KT-64241 K2: Unresolved calls to functions in scripts depending on included projects
  • KT-65813 Analysis API Standalone: FirDeclarationForCompiledElementSearcher does not find compiled elements
  • KT-66052 AA: render expect/actual modifier
  • KT-66795 KtCodeFragment.clone() is broken
  • KT-66532 K2 CodeGen AA: missing annotation setup for function in source module but not in a compile target file
  • KT-64833 Analysis API: Members implemented by delegation have no overridden symbols
  • KT-62405 Analysis API: Symbols SUBSTITUTION_OVERRIDE have no overridden symbols
  • KT-66749 K2: "Collection contains no element matching the predicate" on an unresolved call
  • KT-62832 K2: ClassCastException: FirDeclarationStatusImpl cannot be cast to FirResolvedDeclarationStatus
  • KT-66719 AbstractGetKlibSourceFileNameTest: The dependency to ":native:analysis-api-klib-reader" breaks JPS compilation
  • KT-66603 Analysis API: support type annotations in KtPsiTypeProviderMixIn#asPsiType
  • KT-64505 Analysis API Standalone: Remove test-specific calculation of sealed class inheritors
  • KT-66013 Analysis API Standalone: Sealed inheritors aren't correctly calculated for source classes
  • KT-62880 K2 IDE: Unresolved java annotation methods in KDoc
  • KT-66530 K2: Analysis API: KtPsiTypeProvider#asKtType crashes on PsiClassType for Java type parameter with wrong use site
  • KT-65571 Support VirtualFile inputs to Analysis API modules
  • KT-66485 Substituted types are not provided for callable references
  • KT-66498 Analysis API: 'KtFe10SymbolDeclarationOverridesProvider' considers a class to be a subclass of itself
  • KT-64579 K2 IDE: "Expected FirResolvedArgumentList for FirAnnotationCallImpl of FirValueParameterImpl(Source) but FirArgumentListImpl found"
  • KT-65978 Analysis API: Use soft references in FileStructureCache
  • KT-64051 K2 IDE: Analysis API: Unresolved links to typealias in KDoc
  • KT-66189 K2 / IDE: KtFirExpressionTypeProvider bugs
  • KT-61422 K2 IDE: "No array element type for vararg value parameter: org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl"
  • KT-66276 K2: Analysis API: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM false positive for script parameter
  • KT-66232 K2: Analysis API: cover ScriptWithCustomDefDiagnosticsTestBaseGenerated by LL FIR tests
  • KT-60996 K2: Stub Based Deserializer: Set versionRequirements to enable VERSION_REQUIREMENT_DEPRECATION diagnostics
  • KT-66306 K2: Analysis API: drop ability to enable global phase resolve lock
  • KT-55750 LL FIR: Implement multi-threaded resolve

... (truncated)

Commits
  • e84e835 Add changelog for 2.0.0
  • 975dea2 Add changelog for 2.0.0-RC3
  • b618ee4 [FIR] Prohibit referencing java field in case of conflict with property..
  • b239239 K2: build outer classes sequence in FirImplicitBodyResolve properly
  • afc5b49 [IR] Assume IrFile has at least one offset entry
  • be1804c [K/N][tests] Don't attempt to download simulator after first failure
  • b666160 K2: fix captureFromExpressionInternal for nullable intersection types
  • f04f051 K2: fix withNullability() for ConeIntersectionType
  • cda1ad4 K2: reproduce KT-67912
  • 8e0919e [K2/JS] Use declaration session for looking up containing declaration
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added the area/dependencies Pull requests that update a dependency file label May 21, 2024

This comment has been minimized.

@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from 7f81433 to de9a957 Compare May 21, 2024 23:41

This comment has been minimized.

@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from de9a957 to 0621d7e Compare May 22, 2024 00:15
@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from 0621d7e to 8d010ec Compare May 22, 2024 00:30
@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from 8d010ec to 19a09f8 Compare May 22, 2024 00:31
@quarkus-bot quarkus-bot bot added area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/gradle Gradle labels May 22, 2024

This comment has been minimized.

@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from 19a09f8 to 7fc7aa2 Compare May 22, 2024 12:11
@gastaldi gastaldi requested review from gsmet, cescoffier and geoand May 22, 2024 12:12
Copy link
Member

@cescoffier cescoffier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it should be ok. Now, I don't know how aggressive we need to be about this.

@gastaldi gastaldi force-pushed the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch from 7fc7aa2 to 420656a Compare May 22, 2024 15:13
@quarkus-bot quarkus-bot bot added the area/arc Issue related to ARC (dependency injection) label May 22, 2024
@gastaldi gastaldi added the triage/waiting-for-ci Ready to merge when CI successfully finishes label May 22, 2024
Copy link

quarkus-bot bot commented May 22, 2024

Status for workflow Quarkus CI

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

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
✔️ JVM Tests - JDK 17 Logs Raw logs 🔍
✔️ JVM Tests - JDK 21 Logs Raw logs 🔍
JVM Tests - JDK 17 Windows Build Failures Logs Raw logs 🔍

You can consult the Develocity build scans.

Failures

⚙️ JVM Tests - JDK 17 Windows #

- Failing: integration-tests/rest-client 

📦 integration-tests/rest-client

Failed to execute goal uk.co.automatictester:truststore-maven-plugin:3.0.0:generate-truststore (wrong-host-truststore) on project quarkus-integration-test-rest-client: Execution wrong-host-truststore of goal uk.co.automatictester:truststore-maven-plugin:3.0.0:generate-truststore failed: java.net.ConnectException: Connection timed out: connect


Flaky tests - Develocity

⚙️ JVM Tests - JDK 17

📦 integration-tests/reactive-messaging-kafka

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

  • iterable contents differ at index [4], expected: <reply-5> but was: <{"details":"Error id d98f611f-390e-4ed7-916f-7aab5a999f4c-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 [4], expected: <reply-5> but was: <{"details":"Error id d98f611f-390e-4ed7-916f-7aab5a999f4c-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/rest-client-reactive

io.quarkus.it.rest.client.wronghost.ExternalWrongHostTestCase.restClient - History

  • Read timed out - java.net.SocketTimeoutException
java.net.SocketTimeoutException: Read timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:288)
	at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:314)
	at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355)
	at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:808)
	at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:161)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82)

@gastaldi gastaldi merged commit 0afd141 into main May 23, 2024
52 of 53 checks passed
@quarkus-bot quarkus-bot bot removed the triage/waiting-for-ci Ready to merge when CI successfully finishes label May 23, 2024
@quarkus-bot quarkus-bot bot added this to the 3.12 - main milestone May 23, 2024
@dependabot dependabot bot deleted the dependabot/maven/org.jetbrains.kotlin-kotlin-bom-2.0.0 branch May 23, 2024 15:10
@gastaldi gastaldi mentioned this pull request May 23, 2024
@gastaldi gastaldi linked an issue May 23, 2024 that may be closed by this pull request
@gsmet
Copy link
Member

gsmet commented May 23, 2024

Are we sure the Kotlin ecosystem is ready for Kotlin 2? I have no idea but that's probably something we need to check.

@gastaldi
Copy link
Contributor

@gsmet Can you elaborate on what Kotlin ecosystem you are specifically referring to? Other plugins?

@gsmet
Copy link
Member

gsmet commented May 23, 2024

I don't know libraries, plugins, even users. I have no idea how stable Kotlin 2 is and if people want to move to it massively.

Typically, for Scala, it took time.

@gastaldi
Copy link
Contributor

gastaldi commented May 23, 2024

I believe the major impact is the introduction to the K2 compiler, but as instructed in https://kotlinlang.org/docs/whatsnew20.html#current-k2-compiler-limitations, one can revert back to Kotlin 1.9 by changing the compiler options, but yeah, the devil lies in the details

@olivierbeltrandocintoo
Copy link

olivierbeltrandocintoo commented May 24, 2024

Hi,
Tested for our backend using Quarkus 3.10.0 (by specifying the kotlin BOM before the quarkus BOM as specified in the doc) with the following

  • quarkus-kotlin
  • quarkus-rest-jackson
  • quarkus-config-yaml
  • quarkus-arc
  • quarkus-rest
  • quarkus-smallrye-jwt-build
  • quarkus-smallrye-jwt
  • quarkus-smallrye-context-propagation
  • quarkus-smallrye-health
  • quarkus-jdbc-mysql (for the tests with testcontainers)
  • quarkus-reactive-mysql-client

It could compile both with JVM and in Native with the mandrel image and it seemed to work :) (backend responded like usual)

Concerning k2, It has just been released, so it's really fresh. But Jetbrains team claims that they have tested it against tons of project (https://blog.jetbrains.com/kotlin/2024/05/celebrating-kotlin-2-0-fast-smart-and-multiplatform/#migrate-with-confidence -> 80k backends, android, and multiproject).

I haven't tested anything with gradle and Quarkus though. So no idea on this side.

Cheers.

@gsmet
Copy link
Member

gsmet commented May 24, 2024

@olivierbeltrandocintoo thanks for the valuable feedback!

@olivierbeltrandocintoo
Copy link

You are very welcome @gsmet .

Another tiny feedback.

  • Compilation time (mvn clean compile) went from 55s to 48s
  • Dev startup time (mvn clean quarkus:dev) went from 01:55min to 01:18min

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/kotlin kind/component-upgrade release/noteworthy-feature triage/flaky-test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support Kotlin 2.0
4 participants