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

support bun.lock as package manager lockfile #74056

Open
wants to merge 4 commits into
base: canary
Choose a base branch
from

Conversation

RiskyMH
Copy link
Contributor

@RiskyMH RiskyMH commented Dec 18, 2024

Bun added support for a new lockfile format called bun.lock , this pr updates next.js so it can identify it.
https://bun.sh/blog/bun-lock-text-lockfile

There was also a problem that I had with standalone export and monorepo where it was getting so confused with where to place items (after I migrated to bun.lock), and it was fixed once I added empty bun.lockb file. I believe this PR should fix that issue and fixes #74082

@ijjk
Copy link
Member

ijjk commented Dec 18, 2024

Allow CI Workflow Run

  • approve CI run for commit: 209bf1b

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Copy link
Member

@eps1lon eps1lon left a comment

Choose a reason for hiding this comment

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

Thank you

@ijjk
Copy link
Member

ijjk commented Dec 18, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary The-Fiery-Fire/next.js bun Change
buildDuration 19.1s 17.3s N/A
buildDurationCached 16.4s 13.9s N/A
nodeModulesSize 416 MB 416 MB ⚠️ +148 B
nextStartRea..uration (ms) 480ms 478ms N/A
Client Bundles (main, webpack)
vercel/next.js canary The-Fiery-Fire/next.js bun Change
1187-HASH.js gzip 52.4 kB 52.4 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.36 kB 5.36 kB N/A
bccd1874-HASH.js gzip 53 kB 53 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 232 B 235 B N/A
main-HASH.js gzip 34.1 kB 34.1 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary The-Fiery-Fire/next.js bun Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary The-Fiery-Fire/next.js bun Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.49 kB 4.49 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary The-Fiery-Fire/next.js bun Change
_buildManifest.js gzip 749 B 746 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary The-Fiery-Fire/next.js bun Change
index.html gzip 522 B 523 B N/A
link.html gzip 538 B 537 B N/A
withRouter.html gzip 519 B 520 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary The-Fiery-Fire/next.js bun Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 205 kB 205 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary The-Fiery-Fire/next.js bun Change
middleware-b..fest.js gzip 672 B 667 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary The-Fiery-Fire/next.js bun Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 356 kB 356 kB
app-page-exp..prod.js gzip 129 kB 129 kB
app-page-tur..prod.js gzip 142 kB 142 kB
app-page-tur..prod.js gzip 137 kB 137 kB
app-page.run...dev.js gzip 346 kB 346 kB
app-page.run..prod.js gzip 125 kB 125 kB
app-route-ex...dev.js gzip 37.5 kB 37.5 kB
app-route-ex..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.3 kB 25.3 kB
app-route.ru...dev.js gzip 39.1 kB 39.1 kB
app-route.ru..prod.js gzip 25.3 kB 25.3 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB
pages.runtim...dev.js gzip 27.5 kB 27.5 kB
pages.runtim..prod.js gzip 21.7 kB 21.7 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.43 MB 2.43 MB
build cache Overall increase ⚠️
vercel/next.js canary The-Fiery-Fire/next.js bun Change
0.pack gzip 2.08 MB 2.08 MB N/A
index.pack gzip 74 kB 74.4 kB ⚠️ +397 B
Overall change 74 kB 74.4 kB ⚠️ +397 B
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: acce12d

@eps1lon
Copy link
Member

eps1lon commented Dec 18, 2024

Files need to be formatted. I can't do that for you since you disallowed maintainers to edit your PRs.

@ijjk
Copy link
Member

ijjk commented Dec 18, 2024

Failing test suites

Commit: acce12d

__NEXT_EXPERIMENTAL_PPR=true pnpm test-dev test/e2e/app-dir/actions/app-action.test.ts (PPR)

  • app-dir action handling > should forward action request to a worker that contains the action handler (node)
  • app-dir action handling > should forward action request to a worker that contains the action handler (edge)
  • app-dir action handling > should not error when a forwarded action triggers a redirect (node)
  • app-dir action handling > fetch actions > should handle redirects to routes that provide an invalid RSC response
Expand output

● app-dir action handling › should forward action request to a worker that contains the action handler (node)

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('#other-page')

  423 |     return this.chain(() => {
  424 |       return page
> 425 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  426 |         .then(async (el) => {
  427 |           // it seems selenium waits longer and tests rely on this behavior
  428 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:425:10)
  at e2e/app-dir/actions/app-action.test.ts:862:7

● app-dir action handling › should forward action request to a worker that contains the action handler (edge)

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('#other-page')

  423 |     return this.chain(() => {
  424 |       return page
> 425 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  426 |         .then(async (el) => {
  427 |           // it seems selenium waits longer and tests rely on this behavior
  428 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:425:10)
  at e2e/app-dir/actions/app-action.test.ts:862:7

● app-dir action handling › should not error when a forwarded action triggers a redirect (node)

page.waitForSelector: Timeout 60000ms exceeded.
Call log:
  - waiting for locator('#other-page')

  423 |     return this.chain(() => {
  424 |       return page
> 425 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  426 |         .then(async (el) => {
  427 |           // it seems selenium waits longer and tests rely on this behavior
  428 |           // so we wait for the load event fire before returning

  at waitForSelector (lib/browsers/playwright.ts:425:10)
  at e2e/app-dir/actions/app-action.test.ts:905:7

● app-dir action handling › fetch actions › should handle redirects to routes that provide an invalid RSC response

expect(received).toContain(expected) // indexOf

Expected substring: "Hello from a pages route"
Received string:    "0.9336823374616681
Client
Server
Client and Server
0
+1+1 (Slow)-1*2
redirect to a pages route
submit
test"

  1269 |
  1270 |       await retry(async () => {
> 1271 |         expect(await browser.elementByCss('body').text()).toContain(
       |                                                           ^
  1272 |           'Hello from a pages route'
  1273 |         )
  1274 |         expect(await browser.url()).toBe(`${next.url}/pages-dir`)

  at toContain (e2e/app-dir/actions/app-action.test.ts:1271:59)
  at retry (lib/next-test-utils.ts:806:14)
  at Object.<anonymous> (e2e/app-dir/actions/app-action.test.ts:1270:7)

Read more about building and testing Next.js in contributing.md.

@RiskyMH
Copy link
Contributor Author

RiskyMH commented Dec 19, 2024

Files need to be formatted. I can't do that for you since you disallowed maintainers to edit your PRs.

Oh sorry, I thought it is always enabled (like the many times I have done it before) but I can't seem to find setting anymore.
edit: it seems like its my fault for trying to be organized and using separate org for my forks https://github.com/orgs/community/discussions/5634

Anyway, I have linted it now (again sorry that I forgot to run lint here).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

next dev --turbo error when using bun.lock text lockfile
3 participants