From 83d322bcebc8cc24df30b89c29ff8cfc4ded7002 Mon Sep 17 00:00:00 2001 From: Zack Tanner <1939140+ztanner@users.noreply.github.com> Date: Wed, 1 Oct 2025 11:35:02 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"auto-enable=20clientParamParsing=20an?= =?UTF-8?q?d=20clientSegmentCache=20w/=20cacheCompone=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit efa1ad49e829312e86ae94288e89cb054795c126. --- packages/next/src/server/config.ts | 51 ++++++++---------- .../basic/segment-cache-basic.test.ts | 6 +-- .../build-output-prerender.test.ts | 52 +++++++------------ 3 files changed, 42 insertions(+), 67 deletions(-) diff --git a/packages/next/src/server/config.ts b/packages/next/src/server/config.ts index 7776b4259e919..a4211d677043d 100644 --- a/packages/next/src/server/config.ts +++ b/packages/next/src/server/config.ts @@ -1690,68 +1690,59 @@ function enforceExperimentalFeatures( } } - // TODO: Remove this once we've made Cache Components the default. + // TODO: Remove this once we've made Client Segment Cache the default. if ( - process.env.__NEXT_EXPERIMENTAL_CACHE_COMPONENTS === 'true' && + process.env.__NEXT_EXPERIMENTAL_PPR === 'true' && // We do respect an explicit value in the user config. - (config.experimental.cacheComponents === undefined || - (isDefaultConfig && !config.experimental.cacheComponents)) + (config.experimental.clientSegmentCache === undefined || + (isDefaultConfig && !config.experimental.clientSegmentCache)) ) { - config.experimental.cacheComponents = true + config.experimental.clientSegmentCache = true if (configuredExperimentalFeatures) { addConfiguredExperimentalFeature( configuredExperimentalFeatures, - 'cacheComponents', + 'clientSegmentCache', true, - 'enabled by `__NEXT_EXPERIMENTAL_CACHE_COMPONENTS`' + 'enabled by `__NEXT_EXPERIMENTAL_PPR`' ) } } - const enabledByPprEnv = process.env.__NEXT_EXPERIMENTAL_PPR === 'true' - const enabledByCacheComponents = config.experimental.cacheComponents === true - - // TODO: Remove this once we've made Client Segment Cache the default. + // TODO: Remove this once we've made Client Param Parsing the default. if ( - (enabledByPprEnv || enabledByCacheComponents) && + process.env.__NEXT_EXPERIMENTAL_PPR === 'true' && // We do respect an explicit value in the user config. - (config.experimental.clientSegmentCache === undefined || - (isDefaultConfig && !config.experimental.clientSegmentCache)) + (config.experimental.clientParamParsing === undefined || + (isDefaultConfig && !config.experimental.clientParamParsing)) ) { - config.experimental.clientSegmentCache = true - const reason = enabledByCacheComponents - ? 'enabled by `experimental.cacheComponents`' - : 'enabled by `__NEXT_EXPERIMENTAL_PPR`' + config.experimental.clientParamParsing = true if (configuredExperimentalFeatures) { addConfiguredExperimentalFeature( configuredExperimentalFeatures, - 'clientSegmentCache', + 'clientParamParsing', true, - reason + 'enabled by `__NEXT_EXPERIMENTAL_PPR`' ) } } - // TODO: Remove this once we've made Client Param Parsing the default. + // TODO: Remove this once we've made Cache Components the default. if ( - (enabledByPprEnv || enabledByCacheComponents) && + process.env.__NEXT_EXPERIMENTAL_CACHE_COMPONENTS === 'true' && // We do respect an explicit value in the user config. - (config.experimental.clientParamParsing === undefined || - (isDefaultConfig && !config.experimental.clientParamParsing)) + (config.experimental.cacheComponents === undefined || + (isDefaultConfig && !config.experimental.cacheComponents)) ) { - config.experimental.clientParamParsing = true - const reason = enabledByCacheComponents - ? 'enabled by `experimental.cacheComponents`' - : 'enabled by `__NEXT_EXPERIMENTAL_PPR`' + config.experimental.cacheComponents = true if (configuredExperimentalFeatures) { addConfiguredExperimentalFeature( configuredExperimentalFeatures, - 'clientParamParsing', + 'cacheComponents', true, - reason + 'enabled by `__NEXT_EXPERIMENTAL_CACHE_COMPONENTS`' ) } } diff --git a/test/e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts b/test/e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts index bde403f1c5824..dd1647292617e 100644 --- a/test/e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts +++ b/test/e2e/app-dir/segment-cache/basic/segment-cache-basic.test.ts @@ -93,11 +93,7 @@ describe('segment cache (basic tests)', () => { ) }) - // TODO(client-param-parsing): With `clientParamParsing` enabled, this test is outdated, because - // we no longer put the param values in the prefetched RSC response. You'd have to opt into runtime - // prefetching for this test to pass until we ship the optimization that would mark this as fully static - // if you don't reference any dynamic params in the server components. - it.skip('navigate to page with lazily-generated (not at build time) static param', async () => { + it('navigate to page with lazily-generated (not at build time) static param', async () => { let act: ReturnType const browser = await next.browser('/lazily-generated-params', { beforePageLoad(page) { diff --git a/test/production/app-dir/build-output-prerender/build-output-prerender.test.ts b/test/production/app-dir/build-output-prerender/build-output-prerender.test.ts index 5cfc1cddf9f12..335377e9a9a53 100644 --- a/test/production/app-dir/build-output-prerender/build-output-prerender.test.ts +++ b/test/production/app-dir/build-output-prerender/build-output-prerender.test.ts @@ -26,8 +26,8 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ✓ rdcForNavigations (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`)" @@ -37,8 +37,8 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ✓ rdcForNavigations (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`)" @@ -61,8 +61,8 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ rdcForNavigations (enabled by \`__NEXT_EXPERIMENTAL_PPR\`)" @@ -74,8 +74,6 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ✓ rdcForNavigations (enabled by \`experimental.ppr\`)" @@ -85,8 +83,6 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (Rspack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ✓ rdcForNavigations (enabled by \`experimental.ppr\`)" @@ -96,8 +92,6 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ✓ rdcForNavigations (enabled by \`experimental.ppr\`)" @@ -155,8 +149,8 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -170,8 +164,8 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -202,8 +196,8 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -219,8 +213,6 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -234,8 +226,6 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (Rspack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -249,8 +239,6 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`experimental.cacheComponents\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -309,8 +297,8 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ✓ rdcForNavigations (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`)" @@ -320,8 +308,8 @@ describe('build-output-prerender', () => { "▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`experimental.cacheComponents\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ✓ rdcForNavigations (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`)" @@ -382,8 +370,8 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (Turbopack) - Experiments (use with caution): ✓ cacheComponents (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`) @@ -397,8 +385,8 @@ describe('build-output-prerender', () => { ▲ Next.js x.y.z (webpack) - Experiments (use with caution): ✓ cacheComponents (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) - ✓ clientParamParsing (enabled by \`experimental.cacheComponents\`) - ✓ clientSegmentCache (enabled by \`experimental.cacheComponents\`) + ✓ clientParamParsing (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) + ✓ clientSegmentCache (enabled by \`__NEXT_EXPERIMENTAL_PPR\`) ✓ enablePrerenderSourceMaps (enabled by \`--debug-prerender\`) ✓ ppr (enabled by \`__NEXT_EXPERIMENTAL_CACHE_COMPONENTS\`) ⨯ prerenderEarlyExit (disabled by \`--debug-prerender\`)