Skip to content

Modernize toolchain (pnpm 11, TypeScript 6, ESLint 10, tsup 8, Vitest 4) - #152

Draft
JasonPaff wants to merge 2 commits into
ethanniser:mainfrom
JasonPaff:toolchain-modernization
Draft

JasonPaff wants to merge 2 commits into
ethanniser:mainfrom
JasonPaff:toolchain-modernization

Conversation

@JasonPaff

@JasonPaff JasonPaff commented Jul 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Brings the repo's tooling up to date after ~a year. Stacked on #151 — this branch includes those commits, so it should merge after Next 16 support lands (I'll rebase if needed).

Tool Before After
pnpm 7.33.7 11.9.0
TypeScript 5.1.3 6.0.3
tsup 7.1.0 8.5.1
Vitest 0.32.4 4.1.9
ESLint 8.x + .eslintrc.cjs 10.x + flat eslint.config.mjs
typescript-eslint 5.x plugin/parser 8.x unified package
CI Node 20 22 (pnpm 11 requires ≥22.13)

Notable details

  • prettier and turbo are now pinned ranges instead of "latest", so fresh installs can't silently change formatting or build behavior
  • pnpm 11 supply-chain features are configured in pnpm-workspace.yaml: dependency build scripts are allowlisted (esbuild, sharp, unrs-resolver)
  • tsup injects baseUrl into its dts build, which TS 6 rejects as deprecated (TS5101); ignoreDeprecations: "6.0" is scoped to the dts options in tsup.config.ts only — remove once tsup stops injecting it
  • Vitest 4 made vite a peer dependency; without an explicit root vite, pnpm satisfied it with the docs site's vite 4 and vitest failed to start — root now declares vite ^8
  • typescript-eslint 8 surfaced four minor issues, fixed behavior-neutrally: an unused catch binding in cli.ts, and unknown | unknown[] return types in utils.ts that collapse to unknown. Patch changeset included since these touch published source
  • The older example apps (custom-filename on Next 13.4, with-config on Next 15) intentionally keep their pinned TypeScript versions as backward-compat coverage
  • Root engines bumped to >=22.13; @types/node, @manypkg/cli, pkg-pr-new refreshed

Docs site (Astro 2) deliberately untouched — that's a separate effort.

Verification

  • Full turbo pipeline passes: build, lint, typecheck, test (144 tests)
  • All four example apps build (Next 13.4 / 15 / 16 pages / 16 app)
  • Both workflows use pnpm/action-setup@v4 which reads packageManager, so CI picks up pnpm 11 with no further changes

[✅] (if ready to be merged) Yes I have made a changeset

@vercel

vercel Bot commented Jul 4, 2026

Copy link
Copy Markdown

@JasonPaff is attempting to deploy a commit to the ethanniser Team on Vercel.

A member of the Team first needs to authorize it.

@pkg-pr-new

pkg-pr-new Bot commented Jul 4, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/next-typesafe-url@152

commit: 42197dd

This branch has not been deployed

No deployments
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.

1 participant