Skip to content

Commit

Permalink
Merge branch 'canary' into async-storage-test
Browse files Browse the repository at this point in the history
  • Loading branch information
kwonoj authored Sep 18, 2023
2 parents 47c1b5d + 1105501 commit c4395bf
Show file tree
Hide file tree
Showing 16 changed files with 75 additions and 48 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ jobs:
build: >-
set -e &&
apt update &&
apt install -y pkg-config xz-utils &&
apt install -y pkg-config xz-utils dav1d libdav1d-dev &&
rustup toolchain install "${RUST_TOOLCHAIN}" &&
rustup default "${RUST_TOOLCHAIN}" &&
rustup target add x86_64-unknown-linux-gnu &&
Expand All @@ -177,7 +177,7 @@ jobs:
build: >-
set -e &&
apk update &&
apk add --no-cache libc6-compat pkgconfig &&
apk add --no-cache libc6-compat pkgconfig dav1d libdav1d dav1d-dev &&
rustup toolchain install "${RUST_TOOLCHAIN}" &&
rustup default "${RUST_TOOLCHAIN}" &&
rustup target add x86_64-unknown-linux-musl &&
Expand All @@ -196,7 +196,7 @@ jobs:
build: >-
set -e &&
apt update &&
apt install -y pkg-config xz-utils &&
apt install -y pkg-config xz-utils dav1d libdav1d-dev &&
export JEMALLOC_SYS_WITH_LG_PAGE=16 &&
rustup toolchain install "${RUST_TOOLCHAIN}" &&
rustup default "${RUST_TOOLCHAIN}" &&
Expand All @@ -218,7 +218,7 @@ jobs:
build: >-
set -e &&
apk update &&
apk add --no-cache libc6-compat pkgconfig &&
apk add --no-cache libc6-compat pkgconfig dav1d libdav1d dav1d-dev &&
export JEMALLOC_SYS_WITH_LG_PAGE=16 &&
npm i -g "@napi-rs/cli@${NAPI_CLI_VERSION}" &&
rustup toolchain install "${RUST_TOOLCHAIN}" &&
Expand Down
7 changes: 7 additions & 0 deletions packages/next-swc/crates/napi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ native-tls = ["next-dev/native-tls"]
rustls-tls = ["next-dev/rustls-tls"]
serializable = ["next-dev/serializable"]
image-webp = ["next-core/image-webp"]
image-avif = ["next-core/image-avif"]
# Enable all the available image codec support.
# Currently this is identical to `image-webp`, as we are not able to build
# other codecs easily yet.
image-extended = [
"image-webp",
]

# Enable dhat profiling allocator for heap profiling.
__internal_dhat-heap = ["dhat"]
Expand Down
1 change: 1 addition & 0 deletions packages/next-swc/crates/next-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ native-tls = ["turbopack-binding/__turbo_tasks_fetch_native-tls"]
rustls-tls = ["turbopack-binding/__turbo_tasks_fetch_rustls-tls"]
plugin = ["turbopack-binding/__swc_core_binding_napi_plugin"]
image-webp = ["turbopack-binding/__turbopack_image_webp"]
image-avif = ["turbopack-binding/__turbopack_image_avif"]

# enable "HMR" for embedded assets
dynamic_embed_contents = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,16 @@ pub fn get_next_image_rule() -> ModuleRule {
ModuleRuleCondition::ResourcePathEndsWith(".jpg".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".jpeg".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".png".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".webp".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".avif".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".apng".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".gif".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".svg".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".bmp".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".ico".to_string()),
// These images may not be encoded by turbopack depends on the feature availability
// As turbopack-image returns raw bytes if compile time codec support is not enabled:
// ref:https://github.com/vercel/turbo/pull/5967
ModuleRuleCondition::ResourcePathEndsWith(".webp".to_string()),
ModuleRuleCondition::ResourcePathEndsWith(".avif".to_string()),
]),
vec![ModuleRuleEffect::ModuleType(ModuleType::Custom(
Vc::upcast(StructuredImageModuleType::new(Value::new(
Expand Down
4 changes: 2 additions & 2 deletions packages/next-swc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"private": true,
"scripts": {
"clean": "node ../../scripts/rm.mjs native",
"build-native": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features plugin,rustls-tls,image-webp --js false native",
"build-native-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --features plugin,rustls-tls,image-webp,tracing/release_max_level_info --js false native",
"build-native": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features plugin,rustls-tls,image-extended --js false native",
"build-native-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --features plugin,rustls-tls,image-extended,tracing/release_max_level_info --js false native",
"build-native-no-plugin": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features image-webp --js false native",
"build-native-no-plugin-woa": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --cargo-flags=--no-default-features --features native-tls,image-webp --js false native",
"build-native-no-plugin-woa-release": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --release --cargo-flags=--no-default-features --features native-tls,image-webp,tracing/release_max_level_info --js false native",
Expand Down
5 changes: 4 additions & 1 deletion test/development/basic/barrel-optimization.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { join } from 'path'
import { createNext, FileRef } from 'e2e-utils'
import { NextInstance } from 'test/lib/next-modes/base'
import { shouldRunTurboDevTest } from '../../lib/next-test-utils'

describe('optimizePackageImports', () => {
let next: NextInstance
Expand All @@ -27,7 +28,9 @@ describe('optimizePackageImports', () => {
scripts: {
setup: `cp -r ./node_modules_bak/* ./node_modules`,
build: `yarn setup && next build`,
dev: `yarn setup && next dev`,
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { createNextDescribe } from 'e2e-utils'
import https from 'https'
import { renderViaHTTP } from 'next-test-utils'
import { renderViaHTTP, shouldRunTurboDevTest } from 'next-test-utils'

createNextDescribe(
'experimental-https-server (generated certificate)',
{
files: __dirname,
startCommand: 'yarn next dev --experimental-https',
startCommand: `yarn next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
} --experimental-https`,
skipStart: !process.env.CI,
},
({ next }) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { createNextDescribe } from 'e2e-utils'
import https from 'https'
import { renderViaHTTP } from 'next-test-utils'
import { renderViaHTTP, shouldRunTurboDevTest } from 'next-test-utils'

createNextDescribe(
'experimental-https-server (provided certificate)',
{
files: __dirname,
startCommand:
'yarn next dev --experimental-https --experimental-https-key ./certificates/localhost-key.pem --experimental-https-cert ./certificates/localhost.pem',
startCommand: `yarn next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
} --experimental-https --experimental-https-key ./certificates/localhost-key.pem --experimental-https-cert ./certificates/localhost.pem`,
},
({ next }) => {
const agent = new https.Agent({
Expand Down
10 changes: 6 additions & 4 deletions test/development/typescript-auto-install/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createNext } from 'e2e-utils'
import { NextInstance } from 'test/lib/next-modes/base'
import { check, renderViaHTTP } from 'next-test-utils'
import { check, renderViaHTTP, shouldRunTurboDevTest } from 'next-test-utils'
import webdriver from 'next-webdriver'
import stripAnsi from 'strip-ansi'

Expand All @@ -11,9 +11,9 @@ describe('typescript-auto-install', () => {
next = await createNext({
files: {
'pages/index.js': `
export default function Page() {
export default function Page() {
return <p>hello world</p>
}
}
`,
},
env: {
Expand All @@ -26,7 +26,9 @@ describe('typescript-auto-install', () => {
RUN_ID: '',
BUILD_NUMBER: '',
},
startCommand: 'yarn next dev',
startCommand: `yarn next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
installCommand: 'yarn',
dependencies: {},
})
Expand Down
5 changes: 4 additions & 1 deletion test/e2e/app-dir/app-external/app-external.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { createNextDescribe } from 'e2e-utils'
import { shouldRunTurboDevTest } from '../../../lib/next-test-utils'

async function resolveStreamResponse(response: any, onData?: any) {
let result = ''
Expand Down Expand Up @@ -27,7 +28,9 @@ createNextDescribe(
scripts: {
setup: `cp -r ./node_modules_bak/* ./node_modules`,
build: 'yarn setup && next build',
dev: 'yarn setup && next dev',
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createNext } from 'e2e-utils'
import { NextInstance } from 'test/lib/next-modes/base'
import { fetchViaHTTP } from 'next-test-utils'
import { fetchViaHTTP, shouldRunTurboDevTest } from 'next-test-utils'

describe('Edge compiler module exports preference', () => {
let next: NextInstance
Expand Down Expand Up @@ -38,7 +38,9 @@ describe('Edge compiler module exports preference', () => {
scripts: {
setup: `cp -r ./my-lib ./node_modules`,
build: 'yarn setup && next build',
dev: 'yarn setup && next dev',
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { createNextDescribe } from 'e2e-utils'
import { shouldRunTurboDevTest } from '../../lib/next-test-utils'

createNextDescribe(
'edge-runtime uses edge-light import specifier for packages',
Expand All @@ -8,7 +9,9 @@ createNextDescribe(
scripts: {
setup: 'cp -r ./node_modules_bak/* ./node_modules',
build: 'yarn setup && next build',
dev: 'yarn setup && next dev',
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
11 changes: 9 additions & 2 deletions test/e2e/middleware-general/test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ import fs from 'fs-extra'
import { join } from 'path'
import webdriver from 'next-webdriver'
import { NextInstance } from 'test/lib/next-modes/base'
import { check, fetchViaHTTP, waitFor } from 'next-test-utils'
import {
check,
fetchViaHTTP,
shouldRunTurboDevTest,
waitFor,
} from 'next-test-utils'
import { createNext, FileRef } from 'e2e-utils'

const urlsError = 'Please use only absolute URLs'
Expand Down Expand Up @@ -46,7 +51,9 @@ describe('Middleware Runtime', () => {
scripts: {
setup: `cp -r ./shared-package ./node_modules`,
build: 'yarn setup && next build',
dev: 'yarn setup && next dev',
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
5 changes: 4 additions & 1 deletion test/e2e/transpile-packages/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import path from 'path'
import { createNext, FileRef } from 'e2e-utils'
import { NextInstance } from 'test/lib/next-modes/base'
import webdriver from 'next-webdriver'
import { shouldRunTurboDevTest } from '../../lib/next-test-utils'

describe('transpile packages', () => {
let next: NextInstance
Expand All @@ -23,7 +24,9 @@ describe('transpile packages', () => {
scripts: {
setup: `cp -r ./node_modules_bak/* ./node_modules`,
build: 'yarn setup && next build',
dev: 'yarn setup && next dev',
dev: `yarn setup && next ${
shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'
}`,
start: 'next start',
},
},
Expand Down
31 changes: 9 additions & 22 deletions test/lib/next-test-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -781,28 +781,15 @@ export async function hasRedbox(browser: BrowserInterface, expected = true) {
export async function getRedboxHeader(browser: BrowserInterface) {
return retry(
() => {
if (shouldRunTurboDevTest()) {
return evaluate(browser, () => {
const portal = [].slice
.call(document.querySelectorAll('nextjs-portal'))
.find((p) =>
p.shadowRoot.querySelector('[data-nextjs-turbo-dialog-body]')
)
const root = portal?.shadowRoot
return root?.querySelector('[data-nextjs-turbo-dialog-body]')
?.innerText
})
} else {
return evaluate(browser, () => {
const portal = [].slice
.call(document.querySelectorAll('nextjs-portal'))
.find((p) =>
p.shadowRoot.querySelector('[data-nextjs-dialog-header]')
)
const root = portal?.shadowRoot
return root?.querySelector('[data-nextjs-dialog-header]')?.innerText
})
}
return evaluate(browser, () => {
const portal = [].slice
.call(document.querySelectorAll('nextjs-portal'))
.find((p) =>
p.shadowRoot.querySelector('[data-nextjs-dialog-header]')
)
const root = portal?.shadowRoot
return root?.querySelector('[data-nextjs-dialog-header]')?.innerText
})
},
10000,
500,
Expand Down
3 changes: 2 additions & 1 deletion test/production/pnpm-support/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
initNextServerScript,
killApp,
renderViaHTTP,
shouldRunTurboDevTest,
} from 'next-test-utils'

describe('pnpm support', () => {
Expand Down Expand Up @@ -72,7 +73,7 @@ describe('pnpm support', () => {
},
packageJson: {
scripts: {
dev: 'next dev',
dev: `next ${shouldRunTurboDevTest() ? 'dev --turbo' : 'dev'}`,
build: 'next build',
start: 'next start',
},
Expand Down

0 comments on commit c4395bf

Please sign in to comment.