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

fix: turborepo integration test glob #3702

Merged
merged 2 commits into from
Feb 8, 2023

Conversation

chris-olszewski
Copy link
Member

@chris-olszewski chris-olszewski commented Feb 8, 2023

Expanding the patterns to include any changes to the cli directory as well as changing crates/turborepo* to creates/turborepo*/** which seems to be what we want.

Testing:
Under the hood get-diff-action uses minimatch for matching patterns against git diff. I quick wrote a test script to verify these patterns should get us what we want:

const { minimatch } = require("minimatch")

const paths = [
'crates/turborepo',
'crates/turborepo-ffi',
'crates/turborepo-lib/src/shim.rs',
'crates/turborepo/Cargo.toml',
]
for (const pat of ['crates/turborepo*', 'crates/turborepo*/**']) {
    for (const path of paths) {
        console.log(`${pat} matches ${path}: ${minimatch(path, pat)}`)
    }
}

Output:

"crates/turborepo* matches crates/turborepo: true"
"crates/turborepo* matches crates/turborepo-ffi: true"
"crates/turborepo* matches crates/turborepo-lib/src/shim.rs: false"
"crates/turborepo* matches crates/turborepo/Cargo.toml: false"
"crates/turborepo*/** matches crates/turborepo: false"
"crates/turborepo*/** matches crates/turborepo-ffi: false"
"crates/turborepo*/** matches crates/turborepo-lib/src/shim.rs: true"
"crates/turborepo*/** matches crates/turborepo/Cargo.toml: true"

@vercel
Copy link

vercel bot commented Feb 8, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
examples-cra-web 🔄 Building (Inspect) Feb 8, 2023 at 9:39PM (UTC)
9 Ignored Deployments
Name Status Preview Comments Updated
examples-basic-web ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-designsystem-docs ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-kitchensink-blog ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-native-web ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-nonmonorepo ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-svelte-web ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-tailwind-web ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
examples-vite-web ⬜️ Ignored (Inspect) Feb 8, 2023 at 9:39PM (UTC)
turbo-site ⬜️ Ignored (Inspect) Visit Preview Feb 8, 2023 at 9:39PM (UTC)

@chris-olszewski chris-olszewski marked this pull request as ready for review February 8, 2023 21:40
@chris-olszewski chris-olszewski requested review from a team as code owners February 8, 2023 21:40
@chris-olszewski chris-olszewski enabled auto-merge (squash) February 8, 2023 21:41
@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2023

Failing next.js integration test suites

Commit: 019eb37

Test summary

main (33cbfb8 / v13.1.7-canary.7) Current (019eb37 / v13.1.7-canary.7) Diff (Failed)
Test suites 🔴 12 / 🟢 0 (Total: 12) 🔴 12 / 🟢 0 (Total: 12) 0️⃣
Test cases 🔴 32 / 🟢 128 (Total: 169) 🔴 31 / 🟢 126 (Total: 162) 🔽 1
Full test report

test/development/acceptance-app/component-stack.test.ts

  • Component Stack in error overlay > should show a component stack on hydration error
Expand output

● Component Stack in error overlay › should show a component stack on hydration error

page.waitForSelector: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('[data-nextjs-toast]')
============================================================

  329 |     return this.chain(() => {
  330 |       return page
> 331 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  332 |         .then(async (el) => {
  333 |           // it seems selenium waits longer and tests rely on this behavior
  334 |           // so we wait for the load event fire before returning

  at lib/browsers/playwright.ts:331:10

test/e2e/edge-configurable-runtime/index.test.ts

  • Configurable runtime for pages and API routes > In dev mode > warns about API route using experimental-edge runtime
  • Configurable runtime for pages and API routes > In dev mode > warns about page using edge runtime
  • Configurable runtime for pages and API routes > In dev mode > errors about page using edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > warns about API route using experimental-edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > warns about page using edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > errors about page using edge runtime
Expand output

● Configurable runtime for src/pages and API routes › In dev mode › warns about API route using experimental-edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --is-next-dev-command --root /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --no-open]
ready - started server on 0.0.0.0:37589, url: http://localhost:37589
event - initial compilation 5.207ms
"

  54 |         expect(res.status).toEqual(200)
  55 |         expect(next.cliOutput).not.toInclude('error')
> 56 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  57 |           `warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead.`
  58 |         )
  59 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:56:43)

● Configurable runtime for src/pages and API routes › In dev mode › warns about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - You are using an experimental edge runtime, the API might change."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --is-next-dev-command --root /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --no-open]
ready - started server on 0.0.0.0:44661, url: http://localhost:44661
event - initial compilation 5.494ms
"

  70 |         expect(res.status).toEqual(200)
  71 |         expect(next.cliOutput).not.toInclude('error')
> 72 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  73 |           `warn  - You are using an experimental edge runtime, the API might change.`
  74 |         )
  75 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:72:43)

● Configurable runtime for src/pages and API routes › In dev mode › errors about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --is-next-dev-command --root /tmp/next-install-35a2d6420f499fdd9bc44602b2184635dd432f818c6dc44469ff1949c22b822f --no-open]
ready - started server on 0.0.0.0:35087, url: http://localhost:35087
event - initial compilation 4.94ms
"

  86 |         const res = await fetchViaHTTP(next.url, `/`)
  87 |         expect(res.status).toEqual(200)
> 88 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  89 |           `error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.`
  90 |         )
  91 |         expect(next.cliOutput).not.toInclude('warn')

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:88:43)

● Configurable runtime for pages and API routes › In dev mode › warns about API route using experimental-edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --is-next-dev-command --root /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --no-open]
ready - started server on 0.0.0.0:37821, url: http://localhost:37821
event - initial compilation 4.876ms
"

  54 |         expect(res.status).toEqual(200)
  55 |         expect(next.cliOutput).not.toInclude('error')
> 56 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  57 |           `warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead.`
  58 |         )
  59 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:56:43)
      at runMicrotasks (<anonymous>)

● Configurable runtime for pages and API routes › In dev mode › warns about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - You are using an experimental edge runtime, the API might change."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --is-next-dev-command --root /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --no-open]
ready - started server on 0.0.0.0:34747, url: http://localhost:34747
event - initial compilation 4.861ms
"

  70 |         expect(res.status).toEqual(200)
  71 |         expect(next.cliOutput).not.toInclude('error')
> 72 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  73 |           `warn  - You are using an experimental edge runtime, the API might change.`
  74 |         )
  75 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:72:43)
      at runMicrotasks (<anonymous>)

● Configurable runtime for pages and API routes › In dev mode › errors about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --is-next-dev-command --root /tmp/next-install-031f8666715b4113572a514b5ad90e0e71f52746d3297c7ce515155f536847cb --no-open]
ready - started server on 0.0.0.0:41085, url: http://localhost:41085
event - initial compilation 4.857ms
"

  86 |         const res = await fetchViaHTTP(next.url, `/`)
  87 |         expect(res.status).toEqual(200)
> 88 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  89 |           `error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.`
  90 |         )
  91 |         expect(next.cliOutput).not.toInclude('warn')

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:88:43)
      at runMicrotasks (<anonymous>)

test/integration/cli/test/index.test.js

  • CLI Usage > dev > -p conflict
Expand output

● CLI Usage › dev › -p conflict

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

  225 |     })
  226 |
> 227 |     test('-p conflict', async () => {
      |     ^
  228 |       const port = await findPort()
  229 |
  230 |       let app = http.createServer((_, res) => {

  at integration/cli/test/index.test.js:227:5
  at integration/cli/test/index.test.js:153:3
  at Object.<anonymous> (integration/cli/test/index.test.js:18:1)

test/development/basic/legacy-decorators.test.ts

  • Error overlay - editor links > should be possible to open files on RSC build error
  • Error overlay - editor links > should be possible to open files on RSC parse error
  • Error overlay - editor links > should be possible to open files on module not found error
Expand output

● Error overlay - editor links › should be possible to open files on RSC build error

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  57 |       )
  58 |
> 59 |       expect(await session.hasRedbox(true)).toBe(true)
     |                                             ^
  60 |       await clickEditorLinks(browser)
  61 |       await check(() => editorRequestsCount, /2/)
  62 |

  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:59:45)

● Error overlay - editor links › should be possible to open files on RSC parse error

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

   98 |       )
   99 |
> 100 |       expect(await session.hasRedbox(true)).toBe(true)
      |                                             ^
  101 |       await clickEditorLinks(browser)
  102 |       await check(() => editorRequestsCount, /4/)
  103 |

  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:100:45)

● Error overlay - editor links › should be possible to open files on module not found error

Application is in inconsistent state: timeout.

  76 |           }
  77 |           if (status !== 'pending') {
> 78 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  79 |           }
  80 |
  81 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:78:19)
  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:135:7)

test/e2e/app-dir/app-alias/app-alias.test.ts

  • app-dir alias handling > should handle typescript paths alias correctly
  • app-dir alias handling > should resolve css imports from outside with src folder presented
Expand output

● app-dir alias handling › should handle typescript paths alias correctly

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

Expected substring: "click</button>"
Received string:    "Execution of get_from_source failed·
Caused by:
    0: Execution of resolve_source_request failed
    1: Execution of CombinedContentSource::get failed
    2: Execution of create_app_source failed
    3: Execution of load_next_config failed
    4: Execution of evaluate failed
    5: node process exited before we could connect to it with exit status: 1"

  14 |     it('should handle typescript paths alias correctly', async () => {
  15 |       const html = await next.render('/button')
> 16 |       expect(html).toContain('click</button>')
     |                    ^
  17 |     })
  18 |
  19 |     it('should resolve css imports from outside with src folder presented', async () => {

  at Object.<anonymous> (e2e/app-dir/app-alias/app-alias.test.ts:16:20)

● app-dir alias handling › should resolve css imports from outside with src folder presented

page.waitForSelector: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('button')
============================================================

  329 |     return this.chain(() => {
  330 |       return page
> 331 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  332 |         .then(async (el) => {
  333 |           // it seems selenium waits longer and tests rely on this behavior
  334 |           // so we wait for the load event fire before returning

  at lib/browsers/playwright.ts:331:10

test/integration/broken-webpack-plugin/test/index.test.js

  • Handles a broken webpack plugin (precompile) > should render error correctly
Expand output

● Handles a broken webpack plugin (precompile) › should render error correctly

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

Expected substring: "Internal Server Error"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Bproject-with-next%5D_packages_next_e2d7c0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_internal_shims-client.ts._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_dev_68150c._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_overlay_client.ts._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_strip-ansi_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_stacktrace-parser_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_anser_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_platform_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_css.escape_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/ef3fd_.pnpm_376be9._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bproject-with-next%5D__b96501._.js\" defer=\"\"></script></head><body><div id=\"__next\"><p>hello from index</p></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{}},\"page\":\"/\",\"query\":{},\"buildId\":\"development\",\"runtimeConfig\":{},\"autoExport\":true,\"isFallback\":false,\"scriptLoader\":[]}</script></body></html>"

  34 |   it('should render error correctly', async () => {
  35 |     const text = await renderViaHTTP(appPort, '/')
> 36 |     expect(text).toContain('Internal Server Error')
     |                  ^
  37 |
  38 |     expect(stderr).toMatch('Error: oops')
  39 |   })

  at Object.<anonymous> (integration/broken-webpack-plugin/test/index.test.js:36:18)

test/development/acceptance-app/component-stack.test.ts

  • Component Stack in error overlay > should show a component stack on hydration error
Expand output

● Component Stack in error overlay › should show a component stack on hydration error

page.waitForSelector: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('[data-nextjs-toast]')
============================================================

  329 |     return this.chain(() => {
  330 |       return page
> 331 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  332 |         .then(async (el) => {
  333 |           // it seems selenium waits longer and tests rely on this behavior
  334 |           // so we wait for the load event fire before returning

  at lib/browsers/playwright.ts:331:10

test/e2e/edge-configurable-runtime/index.test.ts

  • Configurable runtime for pages and API routes > In dev mode > warns about API route using experimental-edge runtime
  • Configurable runtime for pages and API routes > In dev mode > warns about page using edge runtime
  • Configurable runtime for pages and API routes > In dev mode > errors about page using edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > warns about API route using experimental-edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > warns about page using edge runtime
  • Configurable runtime for src/pages and API routes > In dev mode > errors about page using edge runtime
Expand output

● Configurable runtime for src/pages and API routes › In dev mode › warns about API route using experimental-edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --is-next-dev-command --root /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --no-open]
ready - started server on 0.0.0.0:36195, url: http://localhost:36195
event - initial compilation 4.826ms
"

  54 |         expect(res.status).toEqual(200)
  55 |         expect(next.cliOutput).not.toInclude('error')
> 56 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  57 |           `warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead.`
  58 |         )
  59 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:56:43)

● Configurable runtime for src/pages and API routes › In dev mode › warns about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - You are using an experimental edge runtime, the API might change."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --is-next-dev-command --root /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --no-open]
ready - started server on 0.0.0.0:33199, url: http://localhost:33199
event - initial compilation 5.865ms
"

  70 |         expect(res.status).toEqual(200)
  71 |         expect(next.cliOutput).not.toInclude('error')
> 72 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  73 |           `warn  - You are using an experimental edge runtime, the API might change.`
  74 |         )
  75 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:72:43)

● Configurable runtime for src/pages and API routes › In dev mode › errors about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --is-next-dev-command --root /tmp/next-install-cbe51a112e514be8e8d3f4f5d5b49d99f21863ca141b9af190e822b72917042b --no-open]
ready - started server on 0.0.0.0:40537, url: http://localhost:40537
event - initial compilation 4.829ms
"

  86 |         const res = await fetchViaHTTP(next.url, `/`)
  87 |         expect(res.status).toEqual(200)
> 88 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  89 |           `error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.`
  90 |         )
  91 |         expect(next.cliOutput).not.toInclude('warn')

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:88:43)

● Configurable runtime for pages and API routes › In dev mode › warns about API route using experimental-edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --is-next-dev-command --root /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --no-open]
ready - started server on 0.0.0.0:45933, url: http://localhost:45933
event - initial compilation 4.8ms
"

  54 |         expect(res.status).toEqual(200)
  55 |         expect(next.cliOutput).not.toInclude('error')
> 56 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  57 |           `warn  - /pages/api/edge provided runtime 'experimental-edge'. It can be updated to 'edge' instead.`
  58 |         )
  59 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:56:43)

● Configurable runtime for pages and API routes › In dev mode › warns about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "warn  - You are using an experimental edge runtime, the API might change."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --is-next-dev-command --root /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --no-open]
ready - started server on 0.0.0.0:42401, url: http://localhost:42401
event - initial compilation 4.935ms
"

  70 |         expect(res.status).toEqual(200)
  71 |         expect(next.cliOutput).not.toInclude('error')
> 72 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  73 |           `warn  - You are using an experimental edge runtime, the API might change.`
  74 |         )
  75 |       })

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:72:43)

● Configurable runtime for pages and API routes › In dev mode › errors about page using edge runtime

expect(received).toInclude(expected)

Expected string to include:
  "error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead."
Received:
  "yarn run v1.22.19
$ /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --is-next-dev-command --root /tmp/next-install-e2dff2937832a8777b85950f8df8e95291934d6244e19d19a6f85a6aa58b6c1e --no-open]
ready - started server on 0.0.0.0:43851, url: http://localhost:43851
event - initial compilation 5.544ms
"

  86 |         const res = await fetchViaHTTP(next.url, `/`)
  87 |         expect(res.status).toEqual(200)
> 88 |         expect(stripAnsi(next.cliOutput)).toInclude(
     |                                           ^
  89 |           `error - Page /pages provided runtime 'edge', the edge runtime for rendering is currently experimental. Use runtime 'experimental-edge' instead.`
  90 |         )
  91 |         expect(next.cliOutput).not.toInclude('warn')

  at Object.<anonymous> (e2e/edge-configurable-runtime/index.test.ts:88:43)

test/integration/cli/test/index.test.js

  • CLI Usage > dev > -p conflict
Expand output

● CLI Usage › dev › -p conflict

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

  225 |     })
  226 |
> 227 |     test('-p conflict', async () => {
      |     ^
  228 |       const port = await findPort()
  229 |
  230 |       let app = http.createServer((_, res) => {

  at integration/cli/test/index.test.js:227:5
  at integration/cli/test/index.test.js:153:3
  at Object.<anonymous> (integration/cli/test/index.test.js:18:1)

test/development/basic/legacy-decorators.test.ts

  • Error overlay - editor links > should be possible to open files on RSC build error
  • Error overlay - editor links > should be possible to open files on RSC parse error
  • Error overlay - editor links > should be possible to open files on module not found error
Expand output

● Error overlay - editor links › should be possible to open files on RSC build error

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  57 |       )
  58 |
> 59 |       expect(await session.hasRedbox(true)).toBe(true)
     |                                             ^
  60 |       await clickEditorLinks(browser)
  61 |       await check(() => editorRequestsCount, /2/)
  62 |

  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:59:45)

● Error overlay - editor links › should be possible to open files on RSC parse error

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

   98 |       )
   99 |
> 100 |       expect(await session.hasRedbox(true)).toBe(true)
      |                                             ^
  101 |       await clickEditorLinks(browser)
  102 |       await check(() => editorRequestsCount, /4/)
  103 |

  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:100:45)

● Error overlay - editor links › should be possible to open files on module not found error

Application is in inconsistent state: timeout.

  76 |           }
  77 |           if (status !== 'pending') {
> 78 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  79 |           }
  80 |
  81 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:78:19)
  at Object.<anonymous> (development/acceptance-app/editor-links.test.ts:135:7)

test/e2e/app-dir/app-alias/app-alias.test.ts

  • app-dir static/dynamic handling > should handle dynamicParams: false correctly
  • app-dir static/dynamic handling > should ssr dynamically when detected automatically with fetch cache option
  • app-dir static/dynamic handling > should render not found pages correctly and fallback to the default one
  • app-dir static/dynamic handling > should ssr dynamically when forced via config
  • app-dir static/dynamic handling > should show a message to leave feedback for appDir
Expand output

● app-dir static/dynamic handling › should handle dynamicParams: false correctly

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 200

  508 |           redirect: 'manual',
  509 |         })
> 510 |         expect(invalidRes.status).toBe(404)
      |                                   ^
  511 |         expect(await invalidRes.text()).toContain('page could not be found')
  512 |       }
  513 |     })

  at Object.<anonymous> (e2e/app-dir/app-static/app-static.test.ts:510:35)

● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch cache option

expect(received).not.toBe(expected) // Object.is equality

Expected: not "1675893125195"

  628 |
  629 |       expect(secondHtml).toContain('Example Domain')
> 630 |       expect(secondDate).not.toBe(initialDate)
      |                              ^
  631 |     })
  632 |
  633 |     it('should render not found pages correctly and fallback to the default one', async () => {

  at Object.<anonymous> (e2e/app-dir/app-static/app-static.test.ts:630:30)

● app-dir static/dynamic handling › should render not found pages correctly and fallback to the default one

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 200

  635 |         redirect: 'manual',
  636 |       })
> 637 |       expect(res.status).toBe(404)
      |                          ^
  638 |       const html = await res.text()
  639 |       expect(html).toInclude('"noindex"')
  640 |       expect(html).toInclude('This page could not be found.')

  at Object.<anonymous> (e2e/app-dir/app-static/app-static.test.ts:637:26)

● app-dir static/dynamic handling › should ssr dynamically when forced via config

expect(received).not.toBe(expected) // Object.is equality

Expected: not "1675893125881"

  695 |       const secondDate = second$('#date').text()
  696 |
> 697 |       expect(secondDate).not.toBe(initialDate)
      |                              ^
  698 |     })
  699 |
  700 |     describe('useSearchParams', () => {

  at Object.<anonymous> (e2e/app-dir/app-static/app-static.test.ts:697:30)

● app-dir static/dynamic handling › should show a message to leave feedback for appDir

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

Expected substring: "Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback"
Received string:    "yarn run v1.22.19
$ /tmp/next-install-9126928d4f9320c10eec284d6f103f608a116525b1c3bc3592c14117f48af28b/node_modules/.bin/next --turbo
>>> TURBOPACK (alpha)·
Thank you for trying Next.js v13 with Turbopack! As a reminder,
Turbopack is currently in alpha and not yet ready for production.
We appreciate your ongoing support as we work to make it ready
for everyone.·
Error: You are using configuration and/or tools that are not yet
supported by Next.js v13 with Turbopack:··
- Unsupported Next.js configuration option(s) (next.config.js)
  The only configurations options supported are:
    - configFileName
    - env
    - experimental.appDir
    - experimental.resolveAlias
    - experimental.serverComponentsExternalPackages
    - experimental.turbopackLoaders
    - images
    - pageExtensions
    - onDemandEntries
    - rewrites
    - redirects
    - headers
    - reactStrictMode
    - swcMinify
    - transpilePackages
  To use Turbopack, remove other configuration options.····
If you cannot make the changes above, but still want to try out
Next.js v13 with Turbopack, create the Next.js v13 playground app
by running the following commands:·
  pnpm create next-app --example with-turbopack with-turbopack-app
  cd with-turbopack-app
  pnpm run dev·········
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback··
Warning: Unsupported config found; but continuing with custom Turbopack binary.·
Learn more about Next.js v13 and Turbopack: https://nextjs.link/with-turbopack
Please direct feedback to: https://nextjs.link/turbopack-feedback·
info  - Using locally built binary of @next/swc
Loading custom turbopack binary from /work/next-dev
Running turbopack with args: [--dev /tmp/next-install-9126928d4f9320c10eec284d6f103f608a116525b1c3bc3592c14117f48af28b --is-next-dev-command --root /tmp/next-install-9126928d4f9320c10eec284d6f103f608a116525b1c3bc3592c14117f48af28b --no-open]
ready - started server on 0.0.0.0:38617, url: http://localhost:38617
event - initial compilation 5.05ms
event - updated in 2435ms
event - updated in 130ms
event - updated in 892ms
event - updated in 823ms
event - updated in 2211ms
event - updated in 1081ms
event - updated in 501ms
event - updated in 550ms
event - updated in 742ms
event - updated in 126ms
event - updated in 111ms
event - updated in 619ms
event - updated in 679ms
event - updated in 650ms
event - updated in 159ms
event - updated in 113ms
event - updated in 104ms
event - updated in 594ms
event - updated in 1124ms
event - updated in 540ms
event - updated in 54ms
event - updated in 172ms
event - updated in 98ms
event - updated in 527ms
event - updated in 92ms
event - updated in 0.867ms
event - updated in 1701ms
event - updated in 115ms
event - updated in 621ms
event - updated in 1039ms
event - updated in 432ms
event - updated in 231ms
event - updated in 467ms
event - updated in 1.424ms
event - updated in 600ms
event - updated in 429ms
event - updated in 51ms
event - updated in 520ms
event - updated in 1.039ms
event - updated in 70ms
event - updated in 479ms
"

  844 |     if (!(global as any).isNextDeploy) {
  845 |       it('should show a message to leave feedback for `appDir`', async () => {
> 846 |         expect(next.cliOutput).toContain(
      |                                ^
  847 |           `Thank you for testing \`appDir\` please leave your feedback at https://nextjs.link/app-feedback`
  848 |         )
  849 |       })

  at Object.<anonymous> (e2e/app-dir/app-static/app-static.test.ts:846:32)

test/integration/broken-webpack-plugin/test/index.test.js

  • Handles a broken webpack plugin (precompile) > should render error correctly
Expand output

● Handles a broken webpack plugin (precompile) › should render error correctly

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

Expected substring: "Internal Server Error"
Received string:    "<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta name=\"next-head-count\" content=\"2\"/><noscript data-n-css=\"\"></noscript><script src=\"/_next/static/chunks/%5Bproject-with-next%5D_packages_next_e2d7c0._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_internal_shims-client.ts._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_dev_68150c._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_overlay_client.ts._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_strip-ansi_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_stacktrace-parser_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_anser_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_platform_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bembedded_modules%5D_@vercel_turbopack-next_compiled_css.escape_index.js\" defer=\"\"></script><script src=\"/_next/static/chunks/ef3fd_.pnpm_376be9._.js\" defer=\"\"></script><script src=\"/_next/static/chunks/%5Bproject-with-next%5D__b96501._.js\" defer=\"\"></script></head><body><div id=\"__next\"><p>hello from index</p></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{}},\"page\":\"/\",\"query\":{},\"buildId\":\"development\",\"runtimeConfig\":{},\"autoExport\":true,\"isFallback\":false,\"scriptLoader\":[]}</script></body></html>"

  34 |   it('should render error correctly', async () => {
  35 |     const text = await renderViaHTTP(appPort, '/')
> 36 |     expect(text).toContain('Internal Server Error')
     |                  ^
  37 |
  38 |     expect(stderr).toMatch('Error: oops')
  39 |   })

  at Object.<anonymous> (integration/broken-webpack-plugin/test/index.test.js:36:18)

@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2023

⚠️ CI failed ⚠️

The following steps have failed in CI:

  • Turbopack Rust tests (mac/win, non-blocking)

See workflow summary for details

@chris-olszewski chris-olszewski merged commit b2adfc5 into main Feb 8, 2023
@chris-olszewski chris-olszewski deleted the olszewski/run_integration_tests branch February 8, 2023 22:05
@@ -136,7 +136,9 @@ jobs:
uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
cli/**
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need this? It's already captured by "Go Related changes" and I think that's used when running e2e and integration tests.

https://github.com/vercel/turbo/blob/b2adfc5c52e4b90f5d86333d327d38b7c0ca0c03/.github/workflows/test.yml#L173

@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2023

Benchmark for 019eb37

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 10.09ms ± 0.11ms 10.05ms ± 0.08ms -0.40%
bench_hmr_to_commit/Turbopack RCC/1000 modules 9926.48µs ± 89.76µs 9936.27µs ± 77.94µs +0.10%
bench_hmr_to_commit/Turbopack RSC/1000 modules 501.98ms ± 2.55ms 504.22ms ± 1.94ms +0.45%
bench_hmr_to_commit/Turbopack SSR/1000 modules 10.12ms ± 0.08ms 10.22ms ± 0.09ms +0.97%
bench_hmr_to_eval/Turbopack CSR/1000 modules 8742.62µs ± 97.54µs 8763.89µs ± 89.93µs +0.24%
bench_hmr_to_eval/Turbopack RCC/1000 modules 8967.18µs ± 77.59µs 8892.90µs ± 100.12µs -0.83%
bench_hmr_to_eval/Turbopack SSR/1000 modules 8840.94µs ± 76.28µs 8856.32µs ± 69.73µs +0.17%
bench_hydration/Turbopack RCC/1000 modules 4269.18ms ± 11.37ms 4262.48ms ± 7.41ms -0.16%
bench_hydration/Turbopack RSC/1000 modules 3856.25ms ± 20.47ms 3831.32ms ± 12.42ms -0.65%
bench_hydration/Turbopack SSR/1000 modules 3741.43ms ± 16.76ms 3721.63ms ± 23.98ms -0.53%
bench_startup/Turbopack CSR/1000 modules 2790.66ms ± 6.31ms 2789.63ms ± 8.42ms -0.04%
bench_startup/Turbopack RCC/1000 modules 2568.63ms ± 6.88ms 2577.34ms ± 4.74ms +0.34%
bench_startup/Turbopack RSC/1000 modules 2464.58ms ± 9.96ms 2470.17ms ± 11.84ms +0.23%
bench_startup/Turbopack SSR/1000 modules 2134.86ms ± 2.54ms 2126.75ms ± 2.75ms -0.38%

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

Successfully merging this pull request may close these issues.

3 participants