Update Kotlin & Compose#170
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
1ab023c to
994a37e
Compare
994a37e to
22da965
Compare
22da965 to
6694f66
Compare
763e683 to
e01ad23
Compare
e01ad23 to
6121e98
Compare
6121e98 to
937d6d8
Compare
937d6d8 to
30bc1d2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.3→0.5.01.10.2→1.11.01.10.2→1.11.02.9.6→2.10.01.10.0→1.11.01.10.2→1.11.01.10.2→1.11.02.3.10→2.3.212.3.10→2.3.212.3.10→2.3.212.3.10→2.3.212.3.10→2.3.212.3.10→2.3.21Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)
v1.11.0Compare Source
Restored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of
Promise-related functions (#4661).Kotlin/kotlinx.serialization (org.jetbrains.kotlinx:kotlinx-serialization-json)
v1.11.0==================
This release is based on Kotlin 2.3.20 and provides new Json exceptions API and some bugfixes and improvements.
Expose Json exceptions structure
To make working with exceptions easier and providing proper error codes in e.g., REST APIs,
classes
JsonException,JsonDecodingException, andJsonEncodingExceptionare now public.They have relevant public properties, such as
shortMessage,path,offset, and others.This API is currently experimental, and we're going to improve it further in the subsequent releases.
See the linked issues for the details: #1930, #1877.
Ability to hide user input from exception messages for security/privacy reasons.
Historically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and other systems, since
a system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property
exceptionsWithDebugInfois added toJsonConfiguration.Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property becomes stable.
See #2590 for more details.
Bugfixes and improvements
JetBrains/compose-multiplatform (org.jetbrains.compose:compose-gradle-plugin)
v1.11.0Changes since 1.10.3
Breaking Changes
Multiple Platforms
Shaderis now a dedicated Compose wrapper type. Since it's not an ABI-compatible change, you might need to update some libraries that use this API to newer, compatible versions. Migration: #2810SkShader.asComposeShader().Shader.skiaShaderextension.iOS
DialogandPopupcontainer views are now located on a system transition view above the root view controller, but below modally presented view controllers. This may affect presentation of interop view controllers #2833Migration Notes
Multiple Platforms
2.2. The projects depending on Compose Multiplatform need to use the same version or newer #2614navigation-runtime,navigation-commonno longer provideandroidx.collectionas anapitransitive dependency. If your project doesn't compile with unresolvedandroidx.collection...classes addimplementation("androidx.collection:collection:1.5.0"). This change is required to avoid differences with the original Jetpack libraries and allow reusing the same code without additional changes needed #2749Key.Homehas been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. UseKey.MoveHomeinstead #2801androidx.compose.ui.graphics.NativePaintandandroidx.compose.ui.graphics.NativeCanvastypealiases are deprecated, use direct references to native types instead #2802Paint.asFrameworkPaint()was replaced withPaint.skiaPaintextension to avoid exposing a platform type intocommonMainsourceset viatypealias#2802RenderEffect.asSkiaImageFilter()was replaced withRenderEffect.skiaImageFilterextension to avoid exposing a platform type intocommonMaintypes #2809Canvas.nativeCanvasextension in favor ofCanvas.skiaCanvasto avoid ambiguity #2809runComposeUiTest,runSkikoComposeUiTest,runDesktopComposeUiTestare deprecated in favor v2 versions #2919iOS
parallelRenderingflag now enabled by default #2732Web
WebElementViewtoHtmlElementViewto better reflect its HTML-specific purpose #2636WebElementViewhas been deprecated in favor ofHtmlElementView#2641Navigation
suspend fun Window.bindToNavigationmethod has been removed #2675Features
Multiple Platforms
isClearFocusOnMouseDownEnabled = falseinComposePanel,ComposeWindoworComposeDialog#2533composedAPI toInsetsPaddingModifierNode#2572Dialog. It can be disabled viaDialogProperties.animateTransitionor via global feature flagComposeUiFlags.isDialogAnimationEnabled#2596StandardTestDispatcherby default instead ofUnconfinedTestDispatcher#2919effectContextin Compose UI tests #2919SelectionContainer. When the mouse pointer is dragged outside the element while selecting text, the text element will be scrolled accordingly. Note that this requires wrapping the content in a scrolling container/modifier, e.g.Modifier.verticalScroll#2979iOS
ComposeUIViewAPI enabling Compose embedding in view hierarchy #2589isClearFocusOnMouseDownEnabledin theconfigurelambda when creating Compose components #2644BasicTextField(bothTextFieldValueandTextFieldState) enabled viaPlatformImeOptions.usingNativeTextInput(enabled)in iOS source set #2602true,BasicTextFielduses native UIKit editing and interaction, including: #2602isNewContextMenu = true) configurations.rememberUIKitInteropRemeasureRequester()+Modifier.remeasureRequester(...)withUIKitInteropRemeasureRequester.requestRemeasure()for propagating UIKit-side size changes to Compose #2797Desktop
AccessibleRoledirectly viaSemanticsPropertyReceiver.awtRole#2577SelectionContainercan now be disabled #2617~/.skiko(this folder is used if the application is launched via./gradlew run). Useskiko.data.cleanup.daysto configure the retention period in days #2645ComposePanelviaComposePanel.redispatchUnconsumedMouseWheelEventsflag #2659WindowDraggableAreaon Linux with JetBrains Runtime #2674singleWindowApplicationcontent's receiver now subclassesApplicationScopetoo, allowing to programmatically exit the app #2703Web
isClearFocusOnMouseDownEnabledinComposeViewportConfigurationto configure the focus behaviour on mouse press #2781Gradle Plugin
Navigation
unveilInandveilOutanimations to default iOS transition specs in Navigation3 #2655Fixes
Multiple Platforms
BulletswithEmunits #2667Ctrl+Home/Ctrl+EndorCmd+Home/Cmd+Endshortcuts should now work correctly in text fields #2931iOS
ModalBottomSheet#2572parallelRenderingis enabled #2623Formview #2589UIKeyboardWillHideNotificationwithoutuserInfo#2713scrollsToTopfor nativeUIScrollViews #2705MetalRedrawerthat occurs whenPopuporDialogbox opens and closes quickly #2756parallelRenderingis enabled #2732LayoutRegionAPI #2555PopupandDialogmay not close when clicked outside of their bounds #2815Cmd + C(copy) event handling for the selected text wrapped inSelectionContainerwhen using a hardware keyboard #2872UIWindowSceneGeometryon iOS 15 #2924ModalBottomSheetDialogcontent inset calculation #2849Desktop
TextFieldin headless mode #2612SelectionContainer, the "Copy" menu item will be disabled #2617WindowInsetsRulersimplementation usingRulerScope.coordinates.size#2628org.jetbrains.compose.ui:ui-testno longer depends oncom.google.truth:truth#2648ComposePaneldrawing the background that was set on it #2670JPopupContextMenuRepresentationto correctly recreate the menu when thecreateMenuargument changes #2702(Basic)TextField(TextFieldValue)#2722TextFieldaccessibility issue wherecontentDescriptionwas ignored by screen readers (VoiceOver).TextFieldnow properly usescontentDescriptionas the accessible name/label, making forms usable with assistive technologies #2680launchApplicationandawaitApplicationis now correctly used in windows and dialogs of the application #2742BasicTextField(TextFieldState)when the temporary (composed) english text was not removed when the composition is committed #2763NumPadPageUp,NumPadPageDown,NumPadHomeandNumPadEndkeys in text fields #2800TooltipAreaon a pointer-exit event while the pointer is still inside the area #2798Alt-backspacenow correctly performs undo action #2870compose.layers.typesetting #2864ComposePanelincompose.swing.render.on.graphicsmode] Fix Metal offscreen rendering crash when drawing to a Software renderer #3009Web
HtmlElementViewis now available inwebMainsource set #2614CanvasBasedWindowhas been deleted #2614Shift+Insert#2871Resources
getSystemEnvironmenton headless desktop #5471Gradle Plugin
CFBundleVersion. The major version may now be 0 #5504Components
Gradle plugin
org.jetbrains.composeversion1.11.0Libraries
org.jetbrains.compose.runtime:runtime*:1.11.0org.jetbrains.compose.ui:ui*:1.11.0org.jetbrains.compose.foundation:foundation*:1.11.0org.jetbrains.compose.material:material*:1.11.0org.jetbrains.compose.material3:material3*:1.11.0-alpha07org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01org.jetbrains.androidx.navigation:navigation-*:2.9.2org.jetbrains.androidx.navigation3:navigation3-*:1.1.1org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0org.jetbrains.androidx.savedstate:savedstate*:1.4.0org.jetbrains.androidx.window:window-core:1.5.1v1.10.3Changes since 1.10.2
Fixes
Multiple Platforms
Matrixconversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android #2860Components
Gradle plugin
org.jetbrains.composeversion1.10.3Libraries
org.jetbrains.compose.runtime:runtime*:1.10.3org.jetbrains.compose.ui:ui*:1.10.3org.jetbrains.compose.foundation:foundation*:1.10.3org.jetbrains.compose.material:material*:1.10.3org.jetbrains.compose.material3:material3*:1.10.0-alpha05org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha02org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0org.jetbrains.androidx.navigation:navigation-*:2.9.2org.jetbrains.androidx.navigation3:navigation3-*:1.0.0-alpha06org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1org.jetbrains.androidx.savedstate:savedstate*:1.4.0org.jetbrains.androidx.window:window-core:1.5.1JetBrains/kotlin (org.jetbrains.kotlin:compose-compiler-gradle-plugin)
v2.3.21Backend. Wasm
KT-84610[Wasm] Failed to compile klibs in IC modeCompiler
KT-84566Prevent launching Default dispatcher threads from IJ SDK in kotlin compilerKT-85358Native: roll back the workaround for KT-84678 once MapLibre has been properly fixedKT-85626@JvmRecordin commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"KT-85405Postpone/RevertDontIgnoreUpperBoundViolatedOnImplicitArgumentsKT-84678K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS targetKT-85021False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module projectJavaScript
KT-82395Support top-level declarations from compiler plugins in JS incremental compilationKT-84475K/JS: false-positive exportability warnings in multi-module projectKT-84633Kotlin/JS: "Serializer for class not found" error when IR output granularity iswhole-programKT-85047Kotlin/JS:@JsStaticon suspend fun of class companion generates incorrect d.tsKT-84517K/JS: bad mappings data in outputted Kotlin stdlib source mapLibraries
KT-71848Kotlinx.metadata: AddCompilerPluginDatainto Km APINative. C and ObjC Import
KT-85399Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabledKT-85508K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20Tools. Gradle
KT-84729Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portalTools. Gradle. Compiler plugins
KT-85257AGP/Compose: MergeMappingFileTask clears R8 artifacts due to@OutputDirectoryannotation on AGP 9.1+Tools. Scripts
KT-85105Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous objectKT-85103Exception while generating code when explain destructuring declsKT-84842scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20KT-85029Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error locationTools. Statistics (FUS)
KT-85628KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'v2.3.20: Kotlin 2.3.20Changelog
Analysis API. FIR
New Features
KT-78090Implement stubs support for new conditional returns and holdsIn contractsFixes
KT-82948'FirRegularClass' expected as a containing declaration, got 'FirTypeAliasImpl'KT-83467Package-level JSpecify annotations are ignored when coming from jars or librariesKT-82057K2. Cannot infer type parameter 'R' in Ktor routing post() function with explicit response typeKT-82846AA: unresolved KtExpression.expressionType for the reference to the parameter with default valueKT-80485False positive UNRESOLVED_REFERENCE on nested interface from super-super class in the super type position inside an anonymous objectKT-82772Flaky false positive deprecation warning on PersistentMap.put in Kotlin repo in IDE modeKT-76487StdLibSourcesLazyDeclarationResolveTestGenerated.testWrappedInt is unstableKT-82618Various tests are failing with NPE in kt-master after updating the compiler on 19.11.25KT-82076Error querying members of JavaClass created for SymbolLightClassForAnnotationClass during library analysisKT-71596Include Js/Wasi checkers in AbstractLLFirDiagnosticsCollectorKT-82085No OUTER_CLASS_ARGUMENTS_REQUIRED on type parameter bound in IDEKT-81873Provide a way of including traces in phase JFR eventsKT-71929Consider leaving the non-post-compute version at EnhancementSymbolsCache.enhancedFunctionsAnalysis API. Infrastructure
KT-83173Analysis API Tests: Library names with RC versions aren't sanitisedKT-65140LL FIR: Implement AbstractFirPsiJsDiagnosticTest for LL FIRKT-82212[Analysis API, LL FIR] Implement AbstractDiagnosticsFirWasmTest and AbstractDiagnosticsFirWasmWasiTest for LL FIRAnalysis API. Light Classes
KT-82227Value classes should expose regular static methodsAnalysis API. PSI
KT-81710'KtTypeReference.getTypeText' does not account for 'suspend' modifier on suspend lambdasKT-82258Prepare PSI for migration from context receivers to context parametersKT-81074KDoc: List rendering is brokenAnalysis API. Providers and Caches
KT-82449K2 IDE Analysis Freezes During Gradle Sync (Recursive Module Dependency Computation in KotlinModuleDependentsProviderBase.computeTransitiveDependents)KT-82629'collectDiagnostics' returns stale syntax error after editor fixKT-74907Analysis API: Apply platform-based library module content restrictions consistentlyAnalysis API. Standalone
KT-81107AA: KtSourceModuleBuilder.sourceRoots doesn't works with symbolic linksAnalysis API. Stubs and Decompilation
KT-82792Stub for KtValueArgumentList inside KtAnnotationEntry should be present if it is present in psiKT-82527TypeClsStubBuilder.createFunctionTypeStub throws NullPointerExceptionKT-82558Deserialized DNN type should have a fully qualified AnyKT-81928KaArrayAnnotationValueImpl.values missing first elementKT-82139Support contracts for property accessorsKT-82198Support context parameters in contractsAnalysis API. Surface
New Features
KT-82851Property accessors should inherit KDoc from the parent propertyKT-63339Analysis API: Provide a way to extract KDoc for symbolsKT-79070KaTypeProvider: add API to build a default type with star projectionsKT-66566AA: api to create functional typesKT-66043KtTypeCreator doesn't provide a way for creating annotated typesPerformance Improvements
KT-83694Provide psi-based implementation ofKaDeclarationSymbol#isExternalKT-70868KaSymbol: support PSI-only visibility and modality for the case without compiler pluginsKT-81627KaFirSymbolDeclarationOverridesProvider#processOverrides should process only relevant declarationsFixes
KT-83152[Analysis API, KDoc] Make class name links on constructors point to the classKT-83695DeprecateKaSymbolInformationProvider#{getter, setter}DeprecationStatusKT-82853Add a convenience property for testing declarations for effective external-nessKT-83226Support "Collection literals" in the Analysis APIKT-83225Support "@IntroduceAt" in the Analysis APIKT-83222Support "Improve use-site defaulting for annotations" in the Analysis APIKT-83351Rename KaSession context parameter from 's' in bridges to something nicerKT-83199Clarify API around extension pointsKT-83074Inner enum entry class has incorrect default visibilityKT-82442Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.AdditionalKDocResolutionProviderKT-82443Add Ka prefix to org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRendererKT-82441Add Ka prefix to org.jetbrains.kotlin.analysis.api.compile.CodeFragmentCapturedValueKT-82439Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DebuggerExtensionKT-82438Add Ka prefix to org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIdsKT-68577asPsiTypeandmapTypeToJvmType: leading delimiter for class in a root packageKT-81734MIssing "ARGUMENT_TYPE_MISMATCH" caused by self-referential generic typeKT-82856Redesign KotlinReferenceProviderContributor to make it extensibleKT-82615ClarifyKtReference#resolvesByNamescontractKT-82534No expected type for property accessor without bodyKT-82406Add a test to ensure that all top-level classes in the Analysis API Surface haveKaprefixKT-78397investigate if there is a need in Extra support for the "various little features in contracts"KT-74009Analysis API: Expose "isOverloadable" check for callable symbols similar to "OverloadChecker.isOverloadable"KT-78399Check return value - check how we see from Java(+Stub) we see “annotated” signaturesKT-80357[Analysis API]KaType.enhancedTypedoesn't enhance type parametersKT-73659Analysis API: The name ofKaType.enhancedTypeis too generalKT-80545[Analysis API] DeprecateKaFunctionType.arityKT-77708K2 Mode: Potentially redundant smart cast highlighing when passing smartcasted expressions as argumentsKT-81264K2 AA:KaValueParameterSymbol.hasDefaultValueis false for overriding or actual functionsKT-81166Forbid the usage of KaSessionComponent implementation types directlyKT-74801Analysis API: Publish/subscribe to modification events with a single message bus topicBackend. Native. Debug
KT-81741Native: stepping into data class hashCode in lldb goes to line 1Backend. Wasm
New Features
KT-81485[Wasm] DebuggerCustomFormatters generation support for single module modeKT-81483[Wasm] Typescript generation support for single module modeKT-81484[Wasm] Dwarf generation support for single module modePerformance Improvements
KT-83839K/Wasm: CMP. Load time on Safari significantly increased with Kotlin = 2.3.20-Beta1KT-81524Unnecessary Any-JsAny conversions are generated for external instanceofsFixes
KT-82732K/Wasm runtime crash when using fun reference: convertKotlinClosureToJsClosureKT-82649K/Wasm: Rewrite StringBuilder to use JsStringKT-73240K/Wasm: consider using JS String Builtins proposal in String implementation for wasm-js targetKT-83995K/Wasm: 2.3.0 -> 2.3.20-Beta1 degradation in arrow testsKT-82309K/Wasm: refactor _initialize functionKT-70075Wasm: "OutOfMemoryError: GC overhead limit exceeded" during testsKT-83046K/Wasm: don't use StringBuilder impliConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.