Skip to content

Add experimental Next.js plugin version locking #19084

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

Merged
merged 2 commits into from
Nov 12, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Nov 12, 2020

This adds the version locking described in #18673

Closes: #18673

@vercel vercel bot temporarily deployed to Preview November 12, 2020 02:33 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 12, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js plugin-versions Change
buildDuration 14.3s 13.7s -544ms
nodeModulesSize 84.8 MB 84.8 MB ⚠️ +927 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js plugin-versions Change
/ failed reqs 0 0
/ total time (seconds) 2.52 2.481 -0.04
/ avg req/sec 992.11 1007.79 +15.68
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.399 1.34 -0.06
/error-in-render avg req/sec 1787.49 1865.72 +78.23
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..3c49.js gzip 12.6 kB 12.6 kB
framework.HASH.js gzip 39 kB 39 kB
main-15d43b2..eae1.js gzip 6.48 kB 6.48 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.8 kB 58.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..dule.js gzip 8.22 kB 8.22 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-351dac8..dule.js gzip 5.58 kB 5.58 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.5 kB 53.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js plugin-versions Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js plugin-versions Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js plugin-versions Change
index.html gzip 970 B 970 B
link.html gzip 975 B 975 B
withRouter.html gzip 963 B 963 B
Overall change 2.91 kB 2.91 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js plugin-versions Change
buildDuration 15.5s 15.7s ⚠️ +208ms
nodeModulesSize 84.8 MB 84.8 MB ⚠️ +927 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..3c49.js gzip 12.6 kB 12.6 kB
framework.HASH.js gzip 39 kB 39 kB
main-15d43b2..eae1.js gzip 6.48 kB 6.48 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.8 kB 58.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..dule.js gzip 8.22 kB 8.22 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-351dac8..dule.js gzip 5.58 kB 5.58 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.5 kB 53.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js plugin-versions Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js plugin-versions Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ijjk/next.js plugin-versions Change
_error.js 916 kB 916 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 916 kB 916 kB
link.js 974 kB 974 kB
routerDirect.js 967 kB 967 kB
withRouter.js 967 kB 967 kB
Overall change 4.75 MB 4.75 MB
Commit: e654294

@ijjk
Copy link
Member Author

ijjk commented Nov 12, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js plugin-versions Change
buildDuration 13.2s 13.3s ⚠️ +67ms
nodeModulesSize 84.8 MB 84.8 MB ⚠️ +927 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js plugin-versions Change
/ failed reqs 0 0
/ total time (seconds) 2.387 2.372 -0.02
/ avg req/sec 1047.32 1053.85 +6.53
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.263 1.27 ⚠️ +0.01
/error-in-render avg req/sec 1979.52 1967.83 ⚠️ -11.69
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..3c49.js gzip 12.6 kB 12.6 kB
framework.HASH.js gzip 39 kB 39 kB
main-15d43b2..eae1.js gzip 6.48 kB 6.48 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.8 kB 58.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..dule.js gzip 8.22 kB 8.22 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-351dac8..dule.js gzip 5.58 kB 5.58 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.5 kB 53.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js plugin-versions Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js plugin-versions Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js plugin-versions Change
index.html gzip 970 B 970 B
link.html gzip 975 B 975 B
withRouter.html gzip 963 B 963 B
Overall change 2.91 kB 2.91 kB

Serverless Mode
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js plugin-versions Change
buildDuration 14.9s 15s ⚠️ +151ms
nodeModulesSize 84.8 MB 84.8 MB ⚠️ +927 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..3c49.js gzip 12.6 kB 12.6 kB
framework.HASH.js gzip 39 kB 39 kB
main-15d43b2..eae1.js gzip 6.48 kB 6.48 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.8 kB 58.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
677f882d2ed8..dule.js gzip 8.22 kB 8.22 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-351dac8..dule.js gzip 5.58 kB 5.58 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.5 kB 53.5 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js plugin-versions Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js plugin-versions Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js plugin-versions Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles
vercel/next.js canary ijjk/next.js plugin-versions Change
_error.js 916 kB 916 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 916 kB 916 kB
link.js 974 kB 974 kB
routerDirect.js 967 kB 967 kB
withRouter.js 967 kB 967 kB
Overall change 4.75 MB 4.75 MB
Commit: 2aee5ba

@Timer Timer merged commit 41866a1 into vercel:canary Nov 12, 2020
@Timer Timer deleted the plugin-versions branch November 12, 2020 05:00
@pudgereyem
Copy link

pudgereyem commented Apr 22, 2021

Hey @Timer and @timneutkens, hope you are well! :)

Background

I was trying to add Sentry to my website that is hosted on Vercel through the Official Sentry SDK for Next.js (a Next.js plugin).

Issue

Sentry are trying to work around the version locking that was introduced with this PR by updating their package.json during runtime. However, Vercel doesn't like this and throws an error. I was curious to hear your thoughts on this matter. Perhaps it's possible to do on postinstall.

I created an issue over at their repo that you can see here; getsentry/sentry-javascript#3441. I guess the question is; How should a Plugin developer handle this version locking? If you have any suggestion, I'm all ears.

@timneutkens
Copy link
Member

How should a Plugin developer handle this version locking?

This support is experimental and should not be used as per the initial PR that added the experimental flag. It's very likely that the current implementation will be completely removed and implemented in a different way later.

@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Experimental Next.js plugin version locking
4 participants