Use fork-sync for Folly and FastFloat#15979
Open
vmoroz wants to merge 3 commits intomicrosoft:mainfrom
Open
Conversation
d8e8af1 to
a1871f1
Compare
Saadnajmi
approved these changes
Apr 10, 2026
Performance Test ResultsBranch: ✅ Passed161 scenario(s) across 28 suite(s) — no regressionsSectionList
FlatList
TouchableOpacity
ScrollView
TouchableHighlight
Pressable
Modal
Image
ActivityIndicator
Switch
Button
TextInput
View
Text
SectionList.native-perf-test.ts
FlatList.native-perf-test.ts
TouchableHighlight.native-perf-test.ts
TouchableOpacity.native-perf-test.ts
Pressable.native-perf-test.ts
ScrollView.native-perf-test.ts
ActivityIndicator.native-perf-test.ts
TextInput.native-perf-test.ts
Switch.native-perf-test.ts
Button.native-perf-test.ts
Modal.native-perf-test.ts
Image.native-perf-test.ts
View.native-perf-test.ts
Text.native-perf-test.ts
|
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.
Description
Type of Change
Why
This is Phase 2 of the fork-sync migration (Phase 1 PR landed fmt). Currently, Folly and FastFloat sources are downloaded at build time from GitHub, unzipped into
node_modules/, and then patched in-place. This approach is fragile, makes offline builds impossible, and hides the actual source code that ships in the binary.By committing the vendored source directly — with patches already applied — we get:
.vcxitems@rnx-kit/fork-synccan update to new upstream versions and flag merge conflicts with our patchesWhat
Folly 2024.10.14.00 committed into
vnext/external/folly/(797 files, ~9 MB):algorithm/simd/.syncignore(coro, executors, fibers, futures, io, logging, etc.)TEMP_UntilFollyUpdate/applied in-placefolly.vcxitemswith 30 ClCompile entries, PCH support, Desktop-only SysMman.cppfolly_pch.obj,folly_Format.obj,portabilityString.obj)FastFloat 8.0.0 committed into
vnext/external/fast-float/(13 files, header-only):fast-float.vcxitemswith ClInclude entries onlyBuild system changes:
React.Cpp.props— include paths changed from$(FollyDir)/$(FastFloatDir)to$(ExternalDir)folly/$(ExternalDir)fast-float\includeDirectory.Build.props— removed 6 properties:FollyVersion,FastFloatVersion,FollyCommitHash,FastFloatCommitHash,FollyDir,FastFloatDirExternal.vcxitems— importsfolly.vcxitemsandfast-float.vcxitemsLayout-Desktop-Headers.ps1— uses committed source; removed download logic and override sectionCleanup:
vnext/Folly/Folly.vcxproj,.vcxproj.filters,cgmanifest.json,.clang-format,packages.lock.jsonvnext/Folly/TEMP_UntilFollyUpdate/(patches now in-place)vnext/FollyWin32/entirely (SysMman.cpp now infolly.vcxitemswithAppContainerApplicationcondition)Folly.natvistovnext/external/folly/vnext/Folly/pch.h,pch.cpp,ThreadNameStub.cpp(RNW-specific, referenced from vcxitems).slnfiles, 2.slnffilesProjectReferenceto Folly from 4.vcxprojfiles (Microsoft.ReactNative, ReactCommon, Desktop, IntegrationTests)sync-manifest.jsonwith folly and fast-float entriesDisableFormat: true.clang-formatinsidefolly/folly/to preventyarn formatfrom reformatting vendored codeScreenshots
N/A — build infrastructure change, no UI impact.
Testing
Microsoft.ReactNative.vcxproj(Debug|x64) — all Folly sources compile via vcxitems chain, links successfully intoMicrosoft.ReactNative.dllReact.Windows.Desktop.DLL.vcxproj(Debug|x64) — SysMman.cpp compiles for Desktop, links intoreact-native-win32.dll$(FollyDir),$(FastFloatDir),FollyVersion,FastFloatVersion,FollyCommitHash,FastFloatCommitHashremain in build filesFolly.vcxprojis removed from all solutionsChangelog
Should this change be included in the release notes: no
Internal build infrastructure change — no API or behavior changes.
Microsoft Reviewers: Open in CodeFlow