You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updates the C++ library template to derive generated codegen include names from package.jsoncodegenConfig.name when it exists, matching codegen-windows normalization. This avoids generating headers that include Native<project folder>Spec.g.h for libraries whose codegen spec name intentionally differs from the package or Windows project name, such as react-native-webview.
The template now falls back to the previous <ProjectName>Spec naming behavior when codegenConfig.name is unavailable, and no longer scans existing generated codegen output during template generation.
Static render check for a codegenConfig.name of RNCWebViewSpec, confirming the generated header references NativeRNCWebViewSpec.g.h and ReactNativeWebviewCodegen::RNCWebViewSpec.
Note: yarn change --help could not run in this checkout because the local Beachball binary is not installed (command not found: beachball), so I added the Beachball change file manually using the existing schema.
161 scenario(s) across 28 suite(s) — no regressions
SectionList
Scenario
Mean
Median
StdDev
Renders
vs Baseline
SectionList mount
3.40ms
3.00ms
±0.52ms
1
-40.0%
SectionList unmount
0.10ms
0.00ms
±0.32ms
0
+0.0%
SectionList rerender
7.40ms
7.50ms
±0.97ms
2
-28.6%
SectionList with-3-sections-15-items
3.70ms
4.00ms
±0.48ms
1
-27.3%
SectionList with-5-sections-50-items
3.90ms
4.00ms
±0.99ms
1
-33.3%
SectionList with-10-sections-200-items
3.90ms
4.00ms
±1.29ms
1
-27.3%
SectionList with-20-sections-200-items
3.50ms
3.50ms
±1.72ms
1
-30.0%
SectionList with-section-separator
1.30ms
1.00ms
±0.48ms
1
-50.0%
SectionList with-item-separator
1.60ms
1.50ms
±0.70ms
1
-25.0%
SectionList with-header-footer
1.70ms
1.00ms
±1.25ms
1
-50.0%
SectionList with-section-footer
1.00ms
1.00ms
±0.00ms
1
-50.0%
SectionList with-sticky-section-headers
1.40ms
1.00ms
±0.52ms
1
-50.0%
SectionList with-empty-list
0.70ms
0.00ms
±1.25ms
1
-100.0%
SectionList with-50-sections-1000-items
1.00ms
1.00ms
±0.00ms
1
-50.0%
FlatList
Scenario
Mean
Median
StdDev
Renders
vs Baseline
FlatList mount
2.90ms
3.00ms
±1.20ms
1
-25.0%
FlatList unmount
0.10ms
0.00ms
±0.32ms
0
+0.0%
FlatList rerender
6.10ms
6.00ms
±0.57ms
2
-33.3%
FlatList with-10-items
2.90ms
3.00ms
±0.32ms
1
-25.0%
FlatList with-100-items
3.30ms
3.00ms
±0.48ms
1
-40.0%
FlatList with-500-items
3.40ms
3.00ms
±0.97ms
1
-25.0%
FlatList with-1000-items
3.20ms
3.00ms
±0.42ms
1
-25.0%
FlatList horizontal
3.20ms
3.00ms
±1.23ms
1
-40.0%
FlatList with-separator
1.40ms
1.00ms
±0.52ms
1
-50.0%
FlatList with-header-footer
1.50ms
1.00ms
±1.58ms
1
-50.0%
FlatList with-empty-list
0.30ms
0.00ms
±0.48ms
1
-100.0%
FlatList with-get-item-layout
1.00ms
1.00ms
±0.00ms
1
+0.0%
FlatList inverted
1.10ms
1.00ms
±0.32ms
1
-33.3%
FlatList with-num-columns
2.20ms
2.00ms
±1.75ms
1
-33.3%
TouchableOpacity
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TouchableOpacity mount
0.70ms
1.00ms
±0.48ms
1
+0.0%
TouchableOpacity unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
TouchableOpacity rerender
0.60ms
1.00ms
±0.52ms
2
+0.0%
TouchableOpacity custom-active-opacity
0.50ms
0.50ms
±0.53ms
1
-50.0%
TouchableOpacity disabled
0.30ms
0.00ms
±0.48ms
1
-100.0%
TouchableOpacity with-all-handlers
0.40ms
0.00ms
±0.52ms
1
-100.0%
TouchableOpacity with-hit-slop
0.90ms
1.00ms
±0.32ms
1
+0.0%
TouchableOpacity with-delay
0.60ms
1.00ms
±0.52ms
1
+0.0%
TouchableOpacity nested
1.10ms
1.00ms
±0.32ms
1
+0.0%
TouchableOpacity multiple-10
3.93ms
4.00ms
±1.10ms
1
-33.3%
TouchableOpacity multiple-50
17.60ms
17.00ms
±1.99ms
1
-41.4%
TouchableOpacity multiple-100
14.60ms
14.00ms
±2.97ms
1
-72.0%
ScrollView
Scenario
Mean
Median
StdDev
Renders
vs Baseline
ScrollView mount
0.40ms
0.00ms
±0.97ms
1
+0.0%
ScrollView unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
ScrollView rerender
0.40ms
0.00ms
±0.52ms
2
-100.0%
ScrollView children-20
2.13ms
2.00ms
±0.35ms
1
-50.0%
ScrollView children-100
11.67ms
11.00ms
±1.72ms
1
-31.3%
ScrollView horizontal
2.40ms
2.00ms
±0.52ms
1
-50.0%
ScrollView sticky-headers
2.20ms
2.00ms
±1.14ms
1
-33.3%
ScrollView scroll-indicators
0.60ms
1.00ms
±0.52ms
1
+0.0%
ScrollView nested
1.10ms
1.00ms
±0.32ms
1
+0.0%
ScrollView content-container-style
0.60ms
1.00ms
±0.52ms
1
+0.0%
ScrollView children-500
14.73ms
14.00ms
±1.94ms
1
-26.3%
TouchableHighlight
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TouchableHighlight mount
0.20ms
0.00ms
±0.42ms
1
-100.0%
TouchableHighlight unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
TouchableHighlight rerender
0.40ms
0.00ms
±0.52ms
2
-100.0%
TouchableHighlight custom-underlay-color
0.60ms
0.00ms
±1.26ms
1
+0.0%
TouchableHighlight custom-active-opacity
0.30ms
0.00ms
±0.48ms
1
+0.0%
TouchableHighlight disabled
0.20ms
0.00ms
±0.42ms
1
+0.0%
TouchableHighlight with-all-handlers
0.10ms
0.00ms
±0.32ms
1
+0.0%
TouchableHighlight with-hit-slop
0.20ms
0.00ms
±0.42ms
1
+0.0%
TouchableHighlight nested-touchables
0.50ms
0.50ms
±0.53ms
1
-50.0%
TouchableHighlight multiple-touchables-10
1.50ms
1.50ms
±0.53ms
1
-50.0%
TouchableHighlight multiple-touchables-50
9.30ms
9.00ms
±1.16ms
1
-28.0%
TouchableHighlight multiple-touchables-100
18.00ms
18.00ms
±2.11ms
1
-20.0%
Pressable
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Pressable mount
0.20ms
0.00ms
±0.42ms
1
+0.0%
Pressable unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
Pressable rerender
0.50ms
0.50ms
±0.53ms
2
+0.0%
Pressable with-all-handlers
0.30ms
0.00ms
±0.48ms
1
+0.0%
Pressable with-style-function
0.20ms
0.00ms
±0.42ms
1
+0.0%
Pressable disabled
0.20ms
0.00ms
±0.42ms
1
+0.0%
Pressable with-hit-slop
0.10ms
0.00ms
±0.32ms
1
+0.0%
Pressable nested
0.50ms
0.50ms
±0.53ms
1
-50.0%
Pressable multiple-10
2.00ms
2.00ms
±0.00ms
1
-33.3%
Pressable multiple-50
10.40ms
10.00ms
±1.30ms
1
-28.6%
Pressable multiple-100
11.33ms
9.00ms
±6.44ms
1
-25.0%
Modal
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Modal mount
0.30ms
0.00ms
±0.48ms
1
+0.0%
Modal unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
Modal rerender
0.40ms
0.00ms
±0.52ms
2
+0.0%
Modal slide-animation
0.30ms
0.00ms
±0.48ms
1
+0.0%
Modal fade-animation
0.20ms
0.00ms
±0.42ms
1
+0.0%
Modal transparent
0.10ms
0.00ms
±0.32ms
1
+0.0%
Modal with-callbacks
0.20ms
0.00ms
±0.42ms
1
+0.0%
Modal rich-content
1.00ms
1.00ms
±0.00ms
1
-50.0%
Modal with-accessibility
0.10ms
0.00ms
±0.32ms
1
+0.0%
Image
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Image mount
0.10ms
0.00ms
±0.32ms
1
+0.0%
Image unmount
0.10ms
0.00ms
±0.32ms
0
+0.0%
Image rerender
0.10ms
0.00ms
±0.32ms
2
+0.0%
Image with-resize-mode
0.10ms
0.00ms
±0.32ms
1
+0.0%
Image with-border-radius
0.10ms
0.00ms
±0.32ms
1
+0.0%
Image with-tint-color
0.20ms
0.00ms
±0.42ms
1
+0.0%
Image with-blur-radius
0.00ms
0.00ms
±0.00ms
1
+0.0%
Image with-accessibility
0.20ms
0.00ms
±0.42ms
1
+0.0%
Image multiple-10
0.73ms
1.00ms
±0.46ms
1
+0.0%
Image multiple-50
4.93ms
5.00ms
±1.10ms
1
+66.7%
Image multiple-100
6.40ms
6.00ms
±2.85ms
1
-25.0%
ActivityIndicator
Scenario
Mean
Median
StdDev
Renders
vs Baseline
ActivityIndicator mount
0.10ms
0.00ms
±0.32ms
1
+0.0%
ActivityIndicator unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
ActivityIndicator rerender
0.60ms
0.00ms
±1.26ms
2
+0.0%
ActivityIndicator size-large
0.10ms
0.00ms
±0.32ms
1
+0.0%
ActivityIndicator size-small
0.10ms
0.00ms
±0.32ms
1
+0.0%
ActivityIndicator with-color
0.00ms
0.00ms
±0.00ms
1
+0.0%
ActivityIndicator not-animating
0.10ms
0.00ms
±0.32ms
1
+0.0%
ActivityIndicator with-accessibility
0.00ms
0.00ms
±0.00ms
1
+0.0%
ActivityIndicator multiple-10
0.53ms
1.00ms
±0.52ms
1
+0.0%
ActivityIndicator multiple-50
2.40ms
2.00ms
±0.51ms
1
-50.0%
ActivityIndicator multiple-100
5.47ms
5.00ms
±0.74ms
1
-28.6%
Switch
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Switch mount
0.30ms
0.00ms
±0.48ms
1
+0.0%
Switch unmount
0.10ms
0.00ms
±0.32ms
0
+0.0%
Switch rerender
0.10ms
0.00ms
±0.32ms
2
-100.0%
Switch value-true
0.20ms
0.00ms
±0.42ms
1
+0.0%
Switch disabled
0.20ms
0.00ms
±0.42ms
1
+0.0%
Switch custom-colors
0.30ms
0.00ms
±0.48ms
1
+0.0%
Switch on-value-change
0.20ms
0.00ms
±0.42ms
1
+0.0%
Switch with-accessibility
0.00ms
0.00ms
±0.00ms
1
+0.0%
Switch multiple-10
1.00ms
1.00ms
±0.00ms
1
-50.0%
Switch multiple-50
6.47ms
6.00ms
±1.73ms
1
-33.3%
Switch multiple-100
12.60ms
11.00ms
±3.50ms
1
-31.3%
Button
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Button mount
0.50ms
0.50ms
±0.53ms
1
-50.0%
Button unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
Button rerender
1.10ms
1.00ms
±1.10ms
2
+0.0%
Button disabled
0.50ms
0.50ms
±0.53ms
1
-50.0%
Button with-color
0.40ms
0.00ms
±0.52ms
1
-100.0%
Button with-accessibility
0.50ms
0.50ms
±0.53ms
1
-50.0%
Button multiple-10
3.93ms
4.00ms
±1.22ms
1
-33.3%
Button multiple-50
14.73ms
17.00ms
±5.79ms
1
-37.0%
Button multiple-100
10.87ms
10.00ms
±1.55ms
1
-47.4%
TextInput
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TextInput mount
0.10ms
0.00ms
±0.32ms
1
+0.0%
TextInput unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
TextInput rerender
0.20ms
0.00ms
±0.42ms
2
+0.0%
TextInput multiline
0.10ms
0.00ms
±0.32ms
1
+0.0%
TextInput with-value
0.10ms
0.00ms
±0.32ms
1
+0.0%
TextInput styled
0.10ms
0.00ms
±0.32ms
1
+0.0%
TextInput multiple-100
5.00ms
5.00ms
±0.93ms
1
-28.6%
View
Scenario
Mean
Median
StdDev
Renders
vs Baseline
View mount
0.20ms
0.00ms
±0.42ms
1
+0.0%
View unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
View rerender
0.20ms
0.00ms
±0.42ms
2
+0.0%
View nested-50
2.47ms
2.00ms
±1.06ms
1
-33.3%
View nested-100
5.20ms
5.00ms
±1.32ms
1
-28.6%
View shadow
0.10ms
0.00ms
±0.32ms
1
+0.0%
View border-radius
0.10ms
0.00ms
±0.32ms
1
+0.0%
View nested-500
12.40ms
7.00ms
±9.66ms
1
-30.0%
Text
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Text mount
0.00ms
0.00ms
±0.00ms
1
+0.0%
Text unmount
0.00ms
0.00ms
±0.00ms
0
+0.0%
Text rerender
0.50ms
0.00ms
±1.27ms
2
+0.0%
Text long-1000
0.20ms
0.00ms
±0.42ms
1
+0.0%
Text nested
0.20ms
0.00ms
±0.42ms
1
+0.0%
Text styled
0.10ms
0.00ms
±0.32ms
1
+0.0%
Text multiple-100
5.60ms
5.00ms
±1.18ms
1
-28.6%
SectionList.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
SectionList native mount
3.76ms
3.63ms
±0.46ms
1
-44.1%
FlatList.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
FlatList native mount
3.85ms
3.71ms
±0.62ms
1
-59.7%
TouchableHighlight.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TouchableHighlight native mount
1.06ms
1.03ms
±0.17ms
1
-50.7%
TouchableOpacity.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TouchableOpacity native mount
1.15ms
1.13ms
±0.05ms
1
-63.9%
Pressable.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Pressable native mount
1.06ms
1.02ms
±0.13ms
1
-59.4%
ScrollView.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
ScrollView native mount
2.24ms
2.19ms
±0.18ms
1
-45.9%
ActivityIndicator.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
ActivityIndicator native mount
0.99ms
0.89ms
±0.17ms
1
-64.0%
TextInput.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
TextInput native mount
1.47ms
1.40ms
±0.18ms
1
-65.7%
Switch.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Switch native mount
0.80ms
0.77ms
±0.06ms
1
-55.5%
Button.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Button native mount
1.37ms
1.35ms
±0.15ms
1
-48.1%
Modal.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Modal native mount
0.75ms
0.73ms
±0.09ms
1
-40.1%
Image.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Image native mount
1.31ms
1.23ms
±0.27ms
1
-45.8%
View.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
View native mount
0.86ms
0.82ms
±0.20ms
1
-42.4%
Text.native-perf-test.ts
Scenario
Mean
Median
StdDev
Renders
vs Baseline
Text native mount
0.98ms
0.92ms
±0.16ms
1
-46.9%
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
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
Fixes #15094.
Updates the C++ library template to derive generated codegen include names from
package.jsoncodegenConfig.namewhen it exists, matchingcodegen-windowsnormalization. This avoids generating headers that includeNative<project folder>Spec.g.hfor libraries whose codegen spec name intentionally differs from the package or Windows project name, such asreact-native-webview.The template now falls back to the previous
<ProjectName>Specnaming behavior whencodegenConfig.nameis unavailable, and no longer scans existing generated codegen output during template generation.Test Plan
node --check vnext/templates/cpp-lib/template.config.jsgit diff --checkcodegenConfig.nameofRNCWebViewSpec, confirming the generated header referencesNativeRNCWebViewSpec.g.handReactNativeWebviewCodegen::RNCWebViewSpec.Note:
yarn change --helpcould not run in this checkout because the local Beachball binary is not installed (command not found: beachball), so I added the Beachball change file manually using the existing schema.Microsoft Reviewers: Open in CodeFlow