Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Normalize missing optional value on Vercel #15593

Merged
merged 5 commits into from
Jul 29, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Jul 28, 2020

This updates collecting dynamic route params on Vercel to make sure that missing optional dynamic routes are undefined. Additional tests for this mode have also been added to ensure the params are being collected properly

Closes: #15579

@ijjk
Copy link
Member Author

ijjk commented Jul 28, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 11.8s 11.8s -19ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +584 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
/ failed reqs 0 0
/ total time (seconds) 2.006 2.04 ⚠️ +0.03
/ avg req/sec 1246.05 1225.77 ⚠️ -20.28
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.136 1.097 -0.04
/error-in-render avg req/sec 2200.09 2279.39 +79.3
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-ddd176e..5566.js gzip 1.29 kB 1.29 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-69bc264..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 275 B 275 B
_buildManife..dule.js gzip 281 B 281 B
Overall change 556 B 556 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
index.html gzip 947 B 947 B
link.html gzip 951 B 951 B
withRouter.html gzip 937 B 937 B
Overall change 2.83 kB 2.83 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 13s 13s -61ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +584 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-ddd176e..5566.js gzip 1.29 kB 1.29 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-69bc264..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 275 B 275 B
_buildManife..dule.js gzip 281 B 281 B
Overall change 556 B 556 B
Serverless bundles
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_error.js 1.02 MB 1.02 MB
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.02 MB 1.02 MB
link.js 1.06 MB 1.06 MB
routerDirect.js 1.05 MB 1.05 MB
withRouter.js 1.05 MB 1.05 MB
Overall change 5.2 MB 5.2 MB
Commit: c25d96e

@ijjk ijjk requested a review from Timer July 28, 2020 19:44
@ijjk
Copy link
Member Author

ijjk commented Jul 28, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 11.2s 11.3s ⚠️ +129ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +704 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
/ failed reqs 0 0
/ total time (seconds) 2.176 2.055 -0.12
/ avg req/sec 1148.86 1216.49 +67.63
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.242 1.306 ⚠️ +0.06
/error-in-render avg req/sec 2013.22 1914.37 ⚠️ -98.85
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-ddd176e..5566.js gzip 1.29 kB 1.29 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-69bc264..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 275 B 275 B
_buildManife..dule.js gzip 281 B 281 B
Overall change 556 B 556 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
index.html gzip 947 B 947 B
link.html gzip 951 B 951 B
withRouter.html gzip 937 B 937 B
Overall change 2.83 kB 2.83 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 12.6s 12.4s -148ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +704 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-ddd176e..5566.js gzip 1.29 kB 1.29 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-69bc264..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 275 B 275 B
_buildManife..dule.js gzip 281 B 281 B
Overall change 556 B 556 B
Serverless bundles Overall decrease ✓
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_error.js 1.02 MB 1.02 MB -43 B
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.02 MB 1.02 MB -43 B
link.js 1.06 MB 1.06 MB -43 B
routerDirect.js 1.05 MB 1.05 MB -43 B
withRouter.js 1.05 MB 1.05 MB -43 B
Overall change 5.2 MB 5.2 MB -215 B
Commit: 6bbb191

@ijjk
Copy link
Member Author

ijjk commented Jul 28, 2020

Failing test suites

Commit: 6bbb191

test/integration/error-is-clickable/test/index.test.js

  • Clickable error link > Shows error which is clickable and redirects
Expand output

● Clickable error link › Shows error which is clickable and redirects

JavascriptError: javascript error: Cannot read property 'click' of null
  (Session info: headless chrome=84.0.4147.89)

  22 |     const browser = await webdriver(appPort, '/first')
  23 | 
> 24 |     await browser.eval(`(function () {
     |     ^
  25 |           document.querySelector("nextjs-portal")
  26 |           .shadowRoot
  27 |           .querySelector("#nextjs__container_errors_desc > a").click()

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/error-is-clickable/test/index.test.js:24:5)

● Clickable error link › Shows error which is clickable and redirects

thrown: "Exceeded timeout of 300000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

  19 |   afterAll(() => killApp(app))
  20 | 
> 21 |   it('Shows error which is clickable and redirects', async () => {
     |   ^
  22 |     const browser = await webdriver(appPort, '/first')
  23 | 
  24 |     await browser.eval(`(function () {

  at integration/error-is-clickable/test/index.test.js:21:3
  at Object.<anonymous> (integration/error-is-clickable/test/index.test.js:12:1)

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ijjk
Copy link
Member Author

ijjk commented Jul 29, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 14.1s 13.6s -459ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +704 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
/ failed reqs 0 0
/ total time (seconds) 2.593 2.553 -0.04
/ avg req/sec 964.2 979.23 +15.03
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.574 1.489 -0.08
/error-in-render avg req/sec 1588.59 1678.52 +89.93
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-6f8445b..99e1.js gzip 1.3 kB 1.3 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.72 kB 7.72 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-91516ae..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 274 B 274 B
_buildManife..dule.js gzip 282 B 282 B
Overall change 556 B 556 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
index.html gzip 947 B 947 B
link.html gzip 952 B 952 B
withRouter.html gzip 937 B 937 B
Overall change 2.84 kB 2.84 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
buildDuration 15.5s 15.2s -351ms
nodeModulesSize 65.5 MB 65.5 MB ⚠️ +704 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..b7a9.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
main-c5a676d..82de.js gzip 6.75 kB 6.75 kB
webpack-488d..c0e7.js gzip 751 B 751 B
Overall change 56.8 kB 56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
677f882d2ed8..dule.js gzip 6.09 kB 6.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
main-079bffd..dule.js gzip 5.83 kB 5.83 kB
webpack-4f62..dule.js gzip 751 B 751 B
Overall change 51.8 kB 51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
polyfills-05..1236.js gzip 30.8 kB 30.8 kB
Overall change 30.8 kB 30.8 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-8f5f611..1f7b.js gzip 1.28 kB 1.28 kB
_error-a98d9..5cb7.js gzip 3.45 kB 3.45 kB
hooks-f7f3d0..7465.js gzip 887 B 887 B
index-08fb3f..c0e9.js gzip 227 B 227 B
link-6f8445b..99e1.js gzip 1.3 kB 1.3 kB
routerDirect..8aa1.js gzip 284 B 284 B
withRouter-f..e777.js gzip 284 B 284 B
Overall change 7.72 kB 7.72 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_app-669dbe5..dule.js gzip 626 B 626 B
_error-d5979..dule.js gzip 2.3 kB 2.3 kB
hooks-805c40..dule.js gzip 387 B 387 B
index-6ba5a4..dule.js gzip 226 B 226 B
link-91516ae..dule.js gzip 1.25 kB 1.25 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-d..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_buildManifest.js gzip 274 B 274 B
_buildManife..dule.js gzip 282 B 282 B
Overall change 556 B 556 B
Serverless bundles Overall decrease ✓
vercel/next.js canary ijjk/next.js normalize/missing-optional-value Change
_error.js 1.02 MB 1.02 MB -43 B
404.html 4.18 kB 4.18 kB
hooks.html 3.82 kB 3.82 kB
index.js 1.02 MB 1.02 MB -43 B
link.js 1.06 MB 1.06 MB -43 B
routerDirect.js 1.05 MB 1.05 MB -43 B
withRouter.js 1.05 MB 1.05 MB -43 B
Overall change 5.2 MB 5.2 MB -215 B
Commit: e9f1fbc

@kodiakhq kodiakhq bot merged commit dd6a089 into vercel:canary Jul 29, 2020
@ijjk ijjk deleted the normalize/missing-optional-value branch July 29, 2020 14:21
LauraBeatris pushed a commit to LauraBeatris/next.js that referenced this pull request Sep 1, 2020
This updates collecting dynamic route params on Vercel to make sure that missing optional dynamic routes are undefined. Additional tests for this mode have also been added to ensure the params are being collected properly

Closes: vercel#15579
@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
3 participants