Skip to content

Releases: vercel/next.js

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!

v15.0.0-canary.199

19 Oct 15:31
Compare
Choose a tag to compare
v15.0.0-canary.199 Pre-release
Pre-release

Core Changes

  • Add default cache handlers and update tags manifest handling: #71455
  • fix: set aria role on static indicator toast: #71420
  • Pass cacheLifeProfiles during static path generation: #71502
  • Follow up to default cache handler: #71504
  • [dio] Prospective Fallback Render: #71450
  • Add handling for custom cache handlers: #71505
  • [dynamicIO] Move disallowed dynamic tracking to it's own object: #71499

Misc Changes

  • Differentiate error messages in server function transforms: #71491
  • Update flakey edge log test: #71501
  • Updates workOS auth link for the Next.js : #71335
  • docs: Move Static Rendering section into Behavior section: #71353
  • Fix handling of local functions in "use cache" modules: #71497

Credits

Huge thanks to @unstubbable, @ijjk, @mayur9210, @bangseongbeom, @makepanic, @sebmarkbage, @wyattjoh, and @gnoff for helping!

v15.0.0-canary.198

18 Oct 23:33
Compare
Choose a tag to compare
v15.0.0-canary.198 Pre-release
Pre-release

Core Changes

  • enhance: polish hydration error layout to separate error link: #71456
  • Let cache body execute with hanging inputs: #71452
  • [Turbopack] Perf improvement new backend aggregation: #71356
  • Upgrade React from 77b637d6-20241016 to bf7e210c-20241017: #71436
  • next-upgrade: Consistent version comparison to codemod decisions: #71457
  • feat: handle server extra attribute hydration error: #71462
  • fix: set overlay click outside touchstart handler as passive: #71449
  • codemod: only turn function to async when no hooks: #71392
  • Turbopack: rscModuleMapping without extra chunks: #71326
  • Turbopack: Make UnableToExternalize a warning: #71477
  • Turbopack: Improve externals plugin: #71375
  • [dynamicIO] refine error messaging for sync API access: #71467

Misc Changes

  • [dynamicIO] clarify date docs: #71459
  • [Turbopack] Perf improvements new backend: #71249
  • [Turbopack] fix unresolvable typo: #71414
  • [Turbopack] refactor to allow different key value stores: #71430
  • [Turbopack] make snapshot organization more efficient: #71466
  • test: fix 18.3 hydration test: #71472
  • [Turbopack] update total size when reached: #71354
  • [Turbopack] add a startup cache which caches the first 100MB of accessed data: #71431
  • [Turbopack] bugfixes persistent caching: #71481
  • fix: add test helper back: #71495
  • docs(route-groups): add an example about opting loading skeletons to a specific route: #71328
  • Assign proper function names to server actions: #71478

Credits

Huge thanks to @huozhi, @sebmarkbage, @gnoff, @sokra, @eps1lon, @mischnic, @wyattjoh, @samcx, and @unstubbable for helping!

v15.0.0-canary.197

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

Core Changes

  • Upgrade React from cd22717c-20241013 to 77b637d6-20241016: #71391
  • next-upgrade: Stop adding empty overrides: #71380
  • next-upgrade: Fix React 19 upgrade not being prompted: #71378
  • Ensure next-dev-server usages can be found: #71423
  • [dynamicIO] Do not warn on arbitrary param access in browser: #71437
  • capture console.error into error overlay: #71424
  • next-upgrade: Only run React 19 codemods when we upgrade to React 19: #71389

Example Changes

  • chore(examples): updated the example of with-goober to utlize the App router: #71349
  • chore(examples): updated the example of with-styled-jsx to utilize the App Route: #71290

Misc Changes

  • [Turbopack] bugfixes in persistent caching: #71355
  • Adjust transforms for cached functions imported from client components: #71401
  • refactor(turbopack): Simplify EcmascriptModulePartAsset::ident: #71337
  • [Turbopack] lmdb Backing Storage performance improvments: #71250
  • Turbopack: Support resolving to index.js with fully_specified: #71367
  • perf(turbopack): Optimize last_side_effects of tree shaking: #71418
  • Unflake "cancels stream making progress" test: #71422
  • Increase timeout for deploy tests from 120 (default) to 240 seconds: #71428
  • Fix flaky app action test, take 2: #71427
  • chore(github): update schema from url β†’ html_url: #71429
  • Skip unnecessary work in server action transforms for client modules: #71417
  • Fix typo in version number: #70680
  • test: fix flaky react 18 tests: #71403
  • rename: .md to .mdx in errors directory: #71240

Credits

Huge thanks to @sokra, @unstubbable, @kdy1, @mischnic, @eps1lon, @samcx, @Manoj-M-S, @whatisagi, @Sam-Phillemon9493, @huozhi, @gnoff, and @lumirlumir for helping!