atomantic / atomantic/PortOS

React 19.3.0 bump is blocked by @react-three/fiber's <19.3 peer cap

Open
#7,370 1 comment 0 reactions 0 assignees View on GitHub
blocked dependencies effort:low model:light plan planner:opus-5
Dominant language
JavaScript
Stars
38
Forks
31
Avg merge
22m
Merged PRs (30d)
988

Description

## Problem

Dependabot has opened #7292 (`react` 19.2.8 → 19.3.0) and #7290 (`react-dom`
19.2.8 → 19.3.0). Both fail CI at `npm ci`, before any test runs:

```
Conflicting peer dependency: react@19.2.8
peer react@">=19 <19.3" from @react-three/fiber@9.7.0
```

`@react-three/fiber@9.7.0` is the latest stable release and caps React at
`>=19 <19.3` for both `react` and `react-dom`. That cap reflects real coupling,
not caution: r3f ships its own reconciler and depends on `scheduler@^0.27.0`,
while React 19.3.0 ships `scheduler@0.28.0`. Installing with
`--legacy-peer-deps` would put two scheduler copies under one renderer, so
forcing the resolution is not an acceptable workaround.

`@react-three/drei@10.7.8` only requires `@react-three/fiber@^9.0.0`, so it adds
no second constraint — r3f is the sole blocker.

Note for whoever picks this up: the first CI runs on both PRs showed every job
`cancelled` rather than `failed`. That is not a separate problem —
`scripts/cancel-current-ci-run.js` cancels the whole run on the first job
failure, so the same `ERESOLVE` produced both symptoms. Re-running the workflow
surfaces the real error.

## Fix

Wait for an `@react-three/fiber` release that widens its React peer range past
19.3, then:

1. Bump `@react-three/fiber` (and `@react-three/drei` if its own peer moves) in
`client/package.json`.
2. Ask Dependabot to rebase #7292 and #7290 (`@dependabot rebase`), or close
them and let it re-open against the new floor.
3. Merge `react` first, then `react-dom` — `react-dom@19.3.0` peers on
`react@^19.3.0`, so the reverse order re-introduces the same `ERESOLVE`.
4. Run the client 3D suites, which are the surface a reconciler/scheduler
mismatch would break.

Upstream tracking: https://github.com/pmndrs/react-three-fiber (peer range lives
in that package's `package.json`; `9.7.0` is current `latest`, with only
`10.0.0-canary.*` / `10.0.0-alpha.*` published beyond it).

Do not merge either PR until the peer range allows it — the install cannot
succeed.

Contributor guide

Open the contributing guide

Research direction

Start with client/package.json and inspect the React, react-dom, @react-three/fiber, and @react-three/drei versions and peer ranges. Confirm the upstream @react-three/fiber release widens its React range, then rebase or reopen Dependabot PRs #7292 and #7290 in the stated order. Run npm ci and the client 3D suites; done means installation succeeds and those suites pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, three.js
Domain
frontend, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.