Commit graph

626 commits

Author SHA1 Message Date
vercel-release-bot
b27aa57908 v13.5.7-canary.29 2023-10-26 01:57:13 +00:00
vercel-release-bot
1df027f46e v13.5.7-canary.28 2023-10-26 01:01:59 +00:00
vercel-release-bot
7274296681 v13.5.7-canary.27 2023-10-25 20:35:14 +00:00
vercel-release-bot
2b400f8fc3 v13.5.7-canary.26 2023-10-25 20:06:39 +00:00
vercel-release-bot
1d8764cd1b v13.5.7-canary.25 2023-10-24 23:22:49 +00:00
vercel-release-bot
2b2ad9c7c4 v13.5.7-canary.24 2023-10-24 22:05:40 +00:00
vercel-release-bot
2fc2a52652 v13.5.7-canary.23 2023-10-24 08:22:51 +00:00
vercel-release-bot
c77fec827f v13.5.7-canary.22 2023-10-24 05:34:15 +00:00
vercel-release-bot
96337342e4 v13.5.7-canary.21 2023-10-24 03:58:21 +00:00
vercel-release-bot
dc7b5d806e v13.5.7-canary.20 2023-10-24 00:35:28 +00:00
vercel-release-bot
7c803a762e v13.5.7-canary.19 2023-10-23 23:24:21 +00:00
vercel-release-bot
8fb5c8517f v13.5.7-canary.18 2023-10-23 22:17:01 +00:00
vercel-release-bot
799e6ca65a v13.5.7-canary.17 2023-10-23 18:13:11 +00:00
vercel-release-bot
dc88b413f8 v13.5.7-canary.16 2023-10-23 03:07:00 +00:00
vercel-release-bot
2762511796 v13.5.7-canary.15 2023-10-22 23:22:41 +00:00
vercel-release-bot
e5c082418d v13.5.7-canary.14 2023-10-21 23:23:17 +00:00
vercel-release-bot
d0a1199a36 v13.5.7-canary.13 2023-10-20 23:23:41 +00:00
Steven
4d31506960
Revert "Add retry for fetching subsetted Google Fonts" (#57154)
Reverts vercel/next.js#56583 due to missing dependency

```
app/layout.jsx
An error occured in 'next/font'.
Error: Cannot find module 'async-retry'
Require stack:
- node_modules/•pnpm/next@13.5.7-canary.12_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/font/dist/google/retry.js
- node_modules/-pnpm/next@13.5.7-canary-12_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/font/dist/google/fetch-css-from-google-fonts.js
```
2023-10-20 22:14:24 +00:00
vercel-release-bot
2b60475c2b v13.5.7-canary.12 2023-10-20 17:19:41 +00:00
berlysia
c84f5ed794
Add retry for fetching subsetted Google Fonts (#56583)
### What?
Add the same re-retrieval process for subseted font files of Google Font as for CSS files.

+ make use of [async-retry](https://github.com/vercel/async-retry)

### Why?
It was reported in #45080 that Japanese fonts such as Noto Sans JP were frequently `Failed to fetch`.
A retry process was added in #51890, but it did not resolve the issue completely ( https://github.com/vercel/next.js/pull/51890#issuecomment-1614558064 ).

Here is my reproduction code with 13.5.5-canary.4 (please run locally).
https://stackblitz.com/edit/stackblitz-starters-n8zxlq?file=app%2Fpage.tsx

<details>
<summary>And my local error log is here(folded)</summary>

```
$ npm run -- dev

> nextjs@0.1.0 dev
> next dev

 ⚠ Port 3000 is in use, trying 3001 instead.
  ▲ Next.js 13.5.5-canary.4
  - Local:        http://localhost:3001

 ✓ Ready in 23.9s
 ○ Compiling /page ...
FetchError: request to https://fonts.gstatic.com/s/notosansjp/v52/-F6jfjtqLzI2JPCgQBnw7HFyzSD-AsregP8VFBEj757Y0rw_qMHVdbR2L8Y9QTJ1LwkRmR5GprQAe69m.4.woff2 failed, reason: 
    at ClientRequest.<anonymous> (/mnt/c/Users/berlysia/Downloads/stackblitz-starters-n8zxlq/node_modules/next/dist/compiled/node-fetch/index.js:1:65756)
    at ClientRequest.emit (node:events:514:28)
    at TLSSocket.socketErrorListener (node:_http_client:495:9)
    at TLSSocket.emit (node:events:514:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  type: 'system',
  errno: 'ETIMEDOUT',
  code: 'ETIMEDOUT'
}
 ⨯ Failed to download `Noto Sans JP` from Google Fonts. Using fallback font instead.

Failed to fetch `Noto Sans JP` from Google Fonts.}
FetchError: request to https://fonts.gstatic.com/s/notosansjp/v52/-F6jfjtqLzI2JPCgQBnw7HFyzSD-AsregP8VFBEj757Y0rw_qMHVdbR2L8Y9QTJ1LwkRmR5GprQAe69m.28.woff2 failed, reason: 
    at ClientRequest.<anonymous> (/mnt/c/Users/berlysia/Downloads/stackblitz-starters-n8zxlq/node_modules/next/dist/compiled/node-fetch/index.js:1:65756)
    at ClientRequest.emit (node:events:514:28)
    at TLSSocket.socketErrorListener (node:_http_client:495:9)
    at TLSSocket.emit (node:events:514:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at processTicksAndRejections (node:internal/process/task_queues:82:21)
    at runNextTicks (node:internal/process/task_queues:64:3)
    at listOnTimeout (node:internal/timers:540:9)
    at process.processTimers (node:internal/timers:514:7) {
  type: 'system',
  errno: 'ETIMEDOUT',
  code: 'ETIMEDOUT'
}
...(15 errors emitted)
```
</details>

I've found that the issue is not limited to fetching CSS, fetching subset font files is also failing.
By adding retry handling to the fetch of individual subseted font files as well, I (almost) never see `Failed to fetch` anymore.

The issue tends to become more apparent when downloading a larger number of subsetted fonts.
This suggests that the problem is more likely to occur with larger fonts, such as those designed for CJK languages.

### How?
Add the same re-retrieval process for subseted font files of Google Font as for CSS files.


Related to #51890 #53239 #45080 #53279
2023-10-20 17:10:53 +00:00
Vercel Release Bot
6ad017d23f
Update font data (#57094)
This auto-generated PR updates font data with latest available
2023-10-20 04:44:45 +00:00
vercel-release-bot
e437f72662 v13.5.7-canary.11 2023-10-19 23:22:57 +00:00
vercel-release-bot
143d79f733 v13.5.7-canary.10 2023-10-19 22:41:38 +00:00
vercel-release-bot
ed6b60c55a v13.5.7-canary.9 2023-10-19 19:15:58 +00:00
Jiachi Liu
a6aae865c4
Bump packages version to match canary versions (#57071)
We released 13.5.6 as stable patch, need to bump the canary version
higher than stable to match the semantics
2023-10-19 12:09:06 -07:00
Balázs Orbán
33db463fe4
chore: upgrade jest (#56909)
### What?

Upgrade jest to its latest version

### Why?

#56899 fails because historically Jest stripped the globals in Node.js, but 28+ isn't doing that anymore. If we upgrade, we don't have to keep track of Node.js globals and when they are added. This will be useful in removing even more polyfills for things that are natively shipped in Node.js now.

### How?

Jest 29 introduced a change to the snapshot format: https://jestjs.io/blog/2022/08/25/jest-29

First, I tried setting the old compat option to not require updating snapshots, but some tests were still failing: https://dev.azure.com/nextjs/next.js/_build/results?buildId=70633&view=logs&j=8af7cf9c-43a1-584d-6f5c-57bad8880974&t=7ae70e63-3625-50f4-6764-5b3e72b4bd7a&l=273 So going through the pain now instead.
2023-10-19 17:38:24 +00:00
vercel-release-bot
dc7bc70d4d v13.5.6-canary.8 2023-10-19 16:49:59 +00:00
Quentin
abe8b1e0a8
Improve performance of String.prototype.split uses (#56746)
This PR adds the optional `limit` parameter on String.prototype.split uses.

> If provided, splits the string at each occurrence of the specified separator, but stops when limit entries have been placed in the array. Any leftover text is not included in the array at all.

[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split#syntax)

While the performance gain may not be significant for small texts, it can be huge for large ones.

I made a benchmark on the following repository : https://github.com/Yovach/benchmark-nodejs

On my machine, I get the following results:
`node index.js`
> normal 1: 570.092ms
> normal 50: 2.284s
> normal 100: 3.543s

`node index-optimized.js`
> optmized 1: 644.301ms
> optmized 50: 929.39ms
> optmized 100: 1.020s

The "benchmarks" numbers are : 
- "lorem-1" file contains 1 paragraph of "lorem ipsum"
- "lorem-50" file contains 50 paragraphes of "lorem ipsum"
- "lorem-100" file contains 100 paragraphes of "lorem ipsum"
2023-10-19 00:25:15 +00:00
vercel-release-bot
4c2b34ea7c v13.5.6-canary.7 2023-10-18 23:24:25 +00:00
vercel-release-bot
2c8606e596 v13.5.6-canary.6 2023-10-18 06:59:43 +00:00
vercel-release-bot
318cbbf9b1 v13.5.6-canary.5 2023-10-17 23:22:33 +00:00
vercel-release-bot
f19dabbc6d v13.5.6-canary.4 2023-10-17 21:22:19 +00:00
vercel-release-bot
df1d4a16aa v13.5.6-canary.3 2023-10-17 16:36:35 +00:00
vercel-release-bot
ee9bee96af v13.5.6-canary.2 2023-10-17 13:26:58 +00:00
vercel-release-bot
24a146680f v13.5.6-canary.1 2023-10-16 23:24:30 +00:00
vercel-release-bot
3c7d15b992 v13.5.6-canary.0 2023-10-16 22:04:56 +00:00
vercel-release-bot
54145b49f9 v13.5.5 2023-10-16 14:54:10 +00:00
vercel-release-bot
1609da2d95 v13.5.5-canary.19 2023-10-16 13:44:03 +00:00
vercel-release-bot
c1c419fde0 v13.5.5-canary.18 2023-10-16 12:28:32 +00:00
vercel-release-bot
e5ad069c6a v13.5.5-canary.17 2023-10-15 23:22:55 +00:00
vercel-release-bot
297efa7bc9 v13.5.5-canary.16 2023-10-14 23:22:14 +00:00
vercel-release-bot
46d56c6bca v13.5.5-canary.15 2023-10-13 23:22:28 +00:00
vercel-release-bot
f3973d84a5 v13.5.5-canary.14 2023-10-13 22:44:36 +00:00
vercel-release-bot
f95a11f804 v13.5.5-canary.13 2023-10-13 16:34:44 +00:00
vercel-release-bot
489a528003 v13.5.5-canary.12 2023-10-13 13:23:54 +00:00
vercel-release-bot
e0cd06531b v13.5.5-canary.11 2023-10-12 23:23:04 +00:00
vercel-release-bot
f306108b37 v13.5.5-canary.10 2023-10-12 23:09:37 +00:00
vercel-release-bot
8013ef7372 v13.5.5-canary.9 2023-10-12 17:27:01 +00:00
vercel-release-bot
7d8cf1f9f3 v13.5.5-canary.8 2023-10-12 00:58:02 +00:00
vercel-release-bot
ec0a8dac03 v13.5.5-canary.7 2023-10-11 13:05:55 +00:00