Skip to content

Conversation

@odinr
Copy link
Collaborator

@odinr odinr commented Dec 4, 2025

Why

Why is this change needed?
React 19 has been released with new features and improvements. This PR upgrades all React-related packages to React 19 and removes support for React versions lower than 18 to simplify maintenance and align with React's support lifecycle.

What is the current behavior?

  • Packages support React 16, 17, 18, and 19
  • Dev dependencies use React 18.2.0
  • Some packages use deprecated JSX namespace patterns

What is the new behavior?

  • All React dependencies upgraded to React 19.2.1
  • @types/react upgraded to 19.2.7
  • Peer dependencies now require React 18 or 19 only (^18.0.0 || ^19.0.0)
  • JSX namespace issues fixed for React 19 compatibility
  • React 16 and 17 are no longer supported

Does this PR introduce a breaking change?
Yes, this is a breaking change. React 16 and 17 are no longer supported. Users must upgrade to React 18 or 19 before upgrading these packages.

Migration:

  • Update your React version to 18.0.0 or higher before upgrading these packages
  • If using React 16 or 17, upgrade to React 18 or 19 first

Additional context

  • All React 19 codemods have been run and verified - no deprecated patterns found
  • Build passes successfully
  • All packages updated consistently across the monorepo
  • Changeset created for version management

Checklist

  • Confirm completion of the self-review checklist
  • Confirm changes to target branch validation
    • Included files validated
    • No new linting warnings
    • Not a duplicate PR
  • Confirm adherence to code of conduct

- Upgrade all React dependencies to 19.2.1
- Update @types/react to 19.2.7
- Update peer dependencies to support React 18 and 19 only (^18.0.0 || ^19.0.0)
- Remove support for React 16 and 17
- Fix JSX namespace issues for React 19 compatibility
- Update all React-related packages across the monorepo

BREAKING CHANGE: React 16 and 17 are no longer supported. Users must upgrade to React 18 or 19 before upgrading these packages.
@changeset-bot
Copy link

changeset-bot bot commented Dec 4, 2025

🦋 Changeset detected

Latest commit: 5dfda2e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 41 packages
Name Type
@equinor/fusion-framework-react-app Major
@equinor/fusion-framework-react Major
@equinor/fusion-framework-react-router Major
@equinor/fusion-framework-react-module Major
@equinor/fusion-framework-react-module-http Major
@equinor/fusion-framework-react-module-context Major
@equinor/fusion-framework-react-module-event Major
@equinor/fusion-framework-react-module-bookmark Major
@equinor/fusion-framework-react-module-signalr Major
@equinor/fusion-framework-react-components-bookmark Major
@equinor/fusion-framework-react-components-people-provider Major
@equinor/fusion-observable Major
@equinor/fusion-query Major
@equinor/fusion-framework-dev-portal Major
@equinor/fusion-framework-cookbook-app-react-ag-grid Patch
@equinor/fusion-framework-cookbook-app-react-bookmark-advanced Patch
@equinor/fusion-framework-cookbook-app-react-charts Patch
@equinor/fusion-framework-cookbook-app-react-context-custom-error Patch
@equinor/fusion-framework-cookbook-app-react-context Patch
@equinor/fusion-framework-cookbook-app-react-feature-flag Patch
@equinor/fusion-framework-cookbook-app-react-people Patch
poc-portal Patch
@equinor/fusion-framework-cli Patch
@equinor/fusion-framework-react-ag-grid Major
@equinor/fusion-framework-module-app Patch
@equinor/fusion-framework-module-bookmark Patch
@equinor/fusion-framework-module-feature-flag Patch
@equinor/fusion-framework-module-navigation Major
@equinor/fusion-framework-module-telemetry Major
@equinor/fusion-framework-module-widget Patch
@equinor/fusion-framework-module-context Patch
@equinor/fusion-framework-module-service-discovery Patch
@equinor/fusion-framework-app Patch
@equinor/fusion-framework Patch
@equinor/fusion-framework-module-msal Major
@equinor/fusion-framework-vite-plugin-spa Patch
@equinor/fusion-framework-widget Patch
@equinor/fusion-framework-module-signalr Major
portal Patch
@equinor/fusion-framework-module-http Patch
@equinor/fusion-framework-dev-server Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@odinr odinr marked this pull request as ready for review December 4, 2025 10:20
@odinr odinr requested a review from a team as a code owner December 4, 2025 10:20
odinr added 2 commits December 4, 2025 11:28
- Declare a new intrinsic element 'fwc-person-provider' in the JSX namespace to enhance type safety and integration with React components.
- This change facilitates the use of the custom element within React applications, ensuring proper type definitions for attributes and props.

Signed-off-by: Odin Thomas Rochmann <[email protected]>
- Added additional assertions to the useObservableSelector test cases to verify observable state updates.
- Ensured that the expected values are correctly asserted after observable changes, improving test reliability and clarity.

Signed-off-by: Odin Thomas Rochmann <[email protected]>
@github-actions
Copy link
Contributor

github-actions bot commented Dec 4, 2025

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 5.19% 56894 / 1095304
🔵 Statements 5.19% 56894 / 1095304
🔵 Functions 47.41% 670 / 1413
🔵 Branches 65.51% 1265 / 1931
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
fusion-ai.config.ts 0% 0% 0% 0% 1-51
packages/dev-portal/src/EquinorLoader.tsx 0% 100% 100% 0% 2-24
packages/dev-portal/src/ContextSelector/ContextSelector.tsx 0% 0% 0% 0% 1-72
packages/react/app/src/apploader/Apploader.tsx 0% 0% 0% 0% 1-47
packages/react/components/people-resolver/src/PeopleResolver.tsx 0% 0% 0% 0% 1-43
Generated in workflow #11371 for commit 5dfda2e by the Vitest Coverage Report Action

@odinr odinr merged commit bd0a96b into react-19 Dec 4, 2025
5 checks passed
@odinr odinr deleted the upgrade-react-19 branch December 4, 2025 11:10
odinr added a commit that referenced this pull request Dec 4, 2025
* feat: upgrade to React 19 and remove support for React < 18

- Upgrade all React dependencies to 19.2.1
- Update @types/react to 19.2.7
- Update peer dependencies to support React 18 and 19 only (^18.0.0 || ^19.0.0)
- Remove support for React 16 and 17
- Fix JSX namespace issues for React 19 compatibility
- Update all React-related packages across the monorepo

BREAKING CHANGE: React 16 and 17 are no longer supported. Users must upgrade to React 18 or 19 before upgrading these packages.

* feat: extend JSX namespace for custom 'fwc-person-provider' element

- Declare a new intrinsic element 'fwc-person-provider' in the JSX namespace to enhance type safety and integration with React components.
- This change facilitates the use of the custom element within React applications, ensuring proper type definitions for attributes and props.

Signed-off-by: Odin Thomas Rochmann <[email protected]>

* test: enhance useObservableSelector tests for improved coverage

- Added additional assertions to the useObservableSelector test cases to verify observable state updates.
- Ensured that the expected values are correctly asserted after observable changes, improving test reliability and clarity.

Signed-off-by: Odin Thomas Rochmann <[email protected]>

---------

Signed-off-by: Odin Thomas Rochmann <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants