Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37620
changelog: [internal]
To better align cocoapods structure with BUCK structure internally, we need render debug module to be a seaparate pod. This diff does that.
Reviewed By: cortinico, cipolleschi
Differential Revision: D46275529
fbshipit-source-id: d4402f264608e3297c232fcaa4fdc3df88551a65
Summary:
Well, looks like we've hit a GH limit 🤣
<img width="1272" alt="Screenshot 2023-06-22 at 10 32 19" src="https://github.com/facebook/react-native/assets/16104054/d1901d7c-a06b-4dae-9ec4-1846dc458eb1">
This PR splits the changelog into (for lack of better term) decades:
* lower than 0.60 (turns out we only started having proper changelogs in the mid 0.50-ish)
* 60->69
* 70+
This also works well because anything lower than 0.70 is now in the unsupported range.
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[Internal] [Changed] - split the changelog into decades
Pull Request resolved: https://github.com/facebook/react-native/pull/38017
Test Plan: N/A
Reviewed By: GijsWeterings
Differential Revision: D46932308
Pulled By: cipolleschi
fbshipit-source-id: f384d24cdf73c932b0b560919ac732bd993e93da
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38005
Fixes https://github.com/facebook/react-native/issues/32093 by guarding the expensive `BABEL_CODE_FRAME_ERROR_FORMAT` regex with a cheaper initial scan. (Longer term, we should reduce our reliance on string parsing and propagate more structured errors.)
Changelog: [General][Fixed] Prevent LogBox from crashing on very long messages
Reviewed By: GijsWeterings
Differential Revision: D46892454
fbshipit-source-id: 3afadcdd75969c2589bbb06f47d1c4c1c2690abd
Summary:
As explained in this issue:
- https://github.com/facebook/react-native/issues/35350
starting from android API 33 there are severe performance issues when using `scaleY: -1` on a view, and its child view, which is what we are doing when inverting the `ScrollView` component (e.g. in `FlatList`).
This PR adds a workaround. The workaround is to also scale on the X-Axis which causes a different transform matrix to be created, that doesn't cause the ANR (see the issue for details).
However, when doing that the vertical scroll bar will be on the wrong side, thus we switch the position in the native code once we detect that the list is inverted.
The goal of this PR is that react-native users can just use `<FlatList inverted={true} />` without running into any ANRs or the need to apply manual hot fixes 😄
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
[ANDROID] [FIXED] - ANR when having an inverted `FlatList` on android API 33+
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[ANDROID] [FIXED] - ANR when having an inverted `FlatList` on android API 33+
Pull Request resolved: https://github.com/facebook/react-native/pull/37913
Test Plan:
- The change is minimal, and only affects android.
- Run the RNTesterApp for android and confirm that in the flatlist example the inverted list is still working as expected.
Reviewed By: rozele
Differential Revision: D46871197
Pulled By: NickGerleman
fbshipit-source-id: 872a2ce5313f16998f0e4d2804d61e4d8dca7bfd
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38010
This diff refactors the integration of ReactPackages into ReactHost and ReactHostDelegate.
As part of this diff I'm also modifying ReactHostDelegate to depend on TurboModuleManagerDelegate.Builder instead of TurboModuleManagerDelegateBuilder. This is necessary to be able to create BridgelessReactPackage inside ReactInstance
bypass-github-export-checks
changelog: [internal] internal
Reviewed By: luluwu2032
Differential Revision: D46410795
fbshipit-source-id: 221f0f5ce06b7c57410dc4d351d1a1eae29f2733
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38013
Move BridgelessReactPackage to com.facebook.react package.
This is necessary because BridgelessReactPackage is a core package that needs to be part of RN (and should not be re-defined by all apps)
I will revisit naming in a later diff
changelog: [internal] internal
Reviewed By: fkgozali
Differential Revision: D46918732
fbshipit-source-id: c0d0dd0147a6e160189a8cfabc713c348f2499a2
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38008
Introduce a legacy module (+ example) in RNTester.
In the future, SampleLegacyModule will be used to:
- Showcase the TurboModule interop layer in RNTester, once Bridgeless mode is ready
- E2E Test the TurboModule interop layer.
The TurboModule interop layer is just an extension to the TurboModule system that allows the system to create legacy modules. Unlike regular TurboModules, these legacy modules don't need codegen for JavaScript -> native method dispatch.
Changelog: [Internal]
Reviewed By: cipolleschi
Differential Revision: D46874160
fbshipit-source-id: f9810d0bdb3bd0c0a74099fcb6f74ca547977a53
Summary:
Adds changelog for new minor 0.72.0
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[Internal] [Changed] - add changelog entry for 0.72.0
Pull Request resolved: https://github.com/facebook/react-native/pull/36553
Test Plan: N/A
Reviewed By: rshest
Differential Revision: D45778748
Pulled By: cipolleschi
fbshipit-source-id: c3cca1327db0f0d3c579137f7368a2861bb72bf7
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37864
This was deprecated as part of bridgeless development, but since we now have `BridgelessReactContext`, which is also a `ReactContext`, this deprecation is no longer necessary.
Changelog: [Internal]
Reviewed By: rshest
Differential Revision: D46685374
fbshipit-source-id: 4d13418419ac987261b1d10bd50aeb311caadc95
Summary:
Installing `react-native` 0.72.x causes a warning about `react-test-renderer` because `react-native/virtualized-lists` has declared a peer dependency on it. As far as I know, it is not used for anything but tests.
```
➤ YN0002: │ react-native@npm:0.72.0-rc.6 [292eb] doesn't provide react-test-renderer (p5a2fb), requested by react-native/virtualized-lists
```
Note that while many package managers default to warnings in this case, there are still a number of users out there for which this is an error.
## Changelog:
[GENERAL] [FIXED] - `react-native/virtualized-lists` does not need `react-test-renderer` at runtime
Pull Request resolved: https://github.com/facebook/react-native/pull/37955
Test Plan: n/a
Reviewed By: rshest
Differential Revision: D46871536
Pulled By: NickGerleman
fbshipit-source-id: 1e5e15608ab394bc43cd4e6ac727a74734874642
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37939
# Changelog:
[Internal] -
This addresses potential problem with inconsistent naming of direct events on Android, as we've recently found out that there are several such occasions, which can be potentially a source of errors.
Reviewed By: javache
Differential Revision: D46801798
fbshipit-source-id: 01050f53c1efa382021400e803214ae1aafff3fa
Summary:
Prior to 0.69, an RN app receiving the `UIApplicationDidReceiveMemoryWarningNotification` notification resulted in RN performing a GC on the JSC. Since 0.69 this has not worked, this PR fixes the issue.
Before 0.69 this was handled via a hardcoded memory pressure level: https://github.com/facebook/react-native/blob/c5c17985dae402725abb8a3a94ccedc515428711/React/CxxBridge/RCTCxxBridge.mm#L362
(It seems like the levels are an Android concept - see https://developer.android.com/reference/android/content/ComponentCallbacks2#constants_1)
In commit https://github.com/facebook/react-native/commit/0916df99511d6918ea905c2a9df45bccc1fd332a it was changed to run from a constant which could be reconfigured but a mistake (return type of `BOOL` rather than `int`) was resulting in the intended default memory pressure level of 15 (same as the old hardcoded value) being changed to 1 when it was passed on to `handleMemoryPressure`.
## Changelog:
[IOS] [FIXED] - UIApplicationDidReceiveMemoryWarningNotification has not been obeyed on iOS since RN 0.69
Pull Request resolved: https://github.com/facebook/react-native/pull/37973
Test Plan:
Tested manually via the Simulator using Debug -> Simulate Memory Warning and monitoring the console output of the app.
Before fix:
```
WARNING: Logging before InitGoogleLogging() is written to STDERR
W0620 11:21:42.824463 257294336 JSIExecutor.cpp:377] Memory warning (pressure level: 1) received by JS VM, unrecognized pressure level
```
With fix (and also the same output for the latest 0.68 tag in the repo):
```
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0620 11:25:47.479444 79212544 JSIExecutor.cpp:370] Memory warning (pressure level: TRIM_MEMORY_RUNNING_CRITICAL) received by JS VM, running a GC
```
Reviewed By: javache
Differential Revision: D46857205
Pulled By: sammy-SC
fbshipit-source-id: 35121e6c4186fded6ef3ba728d9aafbc936627bb
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37964
When a Surface is stopped, we don't immediately destroy the SurfaceMountingManager but instead just tear down its internal state. This allows for better error handling (eg did this react tag ever exist, or is this non-existing tag).
The way we construct the set of tags post-deletion is flawed though: `mTagToViewState.keySet()` does not create a new Set with all the tags used, but instead uses the underlying HashMap to iterate over the keys as needed. This effectively keeps all the Views inside that deleted surface alive.
Changelog: [Android][Fixed] Surfaces in the new architecture no longer leak views once stopped
Reviewed By: sammy-SC, rshest
Differential Revision: D46840717
fbshipit-source-id: fad145e4dd21b216d1e64f5dc79900434cff1785
Summary:
RCTUITextView has two instances where it references some magic constants for font size and color. We inherited these in React Native macOS, and now I want to remove that diff & implement these properly :D.
Looking at commit history, these constants were found by UI inspecting a UITextView several years ago. We don't need to do this.. Apple provides API's for accessing these constants through the system. This gives us slightly better support for things like Large Text support (where 17 needs to be scaled) and Dark Mode (where the old placeholderFontColor is just wrong). Granted, these constants are overwritten almost immediately, I still thought it worth using the proper OS APIs.
The other nice thing about this API is they have very nice macOS equivalents, making the diffs nicer :).
## Changelog:
Pick one each for the category and type tags:
[IOS] [FIXED] - Remove some magic constants from RCTUITextView
Pull Request resolved: https://github.com/facebook/react-native/pull/37875
Test Plan: Verified that the default UIFont is still 17 after this change.
Reviewed By: philIip
Differential Revision: D46770167
Pulled By: dmytrorykun
fbshipit-source-id: f577b5242a0c896d232f090ef2ffa5f452f8a191
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37975
AsyncLocalStorage is no longer distributed with react-native, so neither should this test mock be.
Changelog: [Internal]
Reviewed By: rshest
Differential Revision: D46857153
fbshipit-source-id: 3fdb2d95f3185b85a0777fde6ce59165c8ace8e9
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37019
This bumps the version of AGP to the latest stable.
There was a breaking change in how buildConfig are built which I had to handle.
This also requires a bump of RNGP to work correctly.
Moreover, we now required Java 17 to build Android apps (as that's a AGP requirement).
Changelog:
[Android] [Changed] - Java to 17 and AGP to 8.0.2
Reviewed By: cipolleschi
Differential Revision: D45178748
fbshipit-source-id: 0f302e1f2f2ee56bd3566202fbb5ef67c9b220db