Repository navigation
[RN][Changelog] Add changelog for v0.89.0-rc.0 - #59795
Merged
Merged
Conversation
cipolleschi
approved these changes
Nov 4, 2026
|
@fabriziocucci has imported this pull request. If you are a Meta employee, you can view this in D129612731. |
Give every entry a scope, move the real changes out of Unknown, file a few misfiled entries in the right section, drop internal ones (CI, Fantom, tests, translation syncs, bot commits) and duplicates of the same change.
Collaborator
|
This pull request was successfully merged by @fabriziocucci in a8491cc When will my fix make it into a release? | How to file a pick request? |
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.
Summary
Adds the
## v0.89.0-rc.0section, generated against v0.88.1: 342 entries. Opened by the release copilot.Before landing:
**Scope**:in the diff.Prefixes added (87)
Image: Fix explicitfadeDurationbeing ignored on newly createdImagesCLI: Platform registration config for the Community CLI is removed from thereact-nativepackage. No breaking change withreact-native-community/cli21.x (required).Text: AddlineBreakandwordBreakprops toText(CSSline-break/word-break) for strict/loose line breaking and phrase-based breaking on Android 13+New Architecture: RemoveDefaultNewArchitectureEntryPoint.bridgelessEnabledand the deprecated three-argumentload(turboModulesEnabled, fabricEnabled, bridgelessEnabled)overload; bridgeless is always enabled in the New ArchitectureBabel: Allowreact-native/babel-presetto readenableBabelRuntimeandbabelRuntimeModuleNamefrom Babel caller dataText: Add experimental longest-line width sizing for wrappedTextCocoaPods: AddRN_STRICT_APIandRN_ALLOW_FRAMEWORKSCocoaPods opt-ins to enforce React Native's C++ stable API in app and library native codeYoga: Yoga layout no longer usesdynamic_castfor every child to check its typeMetro: Bump Metro minimum to 0.87.2VirtualizedList: VirtualizedList: Skip the cells state update when the render window doesn't changeCodegen: Codegen-generated C++ includes React Native through module umbrella headersAnimated: Avoid per-call allocations in Animated string and color interpolationShadowNode: Avoid a redundant copy of the children list inShadowNode::cloneTreeandUIManager::updateShadowTreeVirtualizedList: Reduce allocations in theVirtualizedListrender and scroll path (avoid per-renderSetallocation forstickyHeaderIndices, per-scroll-eventMapiterator for the empty nested-list collection, and per-callorientationobject allocation)Kotlin: Bumped the Gradle plugin minimum Kotlin API version to 2.1Kotlin: Update Kotlin to 2.3.21Text: Text nodes cloned without changes share their measured layout instead of creating a new JNI global referenceText: Skip an unnecessary measuring pass when laying outTextKotlin: Bump Kotlin to 2.2.10 to match the version required by AGP 9.2.1StatusBar: Reland iOS 27 StatusBar fix with tvOS guardsSwiftPM: SwiftPM:spm addandspm updatewrite React Native's build settings toReactNativeSPM/ReactNativeSPM.xcconfigand its build scripts toReactNativeSPM/Scripts/, so a version bump no longer changesproject.pbxproj. A configuration that uses its own xcconfig must now#includethe generated file, and a target setting that hides React Native's value must add$(inherited).spmprints the exact fix in both cases.TextInput: Remove deprecatedTextInputblurOnSubmitprop (usesubmitBehaviorinstead)APIs: Remove experimental split-bundle loading APIsAPI: Remove deprecated RCTProfile systrace APIHermes: Retain Unicode regex semantics while lowering property escapes for Hermes buildsVirtualizedList: Avoid delaying urgentVirtualizedListrendering after queued no-op updatesHermes: Babel preset: Hermes profiles no longer lower generators,for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching releaseHermes: Babel preset: Hermes profiles no longer lower generators,for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching releaseText: Avoid state updates and re-layout of unchangedTextsiblings when a sibling changesVirtualizedList: VirtualizedList: clear the pending batch-update timer id in componentWillUnmount so a list hidden and revived by Suspense (react-freeze / freezeOnBlur) resumes rendering new cellsMetro: Scope MetroINTERNAL_CALLSITES_REGEXto thereact-nativepackage to avoid collapsing unrelated framesReact Native DevTools: Fix React Native DevTools staying open but unresponsive after the debugged React Native instance is destroyedTypeScript: Fix the legacy TypeScriptImageStyletype rejecting validViewStyleprops such asfilter,boxShadowandmixBlendModeImage: Fix explicitresizeMode="stretch"being ignored on newly created AndroidImagesNew Architecture: FixminimumFontScalewithadjustsFontSizeToFitin the New ArchitectureESLint: Fixed the issue when using the flat config with ESLint v9.Babel:experimentalImportSupportin a Metro config now takes effect whenreact-native/babel-presetis named in a project Babel configBabel: Preserve side effects from discarded Platform.select property initializers in the Babel preset.IntersectionObserver: IntersectionObserver rootMargin now affects intersection against a clipping rootBabel: Preserve side effects from discarded Platform.select property initializers in the Babel preset.Codegen: Codegen now also readsreact-native.config.cjs, so libraries declared in it are no longer skipped in ESM projectsHermes: Fix Hermes source builds after the Hermes repository moveText: Fix single-line LTRTextbeing ellipsized inside its measured width on Android 15+TextInput: FixTextInputoutline collapsing when its padding is below the theme defaultTextInput: Fix TextInput crash when an Enter key-up triggers native focus searchTextInput: Prevent TextInput from preventing scroll gesturesText:aria-liveonTextnow setsaccessibilityLiveRegionScrollView: Finish interrupted ScrollView drags when receiving ACTION_CANCEL.ScrollView: Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0Modal: Fix crash when dismissing a Modal whose Activity has already been destroyedView: Fix View background, perspective, border width, shadow and gradient props with Props 2.0Image: Fix Image sources, headers and a removed tintColor with Props 2.0Text: Fix multi-paragraph RTLTextwith blank or LTR lines being drawn off-screen on Android 15+Text: FixfontVariantbeing ignored onTextthat doesn't also setfontFamily,fontWeightorfontStyleHermes: Fix building Hermes from source on Windows failing on the JSI_DIR pathText: Respect maxFontSizeMultiplier for lineHeight and letterSpacing in TextText: FixellipsizeMode="clip"being ignored on newly createdTextScrollView: Fix crash when setting a percentage borderRadius on Text, TextInput, and ScrollViewScrollView: Fix crash in ScrollView accessibility delegate whenaccessibilityCollectionis set and a child (e.g. a list header or footer) has noaccessibilityCollectionItemModal: Fix Android navigation bar transparency for ModalMapBuffer: Make theReact/View.h,React/Debug.handReact/MapBuffer.humbrella headers resolvable in CMake buildsText: Text: the last line no longer disappears on Android 15+ when a font's glyphs overhang their advance (ReactTextView now breaks lines on advances, matching measurement)Switch: Report a disabledSwitchas disabled to VoiceOver and XCUITestTextInput: Avoid a synchronous main-thread pasteboard query (and possible app hang) when a focused TextInput's keyboard becomes active on app foregroundView:aria-modalonViewnow setsaccessibilityViewIsModalText: FixTextcontaining only "I" being measured zero wide after an emptyTextwith the same style was measuredTextInput: FixTextInputplaceholder drawn below centre after its view is reused from aTextInputwithlineHeightTextInput: Preserve transformedTextInputedits without synchronously rewriting text inside UIKit delegate callbacksSwitch: Fix crash inSwitchwhenonChangefires after the view has been recycledText: Text no longer redraws when only its position changes, such as when content above it changes heightTextInput: Preserve transformedTextInputedits without synchronously rewriting text inside UIKit delegate callbacksTextInput: Fix caret and text of a single-lineTextInputdrawn above center while focused, after its view was reused from aTextInputwith a larger fontText: Fix words jumping between lines whileLayoutAnimationresizes aTextView: Opacity changes no longer rebuild a View's borders, shadows and background layers, which made opacity animations over many styled Views drop framesHermes: Fix Hermes Debug link failures after installing another pod following a Release build.ScrollView: Fix recycled RTL horizontal ScrollView starting at the end instead of the startText: Text no longer renders clipped when mounted from a synchronous event during layoutCocoaPods: Apply React Native's minimum iOS deployment target to CocoaPods resource bundles.Modal: Fix Modal staying onscreen when dismissed while presenting a child view controllerImage: EmitImage'sonLoadStartbeforeonLoad/onLoadEndwhen the image request has already completedTextInput: Preserve TextInput returnKeyType when switching between single-line and multiline backing views.Hermes: Bump Hermes to 260318099.0.6SwiftPM: SwiftPM autolinking: don't warn about spm fields mirrored in swiftpmConfigBlob: Fix Blob.slice end handling when start is omittedFlow: Upgrade Flow in fbsourceFlow: Upgrade Flow in fbsourceScrollView: Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0Consistency flags (30)
react-nativepackage. No breaking change withreact-native-community/cli21.x (required). (Breaking): under Breaking, but its commit removes no API symbol and carries no [BREAKING] tag: confirm it breaks a consumerlineBreakandwordBreakprops toText(CSSline-break/word-break) for strict/loose line breaking and phrase-based breaking on Android 13+ (Breaking, Android specific): under Breaking, but its commit removes no API symbol and carries no [BREAKING] tag: confirm it breaks a consumerunstable_ImmediateUpdateMode support inupdateState. (Added, Android specific): changes public API (removed updateState(0), removed updateStateImpl(0)) but is under Added: breaking, removal or a safe signature change?dynamic_castfor every child to check its type (Changed): changes public API (removed constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]) but is under Changed: breaking, removal or a safe signature change?RCTBridgeModule.h. Module registry and view registry lookups,methodsToExport, promise resolve/reject arguments, and weak module properties such asbridgeandmoduleRegistryare nownullable.methodQueueis now nonnull, so Swift overrides must be declared asDispatchQueuerather thanDispatchQueue!. (Changed, iOS specific): changes public API (removed public virtual void invokeModule:method:withArgs:(NSString* moduleName, NSString* methodName, NSArray* args), removed public virtual void invokeModule:method:withArgs:onComplete:(NSString* moduleName, NSString* methodName, NSArray* args, dispatch_block_t onComplete), removed public virtual id moduleForClass:(Class moduleClass)) but is under Changed: breaking, removal or a safe signature change?AttributedStringby const reference inRCTTextLayoutManagerand add a move constructor forAttributedStringBox. (Changed, iOS specific): changes public API (removed public virtual facebook::react::LinesMeasurements getLinesForAttributedString:paragraphAttributes:size:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, CGSize size), removed public virtual facebook::react::TextMeasurement measureAttributedString:paragraphAttributes:layoutContext:layoutConstraints:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, facebook::react::TextLayoutContext layoutContext, facebook::react::LayoutConstraints layoutConstraints), removed public virtual std::shared_ptr getEventEmitterWithAttributeString:paragraphAttributes:frame:atPoint:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, CGRect frame, CGPoint point)) but is under Changed: breaking, removal or a safe signature change?VirtualViewinitial mode wheninitialHiddenis not sent on creation (Fixed): changes public API (removed public bool initialHidden) but is under Fixed: breaking, removal or a safe signature change?enableMountingCoordinatorPullModelAndroidis enabled (Fixed, Android specific): changes public API (removed preallocateShadowView(0)) but is under Fixed: breaking, removal or a safe signature change?Changelog:
[INTERNAL] - Add changelog for v0.89.0-rc.0
Test Plan:
N/A