Skip to content

Latest commit

 

History

History
792 lines (527 loc) · 65.3 KB

CHANGELOG.md

File metadata and controls

792 lines (527 loc) · 65.3 KB

Changelog

5.9.1 (2024-12-18)

Bug Fixes

  • use version of htmlrewriter which does not make use of asyncify, which looks to have a potential memory leak under high load (#2721) (4d7ad97)

5.9.0 (2024-12-09)

Features

Bug Fixes

  • add data request query param to the cache key (#2701) (00e3a4b)

5.8.1 (2024-10-21)

Bug Fixes

  • create cache entries for fallback pages to support next@canary (#2649) (8ab259a)

5.8.0 (2024-10-16)

Features

Bug Fixes

5.7.4 (2024-10-09)

Bug Fixes

  • handle non ASCII characters in cache-tag headers (#2645) (fcf2414)

5.7.3 (2024-10-01)

Bug Fixes

  • handle middleware redirects to default locale and same path (#2636) (f0fa7d0)

5.7.2 (2024-09-17)

Bug Fixes

  • use durable cache when serving stale response (#2591) (79e2a2c)

5.7.1 (2024-09-06)

Bug Fixes

  • generate correct import path when 'src' directory is used and middleware imports wasm module (#2583) (b54b682)
  • update cache handler to accommodate changes in next@canary (#2572) (83f685e)

5.7.0 (2024-08-26)

Features

Bug Fixes

5.6.0 (2024-07-29)

Features

  • fail build when netlify forms detected without workaround (#2539) (56fef5f)

Bug Fixes

5.5.1 (2024-07-08)

Bug Fixes

  • only clear stale functions with build through CLI (#2536) (3266808)

5.5.0 (2024-07-04)

Features

5.4.0 (2024-06-28)

Features

  • warn when netlify form detected (195b8b2)

Bug Fixes

  • set netlify-cache-tag for not prerendered content (#2495) (8fe6676)
  • track revalidate / cdn purge to ensure it finishes execution and is not suspended mid-execution (#2490) (5a0fec5)

5.3.3 (2024-06-18)

Bug Fixes

  • middleware i18n normalization (#2483) (a9efa9c)
  • set systemlogger debug log level for debug requests (#571) (a6d09f3)
  • update cache handler to accomodate changes in next@canary (#2480) (f4eeaa2)
  • update in-memory prerender manifest with information from full route cache (#579) (c91e257)

5.3.2 (2024-05-28)

Bug Fixes

  • allow parallel routes to resolve without routing to a 404 page (#516) (04dc3ec)
  • ensure locale is in next response url to allow page locale to inferred downstream (#533) (59b575e)
  • manually triggered notFound pages in page-router for older versions of next (#541) (30ef981)

5.3.1 (2024-05-22)

Bug Fixes

  • deps: update dependency @netlify/functions to ^2.7.0 (964ef13)
  • deps: update dependency @netlify/plugin-nextjs to ^5.3.0 (014be75)
  • don't warn about PPR (#506) (f62c009)

5.3.0 (2024-05-20)

Features

  • Set experimentalRegion to 'context' in order to enable colocated blobs (#488) (a72a837)

Bug Fixes

  • deps: update dependency chart.js to v4.4.3 (ee6e185)
  • leverage system logger for debug logs (instead of console) (#467) (b352d96)

5.2.2 (2024-05-07)

Bug Fixes

  • normalize trailing slash when handling middleware rewrites (#448) (2012922)
  • separate response cache if debug logging header is used (#384) (68f8e79)
  • support revalidating multiple tags at once (#464) (62ea699)

5.2.1 (2024-05-02)

Bug Fixes

  • don't normalize url if x-nextjs-redirect header is present (#424) (f23da82)

5.2.0 (2024-04-30)

Features

Bug Fixes

  • apply useRegionalBlobs replacement for non-monorepo template (#431) (d73a912)
  • disable regional blobs until feature is ready for release (#433) (9620588)
  • remove blob folder in pre-dev (#430) (3749c3c)
  • track background work (#407) (296e8fe)
  • track background work pre batchers (#423) (292331d)

5.1.2 (2024-04-18)

Bug Fixes

  • more robust handling of export output (#418) (d66e30b)

5.1.1 (2024-04-17)

Bug Fixes

5.1.0 (2024-04-16)

Features

  • add cdn-cache-control headers to cacheable route handler responses (#399) (f4c588c)
  • fail the build when advanced api routes are used (#403) (275f488)

5.0.0 (2024-04-02)

Features

  • add build time o11ty to the runtime (#372) (93036f7)
  • add first part of the open telemetry integration to the runtime (#232) (8b17f09)
  • add middleware routing (#146) (8fc84c5)
  • add mono repository support (#123) (53f0f36)
  • add next.js version check and fail the build if version not satisfied (#291) (72101f3)
  • add system logging to middleware handler (#174) (1eee565)
  • add systemlog shim (#127) (dab9ead)
  • check for root publish dir (#292) (f2084b8)
  • fail build if BUILD_ID is not found at location it will be read from in runtime (#313) (d06ca25)
  • handle /_next/image through Netlify Image CDN for local images (#149) (4bf8641)
  • normalise URLs in edge middleware (#176) (5155474)
  • remove x-nextjs-cache header and add Cache-Status instead (#158) (5b477db)
  • start moving to SugaredTracer and collect spans manually to be able to create 'server-timing' header when debugging (#358) (311fafe)
  • stop running middleware at the origin (#125) (3e743de)
  • support also x-next-debug-logging to enable server-timing (#359) (d045755)
  • support edge middleware (#114) (a1eaca3)
  • support nx integrated setups inside runtime (#251) (994be8e)
  • support static export (#349) (e2737bc)
  • swap publish/static dirs (#93) (a31816e)
  • use blob key encoding (#108) (1277f85)
  • use in-source path over redirects for Server Handler (#122) (aaf12cc)
  • use new blob store api (#100) (0f4eb7a)
  • use prerenderManifest data instead of globbing when copying prerendered content (#105) (60594f1)
  • write tags manifest at build time to simplify request time response tagging (#94) (a0c93ca)

Bug Fixes

  • apply permanent cdn-cache-control for fully static page (#274) (9c2f0bb)
  • avoid PPR build error (#286) (8217f50)
  • await copyStaticExport (#374) (1c814f8)
  • blob key collisions (#212) (7c33ac3)
  • bundle edge chunks with lambda (#152) (c5008a4)
  • cache freshness for ISR content (#235) (4a0c285)
  • concatenate all edge chunks (#319) (b3aaed6)
  • copy-next-code on windows (#297) (077cc18)
  • correctly handle middleware header mutations (#225) (da7aa22)
  • correctly handle query params on data rewrites (#196) (abd7509)
  • correctly serve images by storing binary as base64 (#241) (22afaa8)
  • create server handler in sequential steps (#373) (96f8fe7)
  • deps: update dependency @netlify/blobs to ^4.2.0 (#86) (77c2a9c)
  • deps: update dependency @netlify/blobs to v6 (#92) (f462438)
  • deps: update dependency @netlify/functions to ^2.4.0 (c566ffa)
  • disable transfer-encoding leading to problems in fastly (#333) (4080e1c)
  • don't mutate route data, instead create new object to set as blob (#391) (98eb35f)
  • don't run middleware on rewrite target (#270) (c6af678)
  • don't set SWR cdn cache control on stale responses (#259) (7555b68)
  • don't use windows path separators for path templating in monorepo (#293) (5b26311)
  • ensure cdn cache control only set for get and head methods (#137) (bf63aa8)
  • fetch cache tag invalidation (#268) (ede6277)
  • fix proxying on next@<14.0.2 (#366) (83e9a39)
  • fixes an issue where the runtime was not working with pnpm package manager (#96) (b77512e)
  • fixes an issue where the symlinks where not correctly preserved for pnpm monorepos (#216) (9c35799)
  • fixes the runtime inside monorepos like turborepo (#204) (219588e)
  • fixes the usage of a custom distDir (#269) (6a35de6)
  • handle ipx redirect that visitors might have browser cached from v4 (#390) (9c0490c)
  • handle locales in middleware redirects (#198) (97af130)
  • handle long blob names by truncating them (#182) (b55ca06)
  • handle middleware rewrite bodies and loops (#193) (fd3c754)
  • handle middleware rewrites to in data requests (#180) (8b5687c)
  • handle multiple matchers for middleware (#203) (8e9dbb5)
  • handle pages router notFound pages (#318) (27a5645)
  • handle parallel routes default layout (#150) (ebe579f)
  • handle redirect response body (#142) (f149e89)
  • honor skipMiddlewareUrlNormalize (#287) (01e9450)
  • import server in module scope (#363) (bce994d)
  • include static files in the function bundle (#200) (7e79ba7)
  • init blobStore in CacheHandler constructor and not global scope (#164) (1ab8d82)
  • init deployStore on fs.readFile and not when lambda spawns (#277) (6b3edc3)
  • LastModified Date (#211) (4e5d5fc)
  • let next-server handle SWR behavior (#206) (d2eeda9)
  • limit amount of concurrent handling of prerendered content (#356) (416f66c)
  • make on-demand revalidation reliable (#245) (d85332a)
  • match bare route for i18n site middleware (#288) (590db9b)
  • middleware should run in/out of src dir (#219) (3fb5bda)
  • normalise basepath (#228) (15116a0)
  • normalise middleware data URL requests (#267) (fa41fce)
  • normalise redirect/rewrite target locales (#226) (402caae)
  • only populate build cache when run inside buildbot (#199) (a4c49e2)
  • overriding headers in route handlers should work (#195) (636449d)
  • pass correct domain to server (#144) (ae4285a)
  • preserve functions in patched middleware manifest (#139) (d17c030)
  • preserve locale in redirects (#276) (c4c4214)
  • prevent infinite loop cause by global fetch patched by Next.js (#167) (616b94a)
  • prewarm entrypoint (#351) (31484aa)
  • put in real system logger (#177) (b874afc)
  • reduce reliance on PACKAGE_PATH (#340) (4b53c21)
  • remove accepts encoding workaround (#264) (d79d333)
  • remove temp publish dir before moving static content (#278) (3d7b20f)
  • resolve run-config.json in runtime from PLUGIN_DIR not cwd (#285) (0348fac)
  • respect user defined included_files for functions from netlify.toml (#298) (e5192f2)
  • rewrites shouldn't be following redirects (#253) (30b091c)
  • set correct date header for cached objects (#124) (4523c5f)
  • shim require("node:buffer") (#233) (00662dc)
  • shim process in edge runtime (#132) (7d01157)
  • standardize stale-while-revalidate header (#95) (1220e04)
  • strip internal middleware header from responses (#160) (e270811)
  • strip locale from path passed to middleware (#194) (5e88d33)
  • support basepath for static assets (#141) (84b3a63)
  • support wasm chunks (#190) (739fbdd)
  • try to resolve styled-jsx from next context, not serverHandlerContext (#300) (87f3215)
  • unstable_cache not working (#237) (c076448)
  • use response cache key for tag manifest first before falling back to pathname (#280) (51dcbe0)
  • use unpatched fetch for all deploystores (#240) (8972e5b)
  • windows doesnt like renaming into a directory that already exists (#299) (8a60324)

Performance Improvements

  • check any revalidatedTags passed from next first before checking blobs, memoize tag manifest blob gets for duration of request (#229) (39ab537)
  • ensure blob directory exist just once (#357) (037b695)
  • reuse lastModified captured in cache handler to calculate date header (#260) (e33bd93)
  • shim next's telemetry module to improve startup performance (#365) (3d2c429)

Miscellaneous Chores

5.0.0-alpha.25 (2023-11-27)

Features

  • cache tags & on-demand Revalidation for pages (#50) (a6f3ce2)
  • symlink for speed and to avoid clobbering user files (#56) (2576f81)

Bug Fixes

  • disable downloading canary swc binaries (#81) (8f3799c)
  • fix patching the fs by doing a shallow clone of fs/promises module to avoid infinite loop (#73) (80b5ea9)
  • fixes a module interop issue (#67) (57b8678)
  • fixes an issue where the nft tracing was not picking up the runtime node_modules (#74) (fe68c74)
  • fixes an issue where the static pages could not be retrieved from the blob store (#79) (e18de13)
  • fixes the package structure (#66) (b10dad6)
  • handle dependency paths for packaged module (a81658c)
  • resolution issue (#72) (f56c28c)
  • resolving the paths correctly when the next-runtime is used from source (#77) (fcd57d1)
  • revert symlinks to cp due to CLI issues (#70) (85a50d4)
  • temporary workaround for CDN compression bug (#80) (6b9fa33)
  • Update included files within package.json (#63) (ec7c681)

Miscellaneous Chores

5.0.0-alpha.2 (2023-11-13)

Bug Fixes

  • don't prepare tests on postinstall (#61) (a095a4c)

5.0.0-alpha.1 (2023-11-13)

Bug Fixes

  • requesting page router static assets (#58) (c893ad1)

Miscellaneous Chores

5.0.0-alpha.0 (2023-11-13)

Bug Fixes

  • requesting page router static assets (#58) (c893ad1)

Miscellaneous Chores

5.0.0-alpha.0 (2023-11-13)

This is the first internal-only release of the new Next Runtime! It represents a big step forward in making the runtime more reliable and easier to maintain by leaning on the framework more, using new Netlify platform primitives and working with new Next.js public APIs such as custom cache handling and standalone mode.

The features in this release finally allow us to run Next.js App Router sites, with full support for the various rendering/routing/revalidating scenarios.

Note that we are currently working through some issues with Pages Router support, so please consider this an App Router only release, with Pages Router support still to come. Similarly, this release contains no edge runtime and hence middleware will run at the origin and not on the edge.

This is an alpha release, so please expect a variety of interesting edge-case bugs. It is not ready for production use, but we are excited to share it and begin gathering feedback.

Features

  • Standalone mode: The Next Runtime now builds Next.js sites in standalone mode, which means the Next Runtime no longer needs to trace and package server files/dependencies and we can instead rely on the framework. In addition, it exposes a server entrypoint that allows us to handle requests in a more reliable way, meaning we are less exposed to changes in Next.js internals.
  • Cache handling: We are making use of a new Next.js configuration parameter that allows us to specify a custom cache handler. This is a huge leap forward because it allows us to leverage Netlify's new Cache-Control primitives and retire the use of ODBs, which are no longer suitable for dealing with the advanced caching requirements of modern Next.js sites. The new Next Runtime forwards Next.js Cache-Control headers and specifically ensures that stale-while-revalidate is handled by our edge CDN and does not leak to the browser. In addition, the runtime sets appropriate Vary and Cache-Tags headers according to the Next.js response.
  • Blob storage To support globally persistent static revalidation, the Next Runtime makes use of Netlify's new blob storage primitive. Page content and metadata is cached in the blob store, meaning that the same content version is available to all lambda invocations and can be automatically (TTL) or manually (on-demand) revalidated across all CDN nodes.
  • Functions API v2 The server handler utilizes the new Netlify Functions API, which means we are now receiving/returning a standard web Request/Response object and no longer need to bridge between a Lambda event and a Node event by standing up an HTTP server on each request. In addition, the new configuration API means we will no longer need to modify the Netlify TOML file and can avoid modifying any user code or Next.js build output for better DX.

4.3.2 (2022-04-04)

Bug Fixes

  • 🐛 include terser bundle into netlify functions (#1295) (f29adf3)

4.3.1 (2022-03-28)

Bug Fixes

  • correctly find site root when using SSR with Nx (#1281) (3b26573)

4.3.0 (2022-03-23)

Features

Bug Fixes

  • deps: update dependency @vercel/node-bridge to v2.2.0 (#1246) (3637fff)

4.2.8 (2022-03-21)

Bug Fixes

4.2.7 (2022-02-18)

Bug Fixes

  • correctly cache when using next export (#1223) (a8030ca)
  • deps: update dependency @netlify/functions to ^0.11.1 (#1217) (e17892b)
  • deps: update dependency @netlify/functions to v1 (#1219) (af841cd)

4.2.6 (2022-02-14)

Bug Fixes

4.2.5 (2022-02-07)

Bug Fixes

4.2.4 (2022-02-03)

Bug Fixes

4.2.3 (2022-02-02)

Bug Fixes

  • don't use ODB for routes that match middleware (#1171) (bbcdfbd)

4.2.2 (2022-01-31)

Bug Fixes

  • deps: update dependency @netlify/ipx to ^0.0.9 (#1181) (2e55a9e)

4.2.1 (2022-01-24)

Bug Fixes

  • deps: update dependency @netlify/functions to ^0.11.0 (#1146) (4da630b)
  • deps: update dependency core-js to v3.20.3 (#1155) (043ad36)
  • provide hostname and port to server (#1149) (02053fd)

4.2.0 (2022-01-17)

Features

4.1.3 (2022-01-13)

Bug Fixes

  • handle routes-manifests without staticRoutes defined (#1120) (96f3ccb)

4.1.2 (2022-01-11)

Bug Fixes

  • add specific rewrites for all SSR routes (#1105) (6fd7bcc)
  • deps: update dependency core-js to v3.20.2 (#1095) (41966ca)

4.1.1 (2021-12-21)

Bug Fixes

  • fix bug that caused ISR pages to sometimes serve first built version (#1051) (62660b2)
  • force React to use production env (#1056) (eca0bee)

4.1.0 (2021-12-17)

Features

Bug Fixes

4.0.0 (2021-12-14)

This is a full rewrite of the Essential Next.js plugin, with a new architecture that gives greater compatibility and stability.

What's new

  • Full support for incremental static regeneration (ISR).
  • Full support for Next.js rewrites, redirects and headers.
  • Beta support for Next 12 Middleware
  • Faster builds and deploys. Instead of generating one function per route, there are just three functions per site and a much smaller list of rewrites.
  • Full support for Netlify's new persistent On-Demand Builders. Return fallback: "blocking" from getStaticPaths and your rendering will be deferred until the first page load, then persisted globally.
  • A new image server for next/image, built on Nuxt's ipx. This is a high-performance, framework-agnostic image server based on sharp. This implementation uses On-Demand Builders to persist transformed images globally. Improved source image caching reduces time-to-first-byte for new transforms.
  • Simplified configuration. You no longer need to set any Netlify-specific configuration options. For example, in a monorepo all you need to do is set publish to point to your .next directory and you can build the site in any way you like.
  • Removes requirement for the target to be set to serverless, which is deprecated in Next 12.
  • Bundling now uses Next.js's own node-file-trace, giving more predictable results and smaller uploads.

Breaking changes

The publish directory should point to the site's .next directory or distDir if set, rather than out as in previous versions of the plugin.

Migration guide

Change the publish directory to .next:

[build]
publish = ".next"

If you previously set these values, they're no longer needed and can be removed:

  • target: "serverless" in your next.config.js
  • distDir in your next.config.js
  • node_bundler = "esbuild" in netlify.toml
  • external_node_modules in netlify.toml

If you currently use redirects or rewrites on your site, see the Rewrites and Redirects guide for information on changes to how they are handled in this version.

If you want to use Next 12's beta Middleware feature, this will mostly work as expected but please read the docs on some caveats and workarounds that are currently needed.

4.0.0-rc.1 (2021-12-07)

Features

Bug Fixes

  • bypass preview for static files (#918) (ecb3cc8)
  • work around a bug that caused a full response to be sent for images, even if the etag matched
  • deps: update dependency @netlify/ipx to ^0.0.8 (#902) (25f375f)

4.0.0-rc.0 (2021-12-06)

Bug Fixes

  • copy public directory output instead of input when using Nx (#856) (d959f82)
  • correct root redirect when trailingSlash = false (#879) (3c6b10b)

4.0.0-beta.13 (2021-12-02)

Bug Fixes

  • correct handling of data route JSON files (#864) (adea889)
  • move locale detection to netlify redirects (#861) (964637b)

4.0.0-beta.12 (2021-11-30)

Features

Miscellaneous Chores

  • deps: update dependency @netlify/build to v19 (#840) (d927524)

4.0.0-beta.11 (2021-11-24)

Bug Fixes

4.0.0-beta.10 (2021-11-24)

Bug Fixes

  • replace node-fetch with builtin (#834) (6ff3100)
  • correct redirect priority and correctly handle ISR pages assets (#826) (6b61643)
  • deps: update dependency @netlify/functions to ^0.10.0 (#830) (3256839)
  • don't move files to the CDN if they match redirect/rewrite rules (#832) (9e3dd0e)

4.0.0-beta.9 (2021-11-19)

Bug Fixes

4.0.0-beta.8 (2021-11-19)

Features

  • don't move files to CDN if they match middleware (#812) (615c97a)
  • move static pages by default (#816) (12ce69e)

4.0.0-beta.7 (2021-11-17)

Features

Bug Fixes

  • deps: update dependency @netlify/functions to ^0.9.0 (#807) (3deec1d)
  • ensure path is encoded (#800) (b0f666e)
  • use forced catchall for preview mode (#793) (fd7130f)

Miscellaneous Chores

4.0.0-beta.6 (2021-11-08)

Bug Fixes

4.0.0-beta.5 (2021-11-03)

Bug Fixes

  • add missing middleware runtime file (#762) (83378b4)
  • deps: update dependency node-fetch to v2.6.6 (#758) (759915b)
  • don't force rewrite in preview mode (#761) (c88a504)

4.0.0-beta.4 (2021-10-27)

Bug Fixes

4.0.0-beta.3 (2021-10-26)

Features

  • support moving static pages out of function bundle (#728) (3da9c77)
  • warn if zip is too large, and log the largest files (#730) (9989c0a)

Bug Fixes

4.0.0-beta.2 (2021-10-19)

Features

  • Enable persistent builders by default (#716) (de07dc2)

Bug Fixes

4.0.0-beta.1 (2021-10-15)

Bug Fixes

Miscellaneous Chores

4.0.0-beta.0 (2021-10-15)

A complete rewrite of the Essential Next plugin. See the README for details and migration instructions