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

Disallow iSSG revalidation period of zero #9280

Merged
merged 3 commits into from
Nov 1, 2019

Conversation

Timer
Copy link
Member

@Timer Timer commented Nov 1, 2019

Prior to this pull request, we'd allow users to set a revalidation period of 0.

This is problematic because it implies the page cannot tolerate displaying stale data, even though (by design) stale data would be presented during revalidation.

Additionally, in the HTTP spec, a max-age of 0 implies the data must be revalidated before the next request. This is simply not the case.

To manage user's expectations, we're going to enforce a minimum value of one second. Most (complex) server-side renders probably take this long anyway, so the difference between 1 and 0 is mostly moot.

@Timer Timer added this to the 9.1.3 milestone Nov 1, 2019
@ijjk
Copy link
Member

ijjk commented Nov 1, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
buildDuration 12.8s 12.7s -127ms
nodeModulesSize 48.5 MB 48.5 MB ⚠️ +360 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.87 kB 5.87 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..f81b4213a.js 28.6 kB 28.6 kB
de003c3a9d30..213a.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.29 kB 5.29 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..82.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
index.html 3.94 kB 3.94 kB
index.html gzip 1 kB 1 kB
link.html 4.47 kB 4.47 kB
link.html gzip 1.08 kB 1.08 kB
withRouter.html 4.47 kB 4.47 kB
withRouter.html gzip 1.07 kB 1.07 kB
Overall change 12.9 kB 12.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
buildDuration 13.1s 13.3s ⚠️ +112ms
nodeModulesSize 48.5 MB 48.5 MB ⚠️ +360 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.87 kB 5.87 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..f81b4213a.js 28.6 kB 28.6 kB
de003c3a9d30..213a.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.29 kB 5.29 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..82.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_error.js 246 kB 246 kB ⚠️ +205 B
_error.js gzip 65.3 kB 65.4 kB ⚠️ +50 B
hooks.html 4.08 kB 4.08 kB
hooks.html gzip 1.03 kB 1.03 kB
index.js 247 kB 247 kB ⚠️ +205 B
index.js gzip 65.5 kB 65.5 kB ⚠️ +51 B
link.js 279 kB 279 kB ⚠️ +205 B
link.js gzip 74.4 kB 74.4 kB ⚠️ +53 B
routerDirect.js 272 kB 272 kB ⚠️ +205 B
routerDirect.js gzip 72.4 kB 72.5 kB ⚠️ +55 B
withRouter.js 272 kB 272 kB ⚠️ +205 B
withRouter.js gzip 72.6 kB 72.6 kB ⚠️ +52 B
Overall change 1.32 MB 1.32 MB ⚠️ +1.02 kB

Commit: 378e196

@ijjk
Copy link
Member

ijjk commented Nov 1, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
buildDuration 13.6s 13.4s -185ms
nodeModulesSize 48.5 MB 48.5 MB ⚠️ +360 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.87 kB 5.87 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..f81b4213a.js 28.6 kB 28.6 kB
de003c3a9d30..213a.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.29 kB 5.29 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..82.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
index.html 3.94 kB 3.94 kB
index.html gzip 1 kB 1 kB
link.html 4.47 kB 4.47 kB
link.html gzip 1.08 kB 1.08 kB
withRouter.html 4.47 kB 4.47 kB
withRouter.html gzip 1.07 kB 1.07 kB
Overall change 12.9 kB 12.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
buildDuration 13.8s 13.8s -11ms
nodeModulesSize 48.5 MB 48.5 MB ⚠️ +360 B
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.87 kB 5.87 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..f81b4213a.js 28.6 kB 28.6 kB
de003c3a9d30..213a.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.29 kB 5.29 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..82.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary Timer/next.js disallow-revalidate-0 Change
_error.js 246 kB 246 kB ⚠️ +205 B
_error.js gzip 65.3 kB 65.4 kB ⚠️ +50 B
hooks.html 4.08 kB 4.08 kB
hooks.html gzip 1.03 kB 1.03 kB
index.js 247 kB 247 kB ⚠️ +205 B
index.js gzip 65.5 kB 65.5 kB ⚠️ +51 B
link.js 279 kB 279 kB ⚠️ +205 B
link.js gzip 74.4 kB 74.4 kB ⚠️ +53 B
routerDirect.js 272 kB 272 kB ⚠️ +205 B
routerDirect.js gzip 72.4 kB 72.5 kB ⚠️ +55 B
withRouter.js 272 kB 272 kB ⚠️ +205 B
withRouter.js gzip 72.6 kB 72.6 kB ⚠️ +52 B
Overall change 1.32 MB 1.32 MB ⚠️ +1.02 kB

Commit: f130072

@Timer Timer merged commit aef927d into vercel:canary Nov 1, 2019
@Timer Timer deleted the disallow-revalidate-0 branch November 1, 2019 19:38
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
2 participants