Releases: vercel/next.js
v15.0.0-canary.182
Core Changes
- next-upgrade: Ensure correct React and types version are resolved when upgrading to Next.js rc: #70981
- codemod: leave comment on spread props: #70979
- docs: add
app-dir-runtime-config-experimental-edge
codemod: #71008 - docs: add
next-dynamic-access-named-export
codemod: #71012 - chore(next-upgrade): use process exit instead of throwing: #71018
- chore(next-upgrade): improve revision usage messages: #71019
- Revert "chore(next-upgrade): use process exit instead of throwing (#7β¦: #71021
- Disable server action transform in pages router: #71028
- chore(next-codemod): view current Next.js version, skip if already on or higher: #71034
- codemod: comment on reexport: #71017
- move workUnitAsyncStorage back into "client/components": #71046
- codemod: type cast async api calls in non entry file exports: #71040
- codemod upgrade: show link of migration guide after upgrade: #71036
- Defensively install patches: #71043
- fix(next/turbopack): Always preserve import attributes with esm modules: #71051
- codemod: fix type only react import: #71053
- types-plugin: enahnce type checking on interface params: #71059
Misc Changes
- docs: fix URL for error message: #71003
- Turbopack:
find client references
layout segment optimization: #70792 - Skip deployments for Dynamic IO error tests: #71024
- Skip
Math.random
test with route handler and'use cache'
: #71025 - Remove windows i686 next-swc build target: #71041
- fix(docs): correct MDN URL for decoding attribute of next/image component: #71029
- Add ts-node dependency for jest.config.ts parsing: #70971
- chore: replace the all
path-name
withpathname
for consistency: #71000
Credits
Huge thanks to @eps1lon, @devjiwonchoi, @mischnic, @huozhi, @unstubbable, @ijjk, @DeepakBalaraman, @karlhorky, @lubieowoce, @Marukome0743, @gnoff, and @bgw for helping!
v15.0.0-canary.181
Core Changes
- ensure export workers that are killed bubble up to parent process: #70997
- Use perf_hooks for current time in incremental cache: #70925
- fix(next-upgrade): prompts has no
default
option, isinitial
: #70928 - [dynamicio] Instrument Date to be dynamic when accessing current time: #70916
- [dynamicIO] Instrument crypto random APIs to be dynamic: #70939
- refactor(next-upgrade): remove monorepo detect, add to error message when fail to get next version: #70929
- codemod: skip transform when its properly used: #70936
- refactor(next-upgrade): ensures prompts are cancelled when user exits: #70930
cache: "default"
shouldn't get cached in route handlers: #70937- refactor(next-upgrade): tailor turbopack suggestion message: #70931
- Run after() callbacks in the same context as the outer function: #70810
- codemod: fix missing route transform: #70959
- replace all 'athName' with 'athname' for consistency: #70690
- refactor: improve transformer selection prompt: #70932
- [Turbopack] add persistentCaching config option: #70904
- codemod: skip promise.all on params: #70972
- codemod: unify comments prefix for dynamic api: #70970
- feat(next-codemod): add
app-dir-runtime-config-experimental-edge
: #70968 - Port #70933 "fix: remove unnecessary line break in prompt": #70978
- next-upgrade: Ensure path-like revisions are rejected: #70980
- Refactor prerender workUnitStores: #70986
Misc Changes
- Fix i686 next-swc build due to int overflow: #70995
- refactor(turbopack/next-{api,core}): Remove remaining uses of vc generics in non-test code: #70816
- chore(turbo-tasks): Delete vc generics support: #70817
- [Turbopack] add persisting to the new backend: #69668
- chore(turbo-tasks): Remove unused primitive helper types: #70890
- chore(turbo-tasks-backend): Disable flaky performance test by default: #70974
Credits
Huge thanks to @gnoff, @devjiwonchoi, @bgw, @huozhi, @sebmarkbage, @mjulstein, @sokra, @eps1lon, @ztanner and @ijjk for helping!
v14.2.15
Note
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- support breadcrumb style catch-all parallel routes #65063
- Provide non-dynamic segments to catch-all parallel routes #65233
- Fix client reference access causing metadata missing #70732
- feat(next/image): add support for decoding prop #70298
- feat(next/image): add images.localPatterns config #70529
- fix(next/image): handle undefined images.localPatterns config in images-manifest.json
- fix: Do not omit alt on getImgProps return type, ImgProps #70608
- [i18n] Routing fix #70761
Credits
Huge thanks to @ztanner, @agadzik, @huozhi, @styfle, @icyJoseph and @wyattjoh for helping!
v15.0.0-canary.179
Core Changes
- Create spans for
createServerReference
andregisterServerReference
: #70564 - Do not invoke server actions twice when
dynamicIO
is enabled: #70784 - feat: decouple cookies and action state from redirect error: #70769
- refactor: added more strict app segment config validation: #70480
- Fix recently re-introduced unique "key" prop warnings: #70807
- Run Middleware within WorkStore: #70808
Example Changes
- chore(examples): updated the example of with-styled-components: #70796
Misc Changes
- chore(turbopack-browser): Delete unreferenced runtime.rs file: #70773
Credits
Huge thanks to @unstubbable, @bgw, @wyattjoh, @Sam-Phillemon9493, and @sebmarkbage for helping!
v15.0.0-canary.178
Core Changes
- Run unstable_cache inside a CacheStore context: #70740
- Expand PrerenderStore to include the legacy mode static generation too: #70741
- Reapply "Dedupe sync access warning on the Server by callsite" (#70672): #70738
- Add RSC module ID mapping to the Client Manifest: #70524
- [i18n] Routing fix: #70761
- fix broken lock mechanism: #70764
- client router cache should still be cleared if server action revalidates + redirects: #70715
- ensure handleUnlock is called even for non-cached responses: #70766
- [dynamicIO] Error when dynamic behavior is outside of a Suspense boundary: #70734
- [Turbopack] add new backend: #69667
- Fix client reference access causing metadata missing: #70732
- Move reactLoadableManifest/assetPrefix to workStore: #70768
- Unwrap
registerServerReference
function: #70563 - Error if reading Request Store inside Prerender: #70775
- codemod: handle the async api type: #70785
Misc Changes
- support running React 18 tests on PRs with a label: #70737
- [Turbopack] AutoMap, AutoSet and CountHashSet use FxHasher by default: #70691
- Turbopack: Respect ignore comments for Worker: #70749
- feat(turbo-tasks): Add ResolvedVc versions of casting functions: #70575
- refactor(turbo-tasks-fs): Use ResolvedVc instead of Vc in structs: #70576
- docs(turbo-tasks): Rewrite the
turbo_tasks::value
documentation: #70743 - auto import with
create::
prefix: #70774 - fix(turbopack): Remove wrong check for
__turbopack_refresh__
: #70696 - fix(turbopack): Split ModulePart into eval vs non-eval: #70782
- Turbopack: next/dynamic layout segment optimization: #70708
Credits
Huge thanks to @sebmarkbage, @ztanner, @sokra, @mischnic, @eps1lon, @shuding, @bgw, @wyattjoh, @gnoff, @huozhi, @unstubbable, and @kdy1 for helping!
v15.0.0-canary.177
Core Changes
- Separate the rendering of viewport from metadata: #70685
- codemod: fix merging react imports logic: #70706
- Rename StaticGenerationStore to WorkStore: #70721
- fix: Do not omit alt on getImgProps return type, ImgProps: #70608
- fix(next/image): handle undefined
images.localPatterns
config inimages-manifest.json
: #70730
Credits
Huge thanks to @gnoff, @huozhi, @sebmarkbage, @icyJoseph, and @styfle for helping!
v15.0.0-canary.176
Core Changes
- [form] pages dir support: #68333
- chore(docs): refactor README.md: #70503
- Fix missing
await
ofparams
when metadata is used: #70698 - condense warnings for direct access of dynamic APIs: #70682
- Allow silencing direct access of dynamic APIs to unblock internal sync: #70705
Misc Changes
- [Turbopack] HMR invalidation improvements: #70494
- test: fix next-form tests when running on react 18: #70704
Credits
Huge thanks to @lubieowoce, @Marukome0743, @sokra, and @eps1lon for helping!
v15.0.0-canary.175
Core Changes
- fix: fix warnings from invalid api's called from edge runtime: #70639
- Update font data: #70653
- refactor: added more strict app segment config parsing: #70479
- next-upgrade: Stop interleaving user-input with long tasks: #70636
- Replace depricated
apple-mobile-web-app-capable
with `mobile-web-apβ¦: #70363 - Fix interpolation of dynamic params in intercepting route pathnames: #70667
- bugfix: only replace with full prefetch if existing data was partial: #70650
- next-upgrade: Default to release channel that's used: #70638
- feat(turbopack): add support for polling file watcher: #69684
- chore: improve accessibility of static indicator: #70612
- initially visited static pages should respect static staletime: #70640
- codemod: improve dynamic api codemod cases: #70593
- feat(next/image): add
images.localPatterns
config: #70529 - Recommend
React.use()
to unwrap async APIs in the browser: #70677 - Change default SWR delta value to 1 year: #70674
Example Changes
- updated the environment variables examples to utilize the App router: #70392
Misc Changes
- Turbopack build: Fix client-components-tree-shaking test: #70662
- Turbopack: Allow ESM externals in SSR: #70258
- docs: update with-google-analytics example path: #70547
- docs(link): add mention about how App Router prefetches on hover: #70679
Credits
Huge thanks to @wyattjoh, @neoFinch, @timneutkens, @mischnic, @eps1lon, @Nayeem-XTREME, @unstubbable, @ztanner, @ForsakenHarmony, @Marukome0743, @huozhi, @styfle, @samcx, and @ijjk for helping!
v14.2.14
Note
This release is backporting bug fixes. It does not include all pending features/changes on canary.
Core Changes
- Fix: clone response in first handler to prevent race (#70082) (#70649)
- Respect reexports from metadata API routes (#70508) (#70647)
- Externalize node binary modules for app router (#70646)
- Fix revalidateTag() behaviour when invoked in server components (#70446) (#70642)
- Fix prefetch bailout detection for nested loading segments (#70618)
- Add missing node modules to externals (#70382)
- Feature: next/image: add support for images.remotePatterns.search (#70302)
Credits
Huge thanks to @styfle, @ztanner, @ijjk, @huozhi and @wyattjoh for helping!
v15.0.0-canary.174
Core Changes
- remove leftover console.log introduced in #70532: #70615
- Add
connection()
as a new dynamic API: #69949 - Fix: Set busboy defParamCharset to utf8: #70348
- Update
dynamicIO
experiment to use React canary: #70571 - refactor: remove unnecessary page segment check in ppr-navigations: #70572
- Wire AsyncLocalStorage within a cached context: #70573
- Fix
revalidateTag()
behaviour when invoked in server components: #70446 - next-upgrade: Ensure install packages works on exotic package revisions: #70625
- Error consistently during prospective prerender: #70631
- next-upgrade: Infer React types version from runtime version: #70626
- next-upgrade(refactor): Improve type coverage: #70627
- next-upgrade: Remove extraneous if no channel is specified: #70628
- next-upgrade: select codemods by canary version: #70630
- next-upgrade: Hide install output by default: #70632
- next-upgrade: Allow custom selection of codemods: #70634
- next-upgrade: Allow choosing same codemods that are available in the currently used version: #70635
- Upgrade React from
3edc000d-20240926
to2d16326d-20240930
: #70629
Misc Changes
- test: disable sa period hash tests for turbopack build: #70616
- Turbopack build: Fix favicon-short-circuit: #70617
- Turbopack build: Skip styled-jsx babel plugin test: #70623
- docs: Rename React Cache to Request Memoization: #70448
- docs: minor fixes in the next/head doc: #70510
- Change deterministic module ID strategy to match Webpack: #70200
Credits
Huge thanks to @lubieowoce, @huozhi, @gnoff, @jaredhan418, @timneutkens, @ztanner, @bangseongbeom, @penicillin0, @sebmarkbage, @abhi12299, @eps1lon, and @LichuAcu for helping!