Skip to content

[Phase 2] Roll out Next 16 + findable-ui major upgrade across all consumers #952

@frano-m

Description

@frano-m

Parent: #884 (Next.js 16 Upgrade Plan)

Context

Phase 1 of the Next 16 upgrade (#884) lands in findable-ui as a major release: peer dep pinned to next ^16, next-mdx-remote ^6, react-hooks v7 + ESLint v16, plus several breaking API changes (e.g. removal of useResetableState, removal of superseded from FilterTag / CategoryTag via #951).

This ticket tracks rolling that release out to every downstream consumer.

Consumers

Suggested upgrade order (smallest → largest; hca-atlas-tracker last because it pulls in the next-auth v4 → Auth.js v5 question):

  1. ucsc-brain-explorer
  2. hprc-data-explorer
  3. ncpi-dataset-catalog
  4. data-portal
  5. data-biosphere
  6. brc-analytics
  7. anvil-portal
  8. hca-atlas-tracker

Each gets a single PR in its own repo bundling the steps below.

Per-consumer checklist

Reference: .claude/plans/884-next-16/next-16-upgrade-plan.md §10 Phase 2 and the README "Consumer setup for Next.js 16" + "Migrating from Next.js 15 to 16" sections.

  • Bump dependencies:
    • next^16
    • eslint-config-next^16
    • @next/eslint-plugin-next^16
    • next-mdx-remote^6 (non-optional peer dep of findable-ui)
    • @databiosphere/findable-ui → the new major release
  • Install MUI's Emotion helpers (new): npm install @mui/material-nextjs @emotion/server
  • Wire pages/_app.tsx: wrap in AppCacheProvider from @mui/material-nextjs/v16-pagesRouter
  • Wire pages/_document.tsx: add DocumentHeadTags + documentGetInitialProps
  • Pin builds to webpack: change next dev / next build scripts to next dev --webpack / next build --webpack (tracking vercel/next.js#82607)
  • If the consumer calls next-mdx-remote/serialize directly (not via findable-ui's buildStaticProps), pass blockJS: false
  • Migrate .eslintrc.jsoneslint.config.mjs (flat config). findable-ui's own eslint.config.mjs is the reference implementation
  • Bump Node baseline (.nvmrc, CI workflows, Dockerfile FROM node:...) to whatever findable-ui's package.json engines.node is at the time of the release
  • Run npx @next/codemod@canary upgrade latest as a safety net for any pattern not explicitly handled above
  • Audit for findable-ui API removals (e.g. useResetableState, superseded on FilterTag / CategoryTag) and update call sites
  • Verify next build --webpack succeeds
  • Run unit tests + Playwright e2e
  • Deploy to staging and smoke test

Special concerns

  • hca-atlas-tracker still on next-auth ^4. Either confirm v4 works under Next 16 or migrate to Auth.js v5 as part of this upgrade. Worth verifying upstream before scheduling the PR.

Acceptance

  • All 8 consumers running next ^16 and the new findable-ui major, with their CI green and a staging smoke-test pass logged.
  • Any findable-ui-side blockers surfaced during the rollout are filed back here as follow-ups.

Notes

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions