Skip to content

Releases: vercel/next.js

v15.0.1-canary.2

22 Oct 16:02
Compare
Choose a tag to compare
v15.0.1-canary.2 Pre-release
Pre-release

Core Changes

  • fix: handle terminal color in chrome console: #71581
  • [dynamicIO] Update prerender to use Fizz prerender: #71580
  • misc(next-upgrade): reuse process.cwd() value: #71558
  • [dynamicIO]: dev navigations should show disallowed dynamic errors: #71595
  • next-lint: Use ESLint v9 by default: #71371
  • fix: prevent router errors from being logged on the client: #71583

Misc Changes

  • Turbopack: Always use blob: URLs for assets in middleware: #71471
  • fix: metadata image route Windows path escaping: #71615
  • fix: third-parties package peer dependency: #71620
  • Fix module_resolution: "nodenext" with mjs or cjs: #71635

Credits

Huge thanks to @huozhi, @gnoff, @devjiwonchoi, @ztanner, @mischnic, and @lubieowoce for helping!

v15.0.1-canary.1

21 Oct 23:33
Compare
Choose a tag to compare
v15.0.1-canary.1 Pre-release
Pre-release

Core Changes

  • Avoid triggering memory leak false positive with makeHangingPromise: #71579
  • Upgrade React from 65a56d0e-20241020 to 69d4b800-20241021: #71568
  • avoid logging stacks for internal errors: #71575
  • Avoid server action endpoint function indirection: #71572

Misc Changes

  • docs(ppr): remove v14 mention for ppr: #71498
  • docs: fix upgrade codemod command: #71578

Credits

Huge thanks to @samcx, @ztanner, @gnoff, and @unstubbable for helping!

v15.0.1-canary.0

21 Oct 20:47
Compare
Choose a tag to compare
v15.0.1-canary.0 Pre-release
Pre-release

Core Changes

  • Reland "[dynamicIO] warn for disallowed dynamic in dev": #71567
  • next-upgrade: prompt (un)install only when there's a change: #71308
  • chore(next-codemod): remove @next/font from optional Next.js packages to install: #71563
  • [dynamicIO] Avoid triggering memory leak false positive with makeHangingPromise: #71576

Credits

Huge thanks to @gnoff and @devjiwonchoi for helping!

v15.0.0

21 Oct 18:51
Compare
Choose a tag to compare

Core Changes

  • refactor: next-flight-client-module-loader return conditions: #64348
  • Fix Server Action error logs for unhandled POST requests: #64315
  • Shared Revalidate Timings: #64370
  • Freeze loaded manifests: #64313
  • test: skip turbopack build test: #64356
  • Fix: css in next/dynamic component in edge runtime: #64382
  • Fix more Turbopack build tests: #64384
  • use pathToFileUrl to make esm import()s work with absolute windows paths: #64386
  • Improve rendering performance: #64408
  • Fix the method prop case in Server Actions transform: #64398
  • fix(next-lint): update option --report-unused-disable-directives to --report-unused-disable-directives-severity: #64405
  • Revert "Fix: css in next/dynamic component in edge runtime": #64442
  • default fetchCache to no-store when force-dynamic is set: #64145
  • router restore should take priority over pending actions: #64449
  • Fix client boundary inheritance for barrel optimization: #64467
  • improve turborepo caching: #64493
  • Update font data: #64481
  • BREAKING CHANGE: remove deprecated analyticsId from config, and the corresponding performance-relayer files and tests: #64199
  • feat: strip traceparent header from cachekey: #64499
  • Fix typo in dynamic-rendering.ts: #64365
  • fix(next): global not-found not working on multi-root layouts: #63053
  • chore(next): add keywords on package.json: #64173
  • Fix DynamicServerError not being thrown in fetch: #64511
  • fix: lib/helpers/install.ts to better support pnpm and properly respect root argument: #64418
  • fix(next): Metadata.openGraph values not resolving basic values when type is set: #63620
  • disable production chunking in dev: #64488
  • update turbopack: #64501
  • Turbopack: Allow client components to be imported in app routes: #64520
  • refactor: remove always truthy flag: #64522
  • Turbopack: don’t show long internal stack traces on build errors: #64427
  • next/script: Correctly apply async and defer props: #52939
  • chore(next/font): update @capsizecss/metrics package: #64528
  • feat: add information that revalidate interval is in seconds: #64229
  • Typo "Minifer" in config.ts: #64359
  • Enhance types for Node and Edge envionments: #64454
  • feat: Add a validation for postcss with useLightningcss: #64379
  • fix HMR for cases where chunking changes: #64367
  • perf: improve Pages Router server rendering performance: #64461
  • Fix cjs client components tree-shaking: #64558
  • fix refresh behavior for discarded actions: #64532
  • fix: filter out middleware requests in logging: #64549
  • chore: remove unused rust dependencies: #62176
  • fix(next-swc): correctly set wasm fallback for known target triples: #64567
  • memoize layout router context: #64575
  • fix incorrect refresh request when basePath is set: #64589
  • fix TypeError edge-case for parallel slots rendered multiple times: #64271
  • Fix ASL bundling for dynamic css: #64451
  • Revert "fix(next): global not-found not working on multi-root layouts": #64601
  • chore(test): run related E2E deploy tests on PRs: #63763
  • Improve top level await coverage: #64508
  • Upgrade typescript to 5.3: #64043
  • add pathname normalizer for actions: #64592
  • Fix experimental/testmode by removing console.log: #64670
  • Don't output .test.ts files in next/font: #63472
  • Fix reporting when performance.measure doesn't exist (Edge): #64669
  • Reduce amount of data passed to collectBuildTraces: #59665
  • fix(next-server): 'quiet' setting delegate for custom server: #64512
  • Revert "chore(test): run related E2E deploy tests on PRs": #64682
  • update turbopack: #64686
  • Fix: resolve mixed re-exports module as cjs: #64681
  • Revert "fix TypeError edge-case for parallel slots rendered multiple times": #64690
  • Fix typo: 'serverComponentsExtenalPackages' should be 'serverComponentsExternalPackages': #64705
  • prevent erroneous route interception during lazy fetch: #64692
  • Add @appsignal/nodejs to the external packages list: #64503
  • fix root page revalidation when redirecting in a server action: #64730
  • Clean-up fetch metrics tracking: #64746
  • [actions] Enforce body limit using Transform stream: #64694
  • Turbopack: Don’t show stack traces for internal modules: #64228
  • Reapply "chore(test): run related E2E deploy tests on PRs" (#64682): #64712
  • fix(fetch-cache): fix typo: #64786
  • fix: remove traceparent from cachekey should not remove traceparent from original object: #64727
  • fix interception route rewrite regex not supporting hyphenated segments: #64805
  • Disable ncc cache instead of cache cleaning: #64804
  • Move next-swc Turborepo config to packages/next-swc: #64789
  • build: Update swc_core to v0.90.33: #64553
  • Enable loading source maps for Next Server and React: #64527
  • fix: mixing namespace import and named import client components: #64809
  • fext(next): extend next.config for mdxRs support options: #64801
  • skip test_e2e_deploy_related when triggered from a fork: #64893
  • fix(fetch-cache): fix additional typo, add type & data validation: #64799
  • feat(next-core): support parsing matcher config object: #64678
  • Fix mixed exports in server component with barrel optimization: #64894
  • fix: improve tsconfig extends checks: #61413
  • Fix next/image usage in mdx: #64875
  • fix dynamic route interception not working when deployed with middleware: #64923
  • feat(turbopack): Handle fragments in requests: #64232
  • feat(turbopack): Check for duplicate parallel routes: #64181
  • Speed up createNext test suite isolation: #64909
  • fix(rewrites): support external rewrite destination: #64943
  • Ensure edge prerender-manifest is minimal: #64946
  • remove special-cased prefetch kind in dev mode: #64941
  • feat: support import attributes: #59480
  • NextJS App router: add isolated-vm to server-external-packages.json: #64749
  • Add next experimental-test command: #64352
  • Revert "feat: support import attributes": #65001
  • NODE_OPTIONS updates: #65006
  • Update React from 14898b6a9 to c3048aab4: #64798
  • initialize ALS with cookies in middleware: #65008
  • feat(next/image)!: remove squoosh in favor of sharp as optional dependency: #63321
  • fix: Workaround acorn bug/version issue by using SWC: #65021
  • build: Update @swc/core to v1.5.0: #65022
  • Ensure escaped string are parsed in NODE_OPTIONS: #65046
  • chore(fetch-cache): remove zod from fetch cache: #65079
  • support breadcrumb style catch-all parallel routes: #65063
  • Improve initial setup with new App Router TypeScript project: #64826
  • Add experimental trace file field: #65071
  • Fix playwright config merging for webServer property: #65090
  • chore(logging): Disable info logging of critters in production: #62776
  • [unstable_cache] Don't track dynamic fetches in an unstable_cache callback: #65010
  • fix(page-static-info): refine warning message to emit once: #65091
  • update redirect handling on forwarded action requests: #65097
  • Tracing: allow opt-in flag to send build traces to url: #65019
  • Turbopack: Allow client components from foreign code in app routes: #64751
  • fix node.js module warning in middleware: #65112
  • Fix: strip _rsc query for client navigation rsc request: #65084
  • fix unhandled runtime error when notFound() triggered in generateMetadata w/ parallel routes: #65102
  • Use vercel deployment url for metadataBase fallbacks: #65089
  • Fix next/dynamic with babel and src dir: #65177
  • update turbopack: #65191
  • Fix crypto import in edge runtime with Turbopack: #65171
  • Resolve global next Webpack alias last: #65123
  • Add oslo, @node-rs/argon2, and @node-rs/bcrypt to external packages: #65204
  • [trace] Reduce the size of .next/trace files: #65101
  • Remove extra suspense boundary for default next/dynamic: #64716
  • Only apply metadata manifest credentials for preview deployment: #64940
  • fix(next): add missing browser.major type: #65185
  • Turbopack: rename source map prefix: #64965
  • Use POST for invokeIpcMethod: #65238
  • fix redirect to url with semicolon: #65165
  • Provide non-dynamic segments to catch-all parallel routes: #65233
  • Fix an issue parsing catchall params: #65277
  • Enable preloading entries by default: #65289
  • Trace uploader: add worker spans to allowed events: #65255
  • Update font data: #65301
  • Update revalidateTag to batch tags in one request: #65296
  • Revert "Remove extra suspense boundary for default next/dynamic": #65309
  • Emit polyfill-nomodule.js into the build manifest polyfillFiles: #65223
  • Remove broken #[turbo_tasks::value(transparent)] attributes: #65336
  • Delete dead concatenate_output_assets function: #65337
  • Upgrade Turbopack: #65320
  • Pages router: Use attribute-based head children reconciler when strictNextHead is enabled: #65408
  • Revert "Implement Turbopack trace server bindings": #65419
  • use correct not-found component when triggered from a parallel route: #65343
  • Implement Turbopack trace server bindings: #65410
  • fix(next/image): bypass icns images: #65414
  • [PPR] Enable incremental adoption: #63847
  • fix: replace deprecated/removed functions in eslint-plugin-next: #64251
  • docs: update revalidatePath & fix cache debug logic: #65365
  • fix(next-core): mark turbopack embed fs to be internals: #65420
  • fix(next/image): add missing svg test and refactor missing types: #65345
  • build(edge): extract buildId into environment: #64521
  • Revert "build(edge): extract buildId into environment": #65425
  • fix(next/image): set max url length to 3072: #65457
  • Support React 19 in App and Pages router: #65058
  • Promote and rename server bundling options serverComponentsExternalPackages and bundlePagesExternals: #65421
  • add experimental flag to allow forcing NODE_ENV=development in builds: #65463
  • Support esm externals in app router: #65041
  • fix: lazy load sharp: #65484
  • make sure children is first in loader tree to fix head css bug on client navigation: #65279
  • Re-land build(edge): extract buildId into environment: #65426
  • improve versioned content m...
Read more

v15.0.0-canary.205

21 Oct 18:04
Compare
Choose a tag to compare
v15.0.0-canary.205 Pre-release
Pre-release

Core Changes

  • Revert "[dynamicIO] warn for disallowed dynamic in dev": #71566

Credits

Huge thanks to @ztanner for helping!

v15.0.0-canary.204

21 Oct 17:32
Compare
Choose a tag to compare
v15.0.0-canary.204 Pre-release
Pre-release

Core Changes

  • chore(next-codemod): use "confirm" for consistent prompt: #71551

Misc Changes

  • chore(docs): add docs for input image formats with next/image: #71565

Credits

Huge thanks to @devjiwonchoi and @styfle for helping!

v15.0.0-canary.203

21 Oct 16:19
Compare
Choose a tag to compare
v15.0.0-canary.203 Pre-release
Pre-release

Core Changes

  • [dynamicIO] warn for disallowed dynamic in dev: #71526
  • Format generated cacheLife() types as overloads with each value: #71544
  • Ensure receiveExpiredTags is called per-request: #71543
  • feat: dedupe consecutive captured console errors: #71483
  • [Turbopack] add more tracing to dirty flagging: #71482
  • improve typescript autocomplete for cacheLife: #71400
  • Ensure workers are cleaned up always: #71564

Misc Changes

  • DX improvements for "use cache" functions: #71518
  • chore(docs): remove recommendation about using priority over loading=eager with next/image: #71562

Credits

Huge thanks to @gnoff, @sebmarkbage, @ijjk, @huozhi, @sokra, @unstubbable, @lubieowoce, and @styfle for helping!

v15.0.0-canary.202

20 Oct 23:32
Compare
Choose a tag to compare
v15.0.0-canary.202 Pre-release
Pre-release

Core Changes

  • Fix cache handlers in serialized config: #71541

Misc Changes

  • docs: fix typo in Link component example: #71540
  • test: fix dynamic io error deployment test: #71533

Credits

Huge thanks to @cwj1234567, @huozhi, and @ijjk for helping!

v15.0.0-canary.201

20 Oct 22:30
Compare
Choose a tag to compare
v15.0.0-canary.201 Pre-release
Pre-release

Core Changes

  • Ensure custom cache handlers are traced: #71521
  • Update React to bf7e210c: #71524
  • Update React (again): #71528
  • Remove double decoding of encrypted closures : #71527
  • codemod: fix props types modify for type alias: #71537
  • next-upgrade: Stop prompting for React 19 upgrade on pure App Router apps: #71486
  • Ensure only one tags manifest is leveraged across handlers: #71522

Misc Changes

  • test: de-flake rsc-cookies e2e tests: #71319
  • docs: add TypeScript code blocks in ISR page: #71492

Credits

Huge thanks to @serhalp, @ijjk, @Juneezee, @sebmarkbage, @huozhi, and @eps1lon for helping!

v15.0.0-canary.200

19 Oct 23:32
Compare
Choose a tag to compare
v15.0.0-canary.200 Pre-release
Pre-release

Core Changes

  • [dynamicIO] prospectively render SSR phase if needed: #71506
  • [dynamicIO] show dev & build warnings when using incompatible segment configs: #71500
  • Check tag staleness against the timestamp of the entry: #71520
  • codemod: modify props types when arg is prop: #71516
  • sync access warnings for Request APIs should include a stack: #71519

Misc Changes

  • Transform "use cache" functions exported via export default expression: #71512
  • Allow "use cache" functions in server action module (client layer): #71511

Credits

Huge thanks to @unstubbable, @gnoff, @ztanner, @sebmarkbage, and @huozhi for helping!