Commit graph

19126 commits

Author SHA1 Message Date
Jiachi Liu
28e892d9f1
chore: remove unused export (#60647)
Closes NEXT-2100
2024-01-15 00:45:22 +01:00
vercel-release-bot
10a217ec7b v14.0.5-canary.58 2024-01-14 23:23:03 +00:00
Jiachi Liu
bfd10b365a
Add cache reason for using fetch with noStore (#60630)
When you're using `noStore()` with `fetch` it's currently saying "auto
cache" in cache missed reason, adding "noStore call" here to show it's
caused by using with `unstable_noStore`

```
 GET /no-store 200 in 4069ms
  │ GET https://next-data-api-endpoint.vercel.app/api/random?another-no-cache 200 in 257ms (cache: SKIP)
  │  │  Cache missed reason: (noStore call)
```

Closes NEXT-2097
2024-01-14 22:04:28 +01:00
Lee Robinson
126c7f2429
docs: remove Next 13 mention for App Router (#60632) 2024-01-14 11:33:37 -06:00
vercel-release-bot
7b7aa99539 v14.0.5-canary.57 2024-01-14 17:24:21 +00:00
Andrew Clark
dc697245ae
Update React from f1039be4a to 60a927d04 (#60619)
Includes a fix for useOptimistic.

React upstream changes:

- https://github.com/facebook/react/pull/27936
- https://github.com/facebook/react/pull/27924
- https://github.com/facebook/react/pull/27930
- https://github.com/facebook/react/pull/27923
- https://github.com/facebook/react/pull/27922
- https://github.com/facebook/react/pull/27917
- https://github.com/facebook/react/pull/27916
- https://github.com/facebook/react/pull/27918
- https://github.com/facebook/react/pull/27919
- https://github.com/facebook/react/pull/27914
- https://github.com/facebook/react/pull/27911
- https://github.com/facebook/react/pull/27909
- https://github.com/facebook/react/pull/27907
- https://github.com/facebook/react/pull/27906
- https://github.com/facebook/react/pull/27905

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2096
2024-01-13 23:37:08 -08:00
vercel-release-bot
2bc242535a v14.0.5-canary.56 2024-01-13 23:22:46 +00:00
Lee Robinson
fcb635e1cd
docs: Update Google Analytics error doc (#60612)
Closes https://github.com/vercel/next.js/issues/60598.
2024-01-13 12:27:41 -06:00
vercel-release-bot
f6c4c2768b v14.0.5-canary.55 2024-01-12 23:22:06 +00:00
JJ Kasper
4fc7ec1c8c
Update flakey dev middleware test (#60590)
This error can show more than just once depending on number of requests
to the page and refreshes.

x-ref:
https://github.com/vercel/next.js/actions/runs/7507976633/job/20442621189?pr=60589

Closes NEXT-2093
2024-01-12 22:43:37 +00:00
JJ Kasper
52bb91b40d
Remove duplicate pages -> app test (#60589)
This is already covered by the test above so removes it in favor of
that.

x-ref:
https://github.com/vercel/next.js/actions/runs/7507344417/job/20442223048

Closes NEXT-2092
2024-01-12 22:28:35 +00:00
OJ Kwon
4e71496e11
test(fixture): update assertion for turbopack (#60579)
### What?

Minor update to test assertion to work with turbopack.

Closes PACK-2234
2024-01-12 13:43:09 -08:00
Sam Ko
e620531480
chore: remove pr_approved workflow & update popular_issues workflow (#60584)
## Changes
- Remove `pr_approved.yml`
- Update popular issues workflow, move to a different Slack channel

Closes NEXT-2089
2024-01-12 21:41:44 +00:00
JJ Kasper
57526b23d0
Add documentation for client router filter (#60585)
This adds documentation around the client router filter we leverage in
`pages` to allow incremental migration from `pages` to `app`. Also adds
mention of two experimental configs that can be useful for managing the
client router filter.

x-ref:
https://github.com/vercel/next.js/issues/47486#issuecomment-1889623898

Closes NEXT-2090

---------

Co-authored-by: Sam Ko <sam@vercel.com>
2024-01-12 13:37:57 -08:00
Willem-Jaap
756027bf10
fix(mdx): update word order, fix typo (#60466)
Reverse directory order to indicate that `src/` or the parent of `app/`
should be used.
At first I thought the correct place was the parent folder of `src/`,
this eliminates that confusion
2024-01-12 21:16:45 +00:00
Steven
0e97fcd3c6
chore(git): add .git-blame-ignore-revs (#60582)
- Related to
https://github.com/vercel/next.js/issues/54402#issuecomment-1889900918

Closes NEXT-2088
2024-01-12 16:09:58 -05:00
Ahmed Abdelbaset
d16ff74a3b
docs: small fix in Redirecting page (#60583)
ref: #60435
2024-01-12 15:08:41 -06:00
JJ Kasper
9294ab2fb0
Ensure client filter with basePath is correct (#60580)
Follow-up to https://github.com/vercel/next.js/pull/60542 this adds
regression tests for `basePath` with the client router filter to ensure
we hard navigate to the correct URL when going from pages -> app.


x-ref: https://github.com/vercel/next.js/issues/47486
Closes NEXT-2086
2024-01-12 20:55:56 +00:00
Jiachi Liu
3738e8ecc0
Fix react-refresh for transpiled packages (#60563)
### What

We're applying react-refresh to browser layer and inject ESM or CJS
helper based on file type. Some package from `trasnpilePackages` might
contain CJS browser bundle. And injecting ESM helper breaks them.
Actually they don't need to have fast refresh ability since they're in
`node_modules`.

### How
Skip react-refresh for transpiled packages as they're in node_modules
and won't change.

Fixes #56487 
Closes NEXT-2061
2024-01-12 21:44:41 +01:00
Andrew Clark
61803f818a
[PPR Nav] Fix flash of loading state during back/forward (#60578)
### Depends on

- #60577 

---

A popstate navigation reads data from the local cache. It does not issue
new network requests (unless the cache entries have been evicted). So,
when navigating with back/forward, we should not switch back to the PPR
loading state. We should render the full, cached dynamic data
immediately.

To implement this, on a popstate navigation, we update the cache to drop
the prefetch data for any segment whose dynamic data was already
received. We clone the entire cache node tree and set the `prefetchRsc`
field to `null` to prevent it from being rendered. (We can't mutate the
node in place because Cache Node is a concurrent data structure.)

Technically, what we're actually checking is whether the dynamic network
response was received. But since it's a streaming response, this does
not mean that all the dynamic data has fully streamed in. It just means
that _some_ of the dynamic data was received. But as a heuristic, we
assume that the rest dynamic data will stream in quickly, so it's still
better to skip the prefetch state.

Closes NEXT-2084
2024-01-12 14:18:54 -05:00
vercel-release-bot
3e221fb614 v14.0.5-canary.54 2024-01-12 19:15:30 +00:00
Will Binns-Smith
d98b5a5757
Tracing: attach Turbopack session value to root span (#60576)
This allows us to more accurately attribute whether a trace was created
in a Turbopack session by doing so at trace creation time rather than
trace upload time.

Test Plan: Configured next to send traces to a local server and verified
this information is attached to the top-level of the trace.


Closes PACK-2233
2024-01-12 11:11:23 -08:00
Zack Tanner
3da48113f9
propagate notFound errors past a segment's error boundary (#60567)
### What?
Throwing a `notFound()` error inside of a segment that has an error
boundary will cause it to be handled by the segment's error boundary
rather than a parent not-found boundary.

### Why?
We assume anything that hits an `ErrorBoundary` is an actual error, but
this should not be the case when the caught error is one that is handled
by Next.js.

### How?
This checks if the caught error is one that is expected to be handled
someplace else.

Closes NEXT-2080
[slack
x-ref](https://vercel.slack.com/archives/C03S8ED1DKM/p1705003189392509?thread_ts=1704868742.169129&cid=C03S8ED1DKM)
2024-01-12 16:58:45 +01:00
Delba de Oliveira
4640ed0604
docs: Add redirecting page in the Routing section (#60435)
New page outlining all options for handling redirects in Next.js, from
the simplest use cases (e.g. `redirect()` in a Server Action), to more
advanced cases (e.g. bloom filters and middleware).

- [x] `redirect`
- [x] `permanentRedirect`
- [x] `useRouter`
- [x] `next.config.js`
- [x] Middleware
- [x] Handling redirects at scale
  - [x] Edge config
  - [x] Bloom filter

---------

Co-authored-by: Lee Robinson <me@leerob.io>
2024-01-12 08:50:30 -06:00
Jiachi Liu
8515741933
Fix logging order of build jobs (#60564)
The Next.js version should always be output first instead of other jobs
in `next build`

Closes NEXT-2078
2024-01-12 15:03:20 +01:00
Tim Neutkens
10e8f4d437
Enable windowHistorySupport by default (#60557)
## What?

Enables `experimental.windowHistorySupport` by default. It has been in
experimental for quite a while now and has been successfully dogfooded
in vercel.com as well.

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2076
Closes NEXT-1773
2024-01-12 14:18:43 +01:00
Sam Ko
cc2bd0de76
chore: update next-repo-info actions (#60559)
## Description
A few changes to
https://github.com/vercel/next.js/tree/canary/.github/actions/next-repo-info
and related workflows.

## Changes
- Update `generateBlocks()` function
- Fix Slack channel title typo
- Fix `issuesAndPullRequests({ ... })` API call


Closes NEXT-2077
2024-01-12 11:19:22 +00:00
Vercel Release Bot
bb105ef4fb
Update Turbopack test manifest (#60553)
This auto-generated PR updates the integration test manifest used when
testing Turbopack.
2024-01-12 10:22:23 +01:00
Sam Ko
7b73f1137b
chore: add issue_popular workflow (#60543)
## Description
Add a new GitHub workflow that outputs the top 15 :github2: issues (most reactions) in
the last month.

Closes NEXT-2071
2024-01-11 18:27:47 -08:00
JJ Kasper
68cecd6a3a
Update default error rate for client filter (#60542)
This updates our default error rate to be much more precise and reduce
false positives by increasing the default size of the client filter we
generate. We can afford to increase the default size as it compresses
extremely well and gives us more accurate navigations. This carries over
the failing test case from https://github.com/vercel/next.js/pull/59293
which showed one case of false positive in a smaller filter.

Closes: https://github.com/vercel/next.js/issues/47486

Closes NEXT-2070

---------

Co-authored-by: Cris Vergara <cris.vergara@bookofthemonth.com>
2024-01-11 17:51:53 -08:00
vercel-release-bot
9fd25b4be2 v14.0.5-canary.53 2024-01-11 23:22:41 +00:00
Steven
4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00
Jiachi Liu
98b99e408b
Fix global-error for nested routes (#60539)
## What

This fixes when the deep nested routes throws a client side error, it
can still be caught by the `global-error.js`

## How

We should always resolve global-error from root app directory instead of
current route's layout. Also fixed a bad test before where the
gloabl-error.js is not located correctly


Fixes #53756
Closes NEXT-1760
2024-01-11 23:28:17 +01:00
Jacob Smith
e07161a563
chore(docs): correct subject-verb conjugation in Client Components doc (#60538) 2024-01-11 22:03:52 +00:00
Sam Ko
2138facc12
chore: update pull_request_approved workflow (#60537)
## Description
Updating
https://github.com/vercel/next.js/blob/canary/.github/workflows/pull_request_approved.yml
and related.

## Changes
- Fix path so workflow runs
- Update cron schedule to be on a weekly basis on instead of daily
- Update Slack channel

Closes NEXT-2068

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-01-11 13:34:42 -08:00
Jiachi Liu
9b7a5c0bbf
Handle non server action post requests safely (#60526)
When sending post requests but it's not server action, skip logging
warning or calling non-existed server action. Instead we only log the
warning like missnig headers for server actions when it's a server
action and call the action handler when it's decoded as a function

Fixes #58152 
Closes NEXT-1761
2024-01-11 21:03:43 +01:00
Leah
a1d0259ea0
chore(turbopack): check for unsupported next config options instead of supported ones (#58781)
### Why?

We have more supported options than unsupported ones.
Also new options added to next.js now should always be supported by
turbopack.


Closes PACK-2023
2024-01-11 18:46:01 +00:00
hugo-syn
601eaf0e87
chore: Fix multiple typos (#60531)
## For Contributors

Fix multiple typos
2024-01-11 10:44:55 -08:00
Will Binns-Smith
553aeaec0f
Turbopack hmr: record forwarded client spans (#60500)
This forwards spans created in the hmr client to the server-side tracer.

Test Plan: Loaded a page and verified navigation-to-hydration span is
recorded.


Closes PACK-2226
2024-01-11 10:09:26 -08:00
Tim Neutkens
5836a497da
Expand hydration error test to check recovery (#60423)
## What?

Adds an additional condition to the hydration error test to check if it
recovers correctly when making a change that removes the hydration
error.

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2033
2024-01-11 18:34:44 +01:00
Tobias Koppers
8d129534da
add retry logic to loadClientReferenceManifest (#56518)
### What?

This fixes a race condition where loadClientReferenceManifest reads an
empty file. All other manifest already have retries, this adds it for
the client reference manifest too for consistency.


Closes WEB-1727

---------

Co-authored-by: Tim Neutkens <tim@timneutkens.nl>
2024-01-11 16:25:05 +01:00
hugo-syn
b21a2b9445
chore: Fix typo s/desireable/desirable/ (#60518)
Fix typo s/desireable/desirable/ in 2 README.md files

Co-authored-by: Steven <steven@ceriously.com>
2024-01-11 14:43:13 +00:00
Sukka
b8b104506d
refactor(cna): make create-next-app even smaller and faster (#58030)
The PR further reduces the `create-next-app` installation size by
another 80 KiB:

- Replace the callback version of Node.js built-in `dns` API usage with
`dns/promise` + async/await
- Replace `got` w/ `fetch` since Next.js and `create-next-app` now
target Node.js 18.17.0+
- Download and extract the tar.gz file in the memory (without creating
temporary files). This improves the performance.
- Some other minor refinements.

Following these changes, the size of `dist/index.js` is now 536 KiB.
2024-01-11 09:40:29 -05:00
Takashi Sato
e6e6609674
Remove unused target: es5 from tsconfig.json in create-next-app (#60521)
fixes #58640

When there is no tsconfig.json, `npm run dev` generates `tsconfig.json`,
which has no `target` option.
But create-next-app generates `tsconfig.json` with `"target": "es5"`

Related to: #44567
Related to: #14390
2024-01-11 14:35:17 +00:00
Tim Neutkens
7c1d50a1bc
Revert "Revert "Skip webpack loader test in Turbopack"" (#60514)
Reverts vercel/next.js#60513

Closes NEXT-2056
2024-01-11 13:26:18 +01:00
Tim Neutkens
3a7bd19fe5
Revert "Skip webpack loader test in Turbopack" (#60513)
Reverts vercel/next.js#60509

Closes NEXT-2055
2024-01-11 13:14:16 +01:00
Tim Neutkens
f06685f420
Skip webpack loader test in Turbopack (#60509)
## What?

This test can be skipped as it checks a webpack loader. 

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the
PR.
- Read the Docs Contribution Guide to ensure your contribution follows
the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

### Adding or Updating Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Closes NEXT-2054
2024-01-11 13:10:21 +01:00
vercel-release-bot
d8691f5c06 v14.0.5-canary.52 2024-01-11 10:36:34 +00:00
Vercel Release Bot
356bba109e
Update Turbopack test manifest (#60506)
This auto-generated PR updates the integration test manifest used when
testing Turbopack.
2024-01-11 11:34:38 +01:00
Tobias Koppers
9cb0387681
Revert "feat(app-router): introduce experimental.missingSuspenseWithCSRBailout flag" (#60508)
Reverts vercel/next.js#57642

Closes PACK-2228
2024-01-11 11:32:40 +01:00