Skip to content

Integrate RN 0.85.0-nightly-20260224-42cd0f041#16294

Open
anuagragith wants to merge 8 commits into
mainfrom
integrate/nightly-20260224-v2
Open

Integrate RN 0.85.0-nightly-20260224-42cd0f041#16294
anuagragith wants to merge 8 commits into
mainfrom
integrate/nightly-20260224-v2

Conversation

@anuagragith

@anuagragith anuagragith commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Updates React Native Windows to nightly 0.85.0-nightly-20260224-42cd0f041 (Feb 24, 2026).

Description

  • Updated all react-native and @react-native/* dependencies to target nightly
  • Upgraded platform overrides via react-native-platform-override
  • Added upstream AnimationBackend examples for RNTester
  • Added src-win/Libraries/LogBox to eslintignore for component keyword syntax
  • Removed obsolete vnext/src-win/jest/setup.js (now provided by upstream)
  • Updated yarn.lock

Type of Change

Bug fix (non-breaking change which fixes an issue)

Why

Update RNW to a newer RN nightly build

Testing

  • yarn install
  • yarn validate-overrides
  • yarn lint:fix applied
  • Playground builds and launches
  • Change files included

Summary of all the chanegs made to fix all the failing linter checks and tests -

# Root cause Files changed Why/What it does
1 Jest relocated upstream — the jest/ folder (setup, mocks, helpers) moved out of react-native into the new @react-native/jest-preset (not auto-installed), breaking flow-check with ~22 "cannot resolve module" errors packages/@rnw-scripts/just-task/copyRNLibraries.js, vnext/package.json, packages/@office-iss/react-native-win32/package.json, vnext/src-win/jest/setup.js (deleted), yarn.lock Copy Jest from @react-native/jest-preset; add it as an explicit dep in vnext + win32; delete the orphaned override file (upstream preset now provides it); regenerate lockfile. 👉 Confirm relying on @react-native/jest-preset is the intended direction.
2 Bogus no-unreachable lint errors — the new Flow component/hook syntax confuses ESLint's code-path analysis into flagging valid code as unreachable packages/@rnw-scripts/eslint-config/eslintrc.js Disable no-unreachable for hermes-parsed files. 👉 Main judgment call: per-file eslint-disable wasn't an option because those are "copy"-type overrides that must byte-match upstream. Safe since Flow does its own unreachable check.
3 Flow needed a bump for the new syntax vnext/package.json, packages/@office-iss/react-native-win32/package.json, .../LogBoxInspectorSourceMapStatus.win32.js flow-bin 0.299 → 0.302; removed one dead if block the newer Flow flagged.
4 New upstream RNTester example (AnimationBackend) had no override entry, failing validate-overrides packages/@react-native/tester/overrides.json Added a directoryCopy override matching sibling example dirs.
5 C++ formatting vnext/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp clang-format only, no behavior change.
6 E2E Fabric snapshot mismatches — the nightly makes more views carry a meaningful backgroundColor upstream, so RNW correctly renders its background SpriteVisual (the empty 0-size child visual). RNW's own color/view code is unchanged → expected upstream behavior 14 .snap files under packages/e2e-test-app-fabric/test/**/__snapshots__/ Regenerated via yarn e2etest -u. 👉 Pure test-baseline updates; worth a glance to confirm the added background visuals look right.

Changelog

No

Microsoft Reviewers: Open in CodeFlow

Updates React Native Windows to nightly 0.85.0-nightly-20260224-42cd0f041 (Feb 24, 2026).

Changes:
- Updated all react-native and @react-native/* dependencies to target nightly
- Upgraded platform overrides via react-native-platform-override
- Added upstream AnimationBackend examples for RNTester
- Added src-win/Libraries/LogBox to eslintignore for component keyword syntax
- Removed obsolete vnext/src-win/jest/setup.js (now provided by upstream)
- Updated yarn.lock

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@anuagragith anuagragith requested review from a team as code owners June 30, 2026 04:56
Anukrati Agrawal and others added 5 commits June 30, 2026 15:40
…ntax

hermes-eslint's no-unreachable does not recognize Flow `component` declarations as function boundaries, so returns inside them falsely mark following top-level declarations as unreachable. Add scoped eslint-disable comments to suppress these false positives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The nightly integration bumped the .flowconfig [version] to ^0.302.0 in vnext and @office-iss/react-native-win32 but left flow-bin at ^0.299.0, so flow-check failed the version guard. Bump flow-bin to ^0.302.0 in both packages to match. Flow 0.302.0's stricter invalid-compare check then flagged pre-existing dead code (an 'if (status === COMPLETE)' block made unreachable by the switch 'default: return null') in LogBoxInspectorSourceMapStatus.win32.js; remove it (behavior-preserving).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The nightly integration converted these FlatList example components to Flow
'component' syntax. hermes-eslint emits ComponentDeclaration AST nodes that
ESLint's code-path analyzer does not treat as function boundaries, so a
'return' inside a component body leaks to module scope and falsely flags
following top-level declarations as unreachable. Add a scoped file-level
eslint-disable for no-unreachable to suppress these false positives.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Upstream React Native moved the Jest setup, mocks, and helpers out of the
react-native package into @react-native/jest-preset. copyRNLibraries still
copied from react-native/jest/** (now nonexistent), so vnext/jest ended up
with only the RNW setup.js override and none of the ./mock or ./mocks/*
siblings it imports, producing 22 cannot-resolve-module flow errors.

Point copyRNLibraries at @react-native/jest-preset/jest/** and declare the
package explicitly (pinned to the nightly) since react-native only lists it
as an optional peer dependency. Verified flow-check passes with 0 errors for
both react-native-windows (vnext) and @office-iss/react-native-win32.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Performance Test Results

Branch: integrate/nightly-20260224-v2
Commit: 4e75f068
Time: 2026-07-01T21:15:53.716Z
Tests: 161/161 passed

✅ Passed

161 scenario(s) across 28 suite(s) — no regressions

SectionList

Scenario Mean Median StdDev Renders vs Baseline
SectionList mount 4.30ms 4.00ms ±0.67ms 1 -20.0%
SectionList unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
SectionList rerender 10.20ms 10.00ms ±1.55ms 2 -4.8%
SectionList with-3-sections-15-items 4.30ms 4.00ms ±0.82ms 1 -27.3%
SectionList with-5-sections-50-items 5.60ms 5.00ms ±1.96ms 1 -16.7%
SectionList with-10-sections-200-items 4.50ms 4.00ms ±0.71ms 1 -27.3%
SectionList with-20-sections-200-items 4.40ms 4.00ms ±1.71ms 1 -20.0%
SectionList with-section-separator 1.40ms 1.00ms ±0.52ms 1 -50.0%
SectionList with-item-separator 2.10ms 2.00ms ±1.10ms 1 +0.0%
SectionList with-header-footer 1.60ms 2.00ms ±0.52ms 1 +0.0%
SectionList with-section-footer 1.50ms 1.50ms ±0.53ms 1 -25.0%
SectionList with-sticky-section-headers 1.30ms 1.00ms ±0.48ms 1 -50.0%
SectionList with-empty-list 0.50ms 0.50ms ±0.53ms 1 -50.0%
SectionList with-50-sections-1000-items 1.40ms 1.00ms ±0.52ms 1 -50.0%

FlatList

Scenario Mean Median StdDev Renders vs Baseline
FlatList mount 4.30ms 4.00ms ±0.82ms 1 +0.0%
FlatList unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
FlatList rerender 8.80ms 8.50ms ±1.32ms 2 -5.6%
FlatList with-10-items 4.40ms 4.00ms ±0.52ms 1 +0.0%
FlatList with-100-items 5.00ms 4.50ms ±1.41ms 1 -10.0%
FlatList with-500-items 4.10ms 4.00ms ±0.57ms 1 +0.0%
FlatList with-1000-items 4.40ms 4.00ms ±1.26ms 1 +0.0%
FlatList horizontal 3.70ms 4.00ms ±0.67ms 1 -20.0%
FlatList with-separator 1.60ms 2.00ms ±0.52ms 1 +0.0%
FlatList with-header-footer 1.30ms 1.00ms ±0.48ms 1 -50.0%
FlatList with-empty-list 0.30ms 0.00ms ±0.48ms 1 -100.0%
FlatList with-get-item-layout 1.50ms 1.00ms ±1.27ms 1 +0.0%
FlatList inverted 1.30ms 1.00ms ±0.48ms 1 -33.3%
FlatList with-num-columns 2.50ms 3.00ms ±0.71ms 1 +0.0%

TouchableOpacity

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity mount 0.90ms 1.00ms ±0.32ms 1 +0.0%
TouchableOpacity unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TouchableOpacity rerender 0.80ms 1.00ms ±0.42ms 2 +0.0%
TouchableOpacity custom-active-opacity 0.40ms 0.00ms ±0.52ms 1 -100.0%
TouchableOpacity disabled 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity with-all-handlers 0.60ms 1.00ms ±0.52ms 1 +0.0%
TouchableOpacity with-hit-slop 0.90ms 1.00ms ±0.32ms 1 +0.0%
TouchableOpacity with-delay 0.80ms 1.00ms ±0.42ms 1 +0.0%
TouchableOpacity nested 1.20ms 1.00ms ±0.42ms 1 +0.0%
TouchableOpacity multiple-10 4.53ms 5.00ms ±0.99ms 1 -16.7%
TouchableOpacity multiple-50 23.47ms 23.00ms ±1.92ms 1 -20.7%
TouchableOpacity multiple-100 21.53ms 21.00ms ±7.96ms 1 -58.0%

ScrollView

Scenario Mean Median StdDev Renders vs Baseline
ScrollView mount 0.30ms 0.00ms ±0.48ms 1 +0.0%
ScrollView unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
ScrollView rerender 0.50ms 0.50ms ±0.53ms 2 -50.0%
ScrollView children-20 3.47ms 3.00ms ±1.30ms 1 -25.0%
ScrollView children-100 14.80ms 14.00ms ±1.57ms 1 -12.5%
ScrollView horizontal 3.60ms 3.00ms ±1.26ms 1 -25.0%
ScrollView sticky-headers 2.60ms 3.00ms ±0.70ms 1 +0.0%
ScrollView scroll-indicators 0.70ms 1.00ms ±0.48ms 1 +0.0%
ScrollView nested 1.60ms 1.50ms ±0.70ms 1 +50.0%
ScrollView content-container-style 0.70ms 1.00ms ±0.48ms 1 +0.0%
ScrollView children-500 20.07ms 18.00ms ±3.86ms 1 -5.3%

TouchableHighlight

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight mount 0.30ms 0.00ms ±0.48ms 1 -100.0%
TouchableHighlight unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TouchableHighlight rerender 0.70ms 1.00ms ±0.48ms 2 +0.0%
TouchableHighlight custom-underlay-color 0.30ms 0.00ms ±0.48ms 1 +0.0%
TouchableHighlight custom-active-opacity 0.20ms 0.00ms ±0.42ms 1 +0.0%
TouchableHighlight disabled 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight with-all-handlers 0.30ms 0.00ms ±0.48ms 1 +0.0%
TouchableHighlight with-hit-slop 0.30ms 0.00ms ±0.48ms 1 +0.0%
TouchableHighlight nested-touchables 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableHighlight multiple-touchables-10 2.80ms 2.00ms ±1.55ms 1 -33.3%
TouchableHighlight multiple-touchables-50 11.90ms 11.50ms ±1.85ms 1 -8.0%
TouchableHighlight multiple-touchables-100 22.20ms 21.50ms ±2.44ms 1 -4.4%

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.30ms 0.00ms ±0.48ms 1 +0.0%
Pressable disabled 0.20ms 0.00ms ±0.42ms 1 +0.0%
Pressable with-hit-slop 0.30ms 0.00ms ±0.48ms 1 +0.0%
Pressable nested 0.40ms 0.00ms ±0.52ms 1 -100.0%
Pressable multiple-10 2.67ms 3.00ms ±0.62ms 1 +0.0%
Pressable multiple-50 13.27ms 12.00ms ±1.83ms 1 -14.3%
Pressable multiple-100 15.20ms 10.00ms ±9.00ms 1 -16.7%

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.30ms 0.00ms ±0.48ms 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.30ms 0.00ms ±0.48ms 1 +0.0%
Modal with-callbacks 0.30ms 0.00ms ±0.48ms 1 +0.0%
Modal rich-content 1.50ms 1.50ms ±0.53ms 1 -25.0%
Modal with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%

Image

Scenario Mean Median StdDev Renders vs Baseline
Image mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Image rerender 0.20ms 0.00ms ±0.42ms 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.00ms 0.00ms ±0.00ms 1 +0.0%
Image with-blur-radius 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image multiple-10 1.07ms 1.00ms ±1.16ms 1 +0.0%
Image multiple-50 3.40ms 3.00ms ±0.83ms 1 +0.0%
Image multiple-100 7.73ms 7.00ms ±1.67ms 1 -12.5%

ActivityIndicator

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
ActivityIndicator rerender 0.00ms 0.00ms ±0.00ms 2 +0.0%
ActivityIndicator size-large 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator size-small 0.20ms 0.00ms ±0.42ms 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.10ms 0.00ms ±0.32ms 1 +0.0%
ActivityIndicator multiple-10 0.87ms 1.00ms ±0.35ms 1 +0.0%
ActivityIndicator multiple-50 3.53ms 3.00ms ±1.13ms 1 -25.0%
ActivityIndicator multiple-100 7.40ms 7.00ms ±1.40ms 1 +0.0%

Switch

Scenario Mean Median StdDev Renders vs Baseline
Switch mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Switch rerender 0.40ms 0.00ms ±0.52ms 2 -100.0%
Switch value-true 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch disabled 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch custom-colors 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch on-value-change 0.10ms 0.00ms ±0.32ms 1 +0.0%
Switch with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch multiple-10 1.40ms 1.00ms ±0.51ms 1 -50.0%
Switch multiple-50 8.07ms 7.00ms ±2.79ms 1 -22.2%
Switch multiple-100 15.93ms 15.00ms ±2.43ms 1 -6.3%

Button

Scenario Mean Median StdDev Renders vs Baseline
Button mount 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
Button rerender 0.90ms 1.00ms ±0.32ms 2 +0.0%
Button disabled 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button with-color 0.60ms 1.00ms ±0.52ms 1 +100.0%
Button with-accessibility 0.50ms 0.50ms ±0.53ms 1 -50.0%
Button multiple-10 5.07ms 5.00ms ±1.33ms 1 -16.7%
Button multiple-50 19.53ms 23.00ms ±7.98ms 1 -14.8%
Button multiple-100 14.40ms 13.00ms ±2.35ms 1 -31.6%

TextInput

Scenario Mean Median StdDev Renders vs Baseline
TextInput mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
TextInput unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TextInput rerender 0.10ms 0.00ms ±0.32ms 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.00ms 0.00ms ±0.00ms 1 +0.0%
TextInput multiple-100 6.60ms 6.00ms ±0.99ms 1 -14.3%

View

Scenario Mean Median StdDev Renders vs Baseline
View mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
View unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
View rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
View nested-50 3.20ms 3.00ms ±0.41ms 1 +0.0%
View nested-100 7.27ms 7.00ms ±1.44ms 1 +0.0%
View shadow 0.00ms 0.00ms ±0.00ms 1 +0.0%
View border-radius 0.20ms 0.00ms ±0.42ms 1 +0.0%
View nested-500 16.13ms 10.00ms ±12.60ms 1 +0.0%

Text

Scenario Mean Median StdDev Renders vs Baseline
Text mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
Text unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Text rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
Text long-1000 0.10ms 0.00ms ±0.32ms 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 7.67ms 7.00ms ±1.50ms 1 +0.0%

SectionList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
SectionList native mount 3.92ms 3.74ms ±0.59ms 1 -42.5%

FlatList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
FlatList native mount 3.96ms 3.71ms ±0.63ms 1 -59.8%

TouchableHighlight.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight native mount 1.28ms 1.24ms ±0.16ms 1 -40.8%

TouchableOpacity.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity native mount 1.72ms 1.48ms ±0.66ms 1 -52.8%

Pressable.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Pressable native mount 1.31ms 1.29ms ±0.10ms 1 -48.5%

ScrollView.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ScrollView native mount 2.82ms 2.70ms ±0.35ms 1 -33.3%

ActivityIndicator.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator native mount 1.25ms 1.08ms ±0.45ms 1 -56.6%

TextInput.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TextInput native mount 1.93ms 1.85ms ±0.28ms 1 -54.8%

Switch.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Switch native mount 0.98ms 0.95ms ±0.09ms 1 -45.0%

Button.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Button native mount 1.67ms 1.51ms ±0.31ms 1 -41.9%

Modal.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Modal native mount 0.84ms 0.79ms ±0.18ms 1 -35.3%

Image.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Image native mount 1.49ms 1.43ms ±0.28ms 1 -36.7%

View.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
View native mount 0.90ms 0.88ms ±0.08ms 1 -38.6%

Text.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Text native mount 1.17ms 1.07ms ±0.21ms 1 -38.6%

Anukrati Agrawal and others added 2 commits July 1, 2026 10:02
…mationBackend override

- Add 'no-unreachable': 0 to hermes-eslint .js override block in shared eslint-config
  (root-cause fix for false positives from ComponentDeclaration/HookDeclaration AST
  nodes; Flow performs its own unreachable analysis)
- Revert per-file eslint-disable edits on LogBox/FlatList override files (now handled
  by config; required because copy-type overrides must byte-match upstream)
- Delete orphaned vnext/src-win/jest/setup.js (manifest entry removed by integration;
  upstream @react-native/jest-preset now provides it)
- Add js/examples/AnimationBackend directoryCopy override to @react-native/tester manifest

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…change

The 0.85.0-nightly-20260224 integration causes more views to carry a
meaningful backgroundColor upstream, so RNW correctly materializes the
background SpriteVisual (empty 0-size child visual) for those views.
RNW's own color/view code (HostPlatformColor.h, CompositionViewComponentView.cpp)
is unchanged. Regenerated snapshots via 'yarn e2etest -u' output.

Also reflects a deterministic asset testUri path shift and text-background
visual restructuring surfaced by the same integration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
"Offset": "0, 0, 0",
"Size": "52, 19",
"Visual Type": "SpriteVisual",
"__Children": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure that the snapshot changes are the expected one.

@anuagragith anuagragith requested a review from acoates-ms July 2, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants