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

chore: sync with upstream 'main' #162

Merged
merged 298 commits into from
Oct 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
d336a7c
fix: pass closest public instance to React DevTools (#46664)
hoxyq Sep 27, 2024
459fadc
Use native module to persist RDT settings (#46663)
hoxyq Sep 27, 2024
43af902
Unbreak Android LayoutAnimation by making all surfaces go through Bin…
javache Sep 27, 2024
6eb21ca
RNGP: Read `enableWarningsAsErrors` property correctly (#46657)
cortinico Sep 27, 2024
dc8bc45
Switch to hermes-parser in eslint-* package tests (#46699)
huntie Sep 27, 2024
1387f52
Switch Babel parsing from legacy Flow plugin to hermes-parser (#46696)
huntie Sep 27, 2024
64381d3
Switch to hermes-parser in eslint-config
huntie Sep 27, 2024
33b78ee
Substitute babel-preset-fbjs for metro-transform-plugins (#46689)
huntie Sep 27, 2024
776e822
Add minimal Flow types to remaining files under Libraries/ (#45785)
huntie Sep 27, 2024
d17373c
Require Flow types in all react-native source files (#45786)
huntie Sep 27, 2024
7c60a65
Fabric: Fixes animations strict weak ordering sorted check failed (#4…
zhongwuzw Sep 27, 2024
d75e917
Deploy 0.247.1 to xplat (#46710)
panagosg7 Sep 27, 2024
a396f6c
Back out "Do not hold raw RuntimeScheduler pointer in BufferedRuntime…
NickGerleman Sep 28, 2024
513e966
Fix interactions between removeClippedSubviews and RTL by applying Ho…
NickGerleman Sep 28, 2024
d2c48f3
Remove `experimental_` and cleanup mixBlendMode experiment (#46650)
jorge-cab Sep 30, 2024
fae572d
Fix mixBlendMode not updating on Image state updates (#46680)
jorge-cab Sep 30, 2024
d1f47f7
Silence unnecessary Gradle outputs - Part 1 (#46704)
cortinico Sep 30, 2024
4e38493
delete state alignment mechanism (#46658)
sammy-SC Sep 30, 2024
aa35a21
Fix the generation of .xcode.env.local (#46661)
cipolleschi Sep 30, 2024
8dd6164
Make more SurfaceHandler configuration go through UIManager Binding (…
javache Sep 30, 2024
18faf68
Rename Binding to FabricUIManagerBinding (#46705)
javache Sep 30, 2024
5c7a166
fix(iOS): title and title color handling added for refresh control (#…
shubhamguptadream11 Sep 30, 2024
4caf548
add missing iOS platform colors (#46730)
EvanBacon Sep 30, 2024
fbda60e
feat(iOS): refactor RCTDevLoadingView to use constraints (#46621)
okwasniewski Sep 30, 2024
cbb3132
Fix errors with component stacks reported as warnings (#46637)
rickhanlonii Sep 30, 2024
e12c0d9
fix(dev-menu): export for react-native package (#46723)
frankcalise Sep 30, 2024
544c4ff
Use HybridClassBase for frequently constructed objects (#46706)
javache Sep 30, 2024
c658e87
Add a test for an Alias to an Alias (#46725)
elicwhite Sep 30, 2024
ad380c0
Add test for Object with indexers (#46726)
elicwhite Sep 30, 2024
86cac68
Promise annotations must specify their elementType (#46727)
elicwhite Sep 30, 2024
223e98c
RN: Remove String Refs from `NativeMethods` (TS) (#46734)
yungsters Sep 30, 2024
290258f
Further Reduce Build Warnings (#46733)
cortinico Oct 1, 2024
39c98fb
fix(react-native-codegen): upgrade `jscodeshift@17.0.0` to resolve ou…
byCedric Oct 1, 2024
390925e
Add StrictAnimatedProps to fix missing Animated types (#46659)
javache Oct 1, 2024
82f4e17
Reorganise debugger modules in src/private/ (#46738)
huntie Oct 1, 2024
8012267
Simplify FuseboxReactDevToolsDispatcher diagram and document inline (…
huntie Oct 1, 2024
d245076
feat(iOS): expose RCT_NEW_ARCH_ENABLED to Swift (#46749)
okwasniewski Oct 1, 2024
4ede920
Fix BoxShadow support for platform colors (#46753)
javache Oct 1, 2024
41c6ad5
Fix NPE on ReactTextInputManager.setTextDecorationLine (#46750)
cortinico Oct 1, 2024
eb3d352
RNGP - Do not apply `java-gradle-plugin` on root build (#46755)
cortinico Oct 1, 2024
3cd46b9
Do not reference `setTranslucentBackgroundDrawable` (#46754)
cortinico Oct 1, 2024
c441de5
Fix build warning for prepareGlog (#46756)
cortinico Oct 1, 2024
6d6dd99
Throw JS exception when calling a method if bufferedRuntimeExecutor i…
cipolleschi Oct 1, 2024
eaa780d
Fix crash for Modal not attached to window manager (#46758)
cipolleschi Oct 1, 2024
a5e4305
Improve RNTester example for performance.mark/measure (#46759)
rubennorte Oct 1, 2024
ffb10b5
Replace sh scripts with tested JS scripts to release template (#46363)
blakef Oct 1, 2024
7c2a7de
Bump Metro to 0.81.0-alpha.2 (#46703)
huntie Oct 1, 2024
aa55d76
Add CLI selection of multiple debug targets (#46627)
huntie Oct 1, 2024
1118cc6
Share TextInputEventEmitter between C++ platforms (#46198)
christophpurrer Oct 1, 2024
267b250
Cleanup background drawing feature flags (#46761)
NickGerleman Oct 1, 2024
e704f3b
Rename Node.h's getResolvedDimension to getProcessedDimension (#46649)
joevilches Oct 1, 2024
999a66b
Clean up calls to dimension() with a hardcoded FlexDirection (#46739)
joevilches Oct 1, 2024
3535298
Impl of content box (#46741)
joevilches Oct 1, 2024
d06a9b3
Let flex basis support content box (#46740)
joevilches Oct 1, 2024
11ef671
Camel case *AxisownerSize (#46744)
joevilches Oct 1, 2024
39b9cf2
Plumbing to get boxSizing prop to Yoga (#46766)
joevilches Oct 1, 2024
e1246f0
Add RNTester box sizing example and e2e test (#46765)
joevilches Oct 1, 2024
7186fde
Replace execa with child_process (#46767)
huntie Oct 2, 2024
b52bbb4
Simplify key handling in start command (#46768)
huntie Oct 2, 2024
df8f4d6
Replace and remove optional dep on cli-tools logger (#46769)
huntie Oct 2, 2024
ebc699c
Tweak start command output (#46770)
huntie Oct 2, 2024
d19a217
remove use of type alias from Differentiator (#46762)
sammy-SC Oct 2, 2024
d4ea147
add support for Android's "High Text Contrast" setting into Accessibi…
Oct 2, 2024
e24f991
Define `HostInstance` type for React Native (#46743)
yungsters Oct 2, 2024
177697f
RN: Migrate to `HostInstance` Type (#46742)
yungsters Oct 2, 2024
fd35530
Animated: Fix `NativeAnimatedModule` Mock for Jest (#46715)
yungsters Oct 2, 2024
b3fe06b
Animated: Change `onEnd` to Private Property (#46721)
yungsters Oct 2, 2024
85aa927
Animated: Change `nativeID` to Private Property (#46716)
yungsters Oct 2, 2024
63100a9
Animated: Simplify `TimingAnimation#start` Logic (#46719)
yungsters Oct 2, 2024
fd8cf19
Animated: Fail Fast on Native Driver Incompatibility (#46720)
yungsters Oct 2, 2024
b519d49
Animated: Hoist Common Logic to Parent Class (#46717)
yungsters Oct 2, 2024
11bf3a3
Animated: Rename `__debouncedOnEnd` to `__notifyAnimationEnd` (#46718)
yungsters Oct 2, 2024
de927e6
Animated: Enqueue Completion Callbacks in Microtask (#46714)
yungsters Oct 2, 2024
0fb3c24
Small renames in PerformanceEntryReporter (#46688)
rubennorte Oct 2, 2024
b62ae0d
Remove dependency to PerformanceEntryReporter singleton from RuntimeS…
rubennorte Oct 2, 2024
559c602
Refactor Performance and PerformanceObserver internals (#46693)
rubennorte Oct 2, 2024
434decb
Optimize locks in PerformanceEntryReporter (#46698)
rubennorte Oct 2, 2024
44f431b
Make detail readonly in PerformanceMark (#46697)
rubennorte Oct 2, 2024
5b5e150
Fix Cxx TurboModule methods not being cached (#46751)
javache Oct 2, 2024
17f4c45
Add missing lock in ReactInstanceManager#attachRootView (#46776)
javache Oct 2, 2024
c06b1e9
Rollout destroyFabricSurfacesInReactInstanceManager (#46778)
javache Oct 2, 2024
519e07a
Add changelog for 0.74.6 (#46783)
cipolleschi Oct 2, 2024
07c02d4
prevent C++ state update in RCTScrollViewComponentView if value is th…
sammy-SC Oct 2, 2024
c430083
Update modern inspector targets to directly send CDP title and descri…
huntie Oct 2, 2024
7b57706
make sure logs reflect new class name (#46785)
sammy-SC Oct 2, 2024
4b82922
Fix reported properties for native modules (#46788)
rubennorte Oct 2, 2024
b3bc6ea
Create ReactPerfLogger to log to Perfetto and Fusebox (#46793)
Oct 2, 2024
62b7396
Fix onEndReached not being called when getItemLayout is present and w…
NickGerleman Oct 2, 2024
32dd52e
Back out "Add RNTester box sizing example and e2e test" (#46795)
joevilches Oct 2, 2024
5e47ef9
Back out "Plumbing to get boxSizing prop to Yoga" (#46794)
joevilches Oct 2, 2024
19b971f
Remove run on iOS/Android key handlers (#46781)
huntie Oct 3, 2024
df396d5
Unbreak build_android (#46806)
cortinico Oct 3, 2024
b7bcdcd
chore: Add changelog for 0.75.4 (#46792)
gabrieldonadel Oct 3, 2024
6a09fc0
Rename `RCTUIGraphicsImageRenderer` to `RCTMakeUIGraphicsImageRendere…
Saadnajmi Oct 3, 2024
7487a2c
Allow taking control of bundle loading on new arch (#46731)
alanjhughes Oct 3, 2024
94009f3
Update hermes-parser and related packages in fbsource to 0.24.0 (#46802)
SamChou19815 Oct 3, 2024
d3c7469
Remove several unused imports in Flow code (#46789)
cortinico Oct 3, 2024
b0ac99b
use unknown in Flatlist `setNativeProps` type for typescript >= 3.0 (…
JDMathew Oct 3, 2024
118b7c1
Add custom Fresco decoder for binary XML (#46711)
Abbondanzo Oct 3, 2024
a11a7c3
Keep base TextAttributes as part of AttributedString (#46612)
NickGerleman Oct 3, 2024
060c594
Properly fix measurement of trailing newlines (#46613)
NickGerleman Oct 3, 2024
6cf0cfb
Reenable `setAndroidLayoutDirection` by default (#46811)
NickGerleman Oct 3, 2024
079c0b2
Deprecate UIApplication.windows access (#46763)
caodoan Oct 3, 2024
0aef7b6
Convert ReactClippingViewManager (#46812)
Oct 3, 2024
420229d
Disable loading XML on main thread (#46712)
Abbondanzo Oct 3, 2024
211534b
Add default test for box sizing (#46800)
joevilches Oct 3, 2024
309cdea
Use BackgroundStyleApplicator when setting background color in BaseVi…
NickGerleman Oct 3, 2024
bd50c4a
Make sure that all the pods in a project use the same C++ version (#4…
cipolleschi Oct 4, 2024
eeb6122
fix(dev-middleware): respond with status code `200` when launching RN…
byCedric Oct 4, 2024
47748c7
fix(iOS): Properly retain/release backgroundColor in RCTBorderDrawing…
Saadnajmi Oct 4, 2024
a1ec345
refactor(iOS): move RCTNotifyEventDispatcherObserversOfEvent_DEPRECAT…
okwasniewski Oct 4, 2024
699f73a
Added Submit Application test to button.yml (#46805)
shubhamguptadream11 Oct 4, 2024
1c923ad
Add Pressable testing case in pressable.yml (#46808)
yasir6jan Oct 4, 2024
fdee0eb
Avoid calling keyWindow on any UIScene (#46832)
cipolleschi Oct 4, 2024
1a2532b
Add Modal Testing to modal.yml (#46796)
ahmedbilal008 Oct 4, 2024
fa62b7e
Add test for background color and border width in text.yml (#46829)
muskan27797 Oct 4, 2024
7bb12eb
Convert react/nativemodule/samples/ to Kotlin (#46816)
cortinico Oct 4, 2024
af3bee6
add support for iOS "Darker System Colors" (Increase Contrast) settin…
Oct 4, 2024
3af126b
Add support for basic unions for native modules (#46747)
elicwhite Oct 4, 2024
ab2c47b
Fix deadlock when a new surface is getting started while another is s…
cipolleschi Oct 4, 2024
f0527d8
Instrument XMLHttpRequest (#46844)
Oct 4, 2024
f3d51ef
Fix issue where padding for box sizing is resolved against wrong refe…
joevilches Oct 5, 2024
3ca796e
Plumbing to get boxSizing prop to Yoga round 2 (#46820)
joevilches Oct 5, 2024
3f1e381
Add RNTester box sizing example and e2e test round 2
joevilches Oct 5, 2024
0b0ac81
Fix some cases where we override setBackgroundColor on View-level ins…
NickGerleman Oct 5, 2024
352c063
Removed unused `mJSEngineResolutionAlgorithm` from ReactHostImpl (#46…
cortinico Oct 5, 2024
d0912ed
Fix global.__fetchSegment's error case (#46854)
RSNara Oct 6, 2024
d1a256f
Remove ReactNativeFlipper object (#46839)
cortinico Oct 7, 2024
2f07130
Align logIfUpdateAvailable to use resolved RN version from CLI (#46777)
huntie Oct 7, 2024
de56fb6
Enable shadow node reference updates by default (#46823)
Oct 7, 2024
7316e32
Remove layout-only shadow node reference updates (#46824)
Oct 7, 2024
7510ba3
Clean up layout-only shadow node reference update feature flag (#46825)
Oct 7, 2024
cc6d1eb
feat: Expose MetroConfig type directly from @react-native/metro-confi…
tjzel Oct 7, 2024
8bbd3a8
do not require @fb-tools/babel-register in open source (#46863)
vzaidman Oct 7, 2024
276e3a7
Fix mising `ANTI_ALIAS_FLAG` when resetting Text Paint (#46848)
NickGerleman Oct 7, 2024
eb04be8
Add ReactViewGroupTest (#46843)
Oct 7, 2024
73ce198
fix crash for Modal not attached to window manager (2) (#46764)
alanleedev Oct 7, 2024
d2f3f06
Add support for StringLiteralTypeAnnotation (#46827)
elicwhite Oct 7, 2024
86d92e4
Bump Fresco version to 3.3.0 (#46864)
Abbondanzo Oct 7, 2024
1ffef56
Fix for multi-root apps with Modal (#46867)
rozele Oct 7, 2024
a669de1
Parse string unions as StringLiteralUnionTypeAnnotation (#46845)
elicwhite Oct 7, 2024
7b877a4
Adding support for custom C++ TM wrapper to CxxReactPackage (#46822)
arushikesarwani94 Oct 8, 2024
bed5323
manually remove instances of '$TEMPORARY$string<>' (#46874)
panagosg7 Oct 8, 2024
40a4feb
replace '$TEMPORARY$string<>' with 'string' (#46876)
panagosg7 Oct 8, 2024
aaf7a6a
Back out "cache JNI calls to FabricUIManager::getColor" (#46871)
Oct 8, 2024
ff1c382
Remove unused vector drawable code path (#46878)
Abbondanzo Oct 8, 2024
7c0258a
Add changelog for 0.73.10 (#46889)
cipolleschi Oct 8, 2024
d7a8aae
fix: override podspecs dependencies c++ version (#46888)
Titozzz Oct 8, 2024
9b5fef3
Update some `React.AbstractComponent` type to use `component type` (#…
SamChou19815 Oct 8, 2024
9038a78
replace '$TEMPORARY$string<str>' with 'str' (#46877)
panagosg7 Oct 8, 2024
19fc1c7
replace '$TEMPORARY$object' with '$ReadOnly' [1/n] (#46879)
panagosg7 Oct 8, 2024
d54c25f
Improve FpsDebugFrameCallback.getTotalTimeMS accuracy (#46869)
aamagda Oct 8, 2024
cbc0978
Bump AGP to 8.7.0 (#46886)
cortinico Oct 8, 2024
6b2bbcf
Revert D63643856
Oct 8, 2024
d386dfc
rn | Remove set but unused variable. (#46891)
nlutsenko Oct 8, 2024
6202319
Add resizeMethod type 'none' to disable downsampling on Android (#46866)
Abbondanzo Oct 8, 2024
4763ef3
Add a ReactNativeFeatureFlag to enable/disable LayoutAnimations in An…
mdvacca Oct 8, 2024
05cc409
Revert D64062268: Add a ReactNativeFeatureFlag to enable/disable Layo…
arushikesarwani94 Oct 8, 2024
52f8c57
RN][Android] Add a ReactNativeFeatureFlag to enable/disable LayoutAni…
arushikesarwani94 Oct 8, 2024
768a1d8
Add example of different resize methods (#46873)
Abbondanzo Oct 8, 2024
3801758
remove '$TEMPORARY$array' (#46897)
panagosg7 Oct 8, 2024
e4814b0
Add description to CLI arguments (#46890)
blakef Oct 9, 2024
a268b2b
Enable warningAsErrors for RN-Tester (#46817)
cortinico Oct 9, 2024
5f00db9
Use CommonJS in feature flags definitions to simplify loading from No…
rubennorte Oct 9, 2024
eeaa3ff
Let .xcode.env.local NODE_BINARY handle path spaces
blakef Oct 9, 2024
87bae7f
feat: Add `CallInvoker` to `installJSIBindings(..)`/`BindingsInstalle…
mrousavy Oct 9, 2024
0449630
Resolve Paper leak on Android (#46896)
rozele Oct 9, 2024
d0e5053
chore: test case added for Image (#46831)
sarthak-d11 Oct 9, 2024
3102a58
test: pressable test cases (#46861)
deepanshushuklad11 Oct 9, 2024
37e0973
Replace React.AbstractComponent with `component` type in Switch (#46911)
fabriziocucci Oct 9, 2024
c5a12df
Replace React.AbstractComponent with `component` type in Text (#46912)
fabriziocucci Oct 9, 2024
7fb3d83
Breaking: Remove BaseViewManagerInterface (#46809)
NickGerleman Oct 9, 2024
0794fa9
fix(Windows): Fix cast and control paths errors on windows (#46899)
TatianaKapos Oct 9, 2024
b70709d
fix(iOS): Replace uses of `CGColorRef` with UIColor to avoid manual m…
Saadnajmi Oct 9, 2024
0d6908f
Sunset the `value` namespace (#46930)
joevilches Oct 10, 2024
77889af
Fixes missing char mode of linebreakmode (#46941)
zhongwuzw Oct 10, 2024
91a40a2
Fusebox reload-to-profile (Part 1 of 2: native) (#46856)
EdmondChuiHW Oct 10, 2024
46a9711
Replace React.AbstractComponent with `component` type in SafeAreaView…
fabriziocucci Oct 10, 2024
ab8f3ff
fix: vertical scroll views are detected as horizontals (#46836)
coado Oct 10, 2024
f86a14e
Replace React.AbstractComponent with `component` type in View (#46916)
fabriziocucci Oct 10, 2024
6e2b9da
Replace React.AbstractComponent with `component` type in VScrollViewN…
fabriziocucci Oct 10, 2024
5f05801
Replace React.AbstractComponent with `component` type in various exam…
fabriziocucci Oct 10, 2024
865f302
Replace React.AbstractComponent with `component` type in ImageTypes (…
fabriziocucci Oct 10, 2024
7e1674f
feat: deprecate passing separate new arch flags to RCTRootViewFactory…
okwasniewski Oct 10, 2024
4eceb7e
Implement Runtime.releaseObject and releaseObjectGroup (#46032)
hoxyq Oct 10, 2024
2bc25be
Replace last React.Ref type usage in react-native (#46931)
SamChou19815 Oct 10, 2024
ca0abd1
Set TextInput selection correctly when attached to window in Android …
QichenZhu Oct 10, 2024
6c35ff9
View clipping tweaks (#46933)
Oct 10, 2024
15f5ba4
Replace React.AbstractComponent with `component` type in DebuggingOve…
fabriziocucci Oct 10, 2024
8d230fa
Replace React.AbstractComponent with `component` type in TouchableOpa…
fabriziocucci Oct 10, 2024
90523b6
Replace React.AbstractComponent with `component` type in TouchableHig…
fabriziocucci Oct 10, 2024
1e8bee9
Replace React.AbstractComponent with `component` type in TouchableBou…
fabriziocucci Oct 10, 2024
af49070
fix: change opacity logic from random to decrement by -0.20 (#46830)
sarthak-d11 Oct 10, 2024
26d8d49
Fix null ref on iOS 18 (#46929)
Oct 10, 2024
e39c917
Add an event start timestamp field into RawEvent (#46949)
rshest Oct 10, 2024
5d07c72
Replace React.AbstractComponent with `component` type in TextInput (#…
fabriziocucci Oct 10, 2024
c8fd793
Replace React.AbstractComponent with `component` type in ScrollViewSt…
fabriziocucci Oct 10, 2024
c00f0d3
Replace React.AbstractComponent with `component` type in ScrollView (…
fabriziocucci Oct 10, 2024
f980068
Replace React.AbstractComponent with `component` type in ProgressBarA…
fabriziocucci Oct 10, 2024
f7b28e8
rn/objc | Suppress warnings about set but unused variables. (#46945)
nlutsenko Oct 10, 2024
09682b5
Fix dark mode text (#46898)
Abbondanzo Oct 10, 2024
e4bdde6
Remove default false/null props from Text (#46956)
javache Oct 10, 2024
f25abe5
Remove Deprecated DefaultDevSupportManagerFactory.create() (#46959)
cortinico Oct 10, 2024
b0e2cb3
Back out "fix(iOS): Replace uses of `CGColorRef` with UIColor to avoi…
joevilches Oct 10, 2024
ff698f5
Make RN ColorScheme a Union (#46872)
elicwhite Oct 10, 2024
e4645d0
easy: Align earlyjs c++ native data structures with js (#46895)
RSNara Oct 10, 2024
934af0c
Align earlyjs c++ stack trace parsing with js (#46894)
RSNara Oct 10, 2024
509abff
Extend earlyjs c++ pipeline for soft errors (#46893)
RSNara Oct 10, 2024
9619ba5
Integrate logbox into earlyjs c++ pipeline (#46935)
RSNara Oct 10, 2024
9119c32
earlyjs: Implement decoratedExtraDataKey (#46932)
RSNara Oct 10, 2024
6741fd9
Add missing BaseViewManager props to BaseViewManagerDelegate (#46934)
NickGerleman Oct 11, 2024
b69a92e
Add boxShadow support to BaseViewManager (#46936)
NickGerleman Oct 11, 2024
2c45675
RNGP - Pass PROJECT_ROOT_DIR to CMake (#46958)
cortinico Oct 11, 2024
d4edbcf
Move E2E tests to larger machines to see if flakyness decreases (#46960)
cipolleschi Oct 11, 2024
972c2c8
Bump Kotlin 1.9.x to 2.0.x (#46955)
cortinico Oct 11, 2024
ce53588
Disable e2e on PR (#46974)
cipolleschi Oct 11, 2024
bcb6daf
Replace React.AbstractComponent with `component` type in Pressable (#…
fabriziocucci Oct 11, 2024
c09f824
Replace React.AbstractComponent with `component` type in ActivityIndi…
fabriziocucci Oct 11, 2024
aacd4bb
Disable shadow node reference updates by default (#46961)
Oct 11, 2024
ca6dc67
fix stale contentSize in ScrollView (#46981)
sammy-SC Oct 11, 2024
44fe064
Add changelog for 0.76.0-rc.3 (#46752)
blakef Oct 11, 2024
483b928
Swallow exceptions on draw, forward to onError (#46964)
Abbondanzo Oct 11, 2024
fc199bb
Convert ReactViewManager to Kotlin (#46965)
Oct 11, 2024
105aa12
Deploy 0.248.0 to fbsource
SamChou19815 Oct 11, 2024
c86b5c1
Add new dangerouslyForceOverride method to feature flags (#46963)
rubennorte Oct 11, 2024
a702341
add yargs#usage typing (#46983)
blakef Oct 11, 2024
54c29a7
Add changelog for 0.76.0-rc.4 (#46907)
blakef Oct 11, 2024
401991c
Better instrument the startup timeline.
Oct 11, 2024
621622a
Refactor Systrace.traceSection() to unblock CI (#46994)
mdvacca Oct 12, 2024
3443127
Move execution of ReactNativeFeatureFlags::enableDeletionOfUnmountedV…
mdvacca Oct 12, 2024
f4855d7
add timestamp to onScroll on Android (#46977)
sammy-SC Oct 12, 2024
3130f0d
add timestamp to onScroll on iOS (#46978)
sammy-SC Oct 12, 2024
9ba6237
Update google-java-format to 1.23.0 (#46860)
j-bahr Oct 12, 2024
b7fec23
small refactor of EventBeat (#47001)
sammy-SC Oct 13, 2024
60bc3c5
Deploy 0.248.1 to xplat (#47004)
SamChou19815 Oct 13, 2024
b527177
Fix race condition when reporting mounting transactions for deallocat…
rubennorte Oct 14, 2024
6c19996
Account for diffrent frame size when using maintainVisibleContentPosi…
fabriziocucci Oct 14, 2024
4dd47ee
Make PackagerConnectionSettings class open again (#47005)
gabrieldonadel Oct 14, 2024
e08c7eb
fix how @babel/register is used and update it (#46987)
vzaidman Oct 14, 2024
6e120b3
Add e2e test for Image resize method (#46982)
Abbondanzo Oct 14, 2024
0902b0a
Update Metro to 0.81.0 (#47012)
robhogan Oct 14, 2024
3485e9e
Fix onEndReached not being called when getItemLayout is present and w…
Oct 14, 2024
44c5cc3
Silence CMake warning caused by `PROJECT_ROOT_DIR` (#47015)
cortinico Oct 15, 2024
091025e
Fresco to 3.4.0 (#47024)
cortinico Oct 15, 2024
11392c7
AGP to 8.7.1 (#47022)
cortinico Oct 15, 2024
2c9176a
Update debugger-frontend from 87b2feb...6f29504 (#47029)
EdmondChuiHW Oct 15, 2024
08bd8ac
Fix KeyboardAvoidingView not aware of the keyboard closing after it i…
QichenZhu Oct 15, 2024
4d3d1f8
Merge branch 'main' of https://github.com/facebook/react-native into …
hmallen99 Oct 15, 2024
b8b91c2
Merge branch 'main' of https://github.com/callstack/react-native-visi…
hmallen99 Oct 17, 2024
a38fc58
Use ifdef to control self.automaticallyLoadReactNativeWindow
hmallen99 Oct 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .flowconfig
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ untyped-import
untyped-type-import

[version]
^0.246.0
^0.248.1
44 changes: 29 additions & 15 deletions .github/actions/maestro-android/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ inputs:
required: false
default: 'true'
description: whether this action has to install java 17 or not
flavor:
required: true
description: the flavor we want to run - either debug or release
default: release
working-directory:
required: false
default: "."
description: The directory from which metro should be started

runs:
using: composite
steps:
Expand All @@ -25,7 +34,7 @@ runs:
run: export MAESTRO_VERSION=1.36.0; curl -Ls "https://get.maestro.mobile.dev" | bash
- name: Set up JDK 17
if: ${{ inputs.install-java == 'true' }}
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'zulu'
Expand All @@ -38,33 +47,38 @@ runs:
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Build Codegen
shell: bash
if: ${{ inputs.flavor == 'debug' }}
run: ./packages/react-native-codegen/scripts/oss/build.sh
- name: Run e2e tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 24
arch: x86
script: |
echo "Install APK from ${{ inputs.app-path }}"
adb install "${{ inputs.app-path }}"
echo "Start recording to /sdcard/screen.mp4"
adb shell screenrecord /sdcard/screen.mp4
echo "Start testing ${{ inputs.maestro-flow }}"
$HOME/.maestro/bin/maestro test ${{ inputs.maestro-flow }} --format junit -e APP_ID=${{ inputs.app-id }} --debug-output /tmp/MaestroLogs
echo "Stop recording. Saving to screen.mp4"
adb pull /sdcard/screen.mp4
ram-size: '4096M'
disk-size: '10G'
disable-animations: false
avd-name: e2e_emulator
script: node .github/workflow-scripts/maestro-android.js ${{ inputs.app-path }} ${{ inputs.app-id }} ${{ inputs.maestro-flow }} ${{ inputs.flavor }} ${{ inputs.working-directory }}
- name: Normalize APP_ID
id: normalize-app-id
shell: bash
if: always()
run: |
NORM_APP_ID=$(echo "${{ inputs.app-id }}" | tr '.' '-')
echo "app-id=$NORM_APP_ID" >> $GITHUB_OUTPUT
- name: Store tests result
uses: actions/upload-artifact@v3
if: always()
with:
name: e2e_android_${{ inputs.app-id }}_report_${{ inputs.jsengine }}
name: e2e_android_${{ steps.normalize-app-id.outputs.app-id }}_report_${{ inputs.jsengine }}_${{ inputs.flavor }}
path: |
report.xml
screen.mp4
- name: Store Logs
if: failure() && steps.run-tests.outcome == 'failure'
uses: actions/upload-artifact@v4.3.4
with:
name: maestro-logs-android-${{ inputs.app-id }}-${{ inputs.jsengine }}
name: maestro-logs-android-${{ steps.normalize-app-id.outputs.app-id }}-${{ inputs.jsengine }}-${{ inputs.flavor }}
path: /tmp/MaestroLogs
41 changes: 37 additions & 4 deletions .github/actions/maestro-ios/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@ inputs:
maestro-flow:
required: true
description: the folder that contains the maestro tests
flavor:
required: true
description: Whether we are building for Debug or Release
default: Release
working-directory:
required: false
default: "."
description: The directory from which metro should be started

runs:
using: composite
steps:
Expand All @@ -29,6 +38,13 @@ runs:
with:
java-version: '17'
distribution: 'zulu'
- name: Start Metro in Debug
shell: bash
if: ${{ inputs.flavor == 'Debug' }}
run: |
cd ${{ inputs.working-directory }}
yarn start &
sleep 5 # to give metro time to load
- name: Run tests
id: run-tests
shell: bash
Expand All @@ -53,18 +69,30 @@ runs:
echo "Launch the app"
xcrun simctl launch $UDID ${{ inputs.app-id }}

if [[ ${{ inputs.flavor }} == 'Debug' ]]; then
# To give the app time to warm the metro's cache
sleep 5
fi

echo "Running tests with Maestro"
export MAESTRO_DRIVER_STARTUP_TIMEOUT=1500000 # 25 min. CI is extremely slow
export MAESTRO_DRIVER_STARTUP_TIMEOUT=1200000 # 20 min. CI is extremely slow

# Add retries for flakyness
MAX_ATTEMPTS=3
MAX_ATTEMPTS=5
CURR_ATTEMPT=0
RESULT=1

while [[ $CURR_ATTEMPT -lt $MAX_ATTEMPTS ]] && [[ $RESULT -ne 0 ]]; do
if [[ $CURR_ATTEMPT -ne 0 ]]; then
echo "Rebooting simulator for stability"
xcrun simctl boot "iPhone 15 Pro"
fi

CURR_ATTEMPT=$((CURR_ATTEMPT+1))
echo "Attempt number $CURR_ATTEMPT"



echo "Start video record using pid: video_record_${{ inputs.jsengine }}_$CURR_ATTEMPT.pid"
xcrun simctl io booted recordVideo video_record_$CURR_ATTEMPT.mov & echo $! > video_record_${{ inputs.jsengine }}_$CURR_ATTEMPT.pid

Expand All @@ -75,22 +103,27 @@ runs:

# Stop video
kill -SIGINT $(cat video_record_${{ inputs.jsengine }}_$CURR_ATTEMPT.pid)

echo "Shutting down simulator for stability"
xcrun simctl shutdown "iPhone 15 Pro"
done

exit $RESULT
- name: Store video record
if: always()
uses: actions/upload-artifact@v4.3.4
with:
name: e2e_ios_${{ inputs.app-id }}_report_${{ inputs.jsengine }}
name: e2e_ios_${{ inputs.app-id }}_report_${{ inputs.jsengine }}_${{ inputs.flavor }}
path: |
video_record_1.mov
video_record_2.mov
video_record_3.mov
video_record_4.mov
video_record_5.mov
report.xml
- name: Store Logs
if: failure() && steps.run-tests.outcome == 'failure'
uses: actions/upload-artifact@v4.3.4
with:
name: maestro-logs-${{ inputs.app-id }}-${{ inputs.jsengine }}
name: maestro-logs-${{ inputs.app-id }}-${{ inputs.jsengine }}-${{ inputs.flavor }}
path: /tmp/MaestroLogs
2 changes: 1 addition & 1 deletion .github/actions/test-ios-rntester/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ runs:
set -o pipefail && xcodebuild \
-scheme "RNTester" \
-workspace packages/rn-tester/RNTesterPods.xcworkspace \
-configuration "Release" \
-configuration "${{ inputs.flavor }}" \
-sdk "iphonesimulator" \
-destination "generic/platform=iOS Simulator" \
-derivedDataPath "/tmp/RNTesterBuild" | xcbeautify
Expand Down
158 changes: 158 additions & 0 deletions .github/workflow-scripts/__tests__/publishTemplate-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/

const {
publishTemplate,
verifyPublishedTemplate,
} = require('../publishTemplate');

const mockRun = jest.fn();
const mockSleep = jest.fn();
const mockGetNpmPackageInfo = jest.fn();
const silence = () => {};

jest.mock('../utils.js', () => ({
log: silence,
run: mockRun,
sleep: mockSleep,
getNpmPackageInfo: mockGetNpmPackageInfo,
}));

const getMockGithub = () => ({
rest: {
actions: {
createWorkflowDispatch: jest.fn(),
},
},
});

describe('#publishTemplate', () => {
beforeEach(jest.clearAllMocks);

it('checks commits for magic #publish-package-to-npm&latest string and sets latest', async () => {
mockRun.mockReturnValueOnce(`
The commit message

#publish-packages-to-npm&latest`);

const github = getMockGithub();
await publishTemplate(github, '0.76.0', true);
expect(github.rest.actions.createWorkflowDispatch).toHaveBeenCalledWith({
owner: 'react-native-community',
repo: 'template',
workflow_id: 'release.yml',
ref: '0.76-stable',
inputs: {
dry_run: true,
is_latest_on_npm: true,
version: '0.76.0',
},
});
});

it('pubished as is_latest_on_npm = false if missing magic string', async () => {
mockRun.mockReturnValueOnce(`
The commit message without magic
`);

const github = getMockGithub();
await publishTemplate(github, '0.76.0', false);
expect(github.rest.actions.createWorkflowDispatch).toHaveBeenCalledWith({
owner: 'react-native-community',
repo: 'template',
workflow_id: 'release.yml',
ref: '0.76-stable',
inputs: {
dry_run: false,
is_latest_on_npm: false,
version: '0.76.0',
},
});
});
});

describe('#verifyPublishedTemplate', () => {
beforeEach(jest.clearAllMocks);

it("waits on npm updating for version and not 'latest'", async () => {
const NOT_LATEST = false;
mockGetNpmPackageInfo
// template@<version>
.mockReturnValueOnce(Promise.reject('mock http/404'))
.mockReturnValueOnce(Promise.resolve());
mockSleep.mockReturnValueOnce(Promise.resolve()).mockImplementation(() => {
throw new Error('Should not be called again!');
});

const version = '0.77.0';
await verifyPublishedTemplate(version, NOT_LATEST);

expect(mockGetNpmPackageInfo).toHaveBeenLastCalledWith(
'@react-native-community/template',
version,
);
});

it('waits on npm updating version and latest tag', async () => {
const IS_LATEST = true;
const version = '0.77.0';
mockGetNpmPackageInfo
// template@latest → unknown tag
.mockReturnValueOnce(Promise.reject('mock http/404'))
// template@latest != version → old tag
.mockReturnValueOnce(Promise.resolve({version: '0.76.5'}))
// template@latest == version → correct tag
.mockReturnValueOnce(Promise.resolve({version}));
mockSleep
.mockReturnValueOnce(Promise.resolve())
.mockReturnValueOnce(Promise.resolve())
.mockImplementation(() => {
throw new Error('Should not be called again!');
});

await verifyPublishedTemplate(version, IS_LATEST);

expect(mockGetNpmPackageInfo).toHaveBeenCalledWith(
'@react-native-community/template',
'latest',
);
});

describe('timeouts', () => {
let mockProcess;
beforeEach(() => {
mockProcess = jest.spyOn(process, 'exit').mockImplementation(code => {
throw new Error(`process.exit(${code}) called!`);
});
});
afterEach(() => mockProcess.mockRestore());
it('will timeout if npm does not update package version after a set number of retries', async () => {
const RETRIES = 2;
mockGetNpmPackageInfo.mockReturnValue(Promise.reject('mock http/404'));
mockSleep.mockReturnValue(Promise.resolve());
await expect(() =>
verifyPublishedTemplate('0.77.0', true, RETRIES),
).rejects.toThrowError('process.exit(1) called!');
expect(mockGetNpmPackageInfo).toHaveBeenCalledTimes(RETRIES);
});

it('will timeout if npm does not update latest tag after a set number of retries', async () => {
const RETRIES = 7;
const IS_LATEST = true;
mockGetNpmPackageInfo.mockReturnValue(
Promise.resolve({version: '0.76.5'}),
);
mockSleep.mockReturnValue(Promise.resolve());
await expect(async () => {
await verifyPublishedTemplate('0.77.0', IS_LATEST, RETRIES);
}).rejects.toThrowError('process.exit(1) called!');
expect(mockGetNpmPackageInfo).toHaveBeenCalledTimes(RETRIES);
});
});
});
Loading
Loading