Why
@opennextjs/cloudflare cannot be updated past 1.15.1 while this project is on
Next 14. Dependabot proposes the bump every week and it fails at
npm ci every time, because the adapter declares a peer on Next.
Checked the whole range rather than guessing:
| adapter |
peer next |
| 1.15.1 (pinned here) |
^14.2.35 || ~15.0.7 … ^16.0.10 |
| 1.16.0 to 1.18.0 |
~15.0.8 and up, no 14 |
| 1.19.0 |
>=15.5.15 || >=16.2.3 |
| 1.20.2 |
>=15.5.21 <16 || >=16.2.11 |
1.15.1 is the last release that accepts Next 14 at all, so we are sitting on the
ceiling. Everything downstream of the adapter is frozen with it.
Scope
Migrate next from ^14.2.35 to 15, then take the adapter with it.
Next 15's breaking changes that actually touch this codebase:
cookies(), headers(), params and searchParams became async. This repo
reads them in route handlers and server components, so each call site needs
awaiting.
fetch is no longer cached by default. Anywhere that relied on implicit
caching needs an explicit cache option.
eslint-config-next and @types/react move with it.
Done when
next is on 15.x and @opennextjs/cloudflare is off the 1.15 pin
npm ci, tsc, eslint, prettier, vitest and next build all pass
- A preview deploy renders the feed, a case page and the export route
- The dependabot ignore added for the adapter (see the sibling issue) is removed
Notes for whoever picks this up
Do the Next bump and the adapter bump in one PR. Splitting them leaves the repo
in a state where npm ci fails, since the peer range is the thing being
satisfied.
Why
@opennextjs/cloudflarecannot be updated past1.15.1while this project is onNext 14. Dependabot proposes the bump every week and it fails at
npm cievery time, because the adapter declares a peer on Next.Checked the whole range rather than guessing:
next^14.2.35|| ~15.0.7 … ^16.0.10>=15.5.15 || >=16.2.3>=15.5.21 <16 || >=16.2.111.15.1 is the last release that accepts Next 14 at all, so we are sitting on the
ceiling. Everything downstream of the adapter is frozen with it.
Scope
Migrate
nextfrom^14.2.35to 15, then take the adapter with it.Next 15's breaking changes that actually touch this codebase:
cookies(),headers(),paramsandsearchParamsbecame async. This reporeads them in route handlers and server components, so each call site needs
awaiting.
fetchis no longer cached by default. Anywhere that relied on implicitcaching needs an explicit
cacheoption.eslint-config-nextand@types/reactmove with it.Done when
nextis on 15.x and@opennextjs/cloudflareis off the 1.15 pinnpm ci,tsc,eslint,prettier,vitestandnext buildall passNotes for whoever picks this up
Do the Next bump and the adapter bump in one PR. Splitting them leaves the repo
in a state where
npm cifails, since the peer range is the thing beingsatisfied.