Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: vercel/next.js
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v12.3.0
Choose a base ref
...
head repository: vercel/next.js
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v12.3.1
Choose a head ref

Commits on Sep 8, 2022

  1. Update react-server-dom-webpack (#40356)

    Bump `react-server-dom-webpack` for support of `experimental_use` API
    huozhi authored Sep 8, 2022
    Copy the full SHA
    c8d3fa6 View commit details
  2. Fix flight manifest to include all chunks (#40365)

    When a client module is imported by both a module from an `app` entry and a module from `pages` entry, it is possible that it is included in the `pages` chunk eventually. The current check makes the manifest incomplete in that case.
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    shuding authored Sep 8, 2022
    Copy the full SHA
    a24872b View commit details
  3. docs: fix typos (#40342)

    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    jasham authored Sep 8, 2022
    Copy the full SHA
    ea33b84 View commit details
  4. docs: fix middleware path (#40340)

    Hello,
    
    Just update the docs to be aligned with the current middleware implementation 🙂
    
    Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
    Kikobeats and ijjk authored Sep 8, 2022
    Copy the full SHA
    a234abf View commit details
  5. Fix page url for edge routes in app dir (#40361)

    For edge routes in app dir, we passed the page name as url so that the
    url will be incorrect:
    
    * a non-dynamic route `/dashboard` will become `/dashboard/page`
    * a dynamic route `/dynamic/[id]` with url `/dyanmic/123` will still hit
    `/dynamic/page/[id]/page`
    
    This PR uses normalized `params.page` with interoplated as correct
    pathname for the page.
    huozhi authored Sep 8, 2022
    Copy the full SHA
    1858fa9 View commit details
  6. Subresource Integrity for App Directory (#39729)

    <!--
    Thanks for opening a PR! Your contribution is much appreciated.
    In order to make sure your PR is handled as smoothly as possible we
    request that you follow the checklist sections below.
    Choose the right checklist for the change that you're making:
    -->
    
    This serves to add support for [Subresource
    Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)
    hashes for scripts added from the new app directory. This also has
    support for utilizing nonce values passed from request headers (expected
    to be generated per request in middleware) in the bootstrapping scripts
    via the `Content-Security-Policy` header as such:
    
    ```
    Content-Security-Policy: script-src 'nonce-2726c7f26c'
    ```
    
    Which results in the inline scripts having a new `nonce` attribute hash
    added. These features combined support for setting an aggressive Content
    Security Policy on scripts loaded.
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [x] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    Co-authored-by: Steven <steven@ceriously.com>
    wyattjoh and styfle authored Sep 8, 2022
    Copy the full SHA
    c6ef857 View commit details
  7. v12.3.1-canary.0

    ijjk committed Sep 8, 2022
    1
    Copy the full SHA
    614f0d8 View commit details

Commits on Sep 9, 2022

  1. Stop build warning about experimental: { esmExternals: 'loose' } (#…

    …40377)
    
    Fixes #40368.
    
    ## Bug
    
    - [x] Related issues linked using `fixes #number`
    - [ ] ~~Integration tests added~~ [none applicable]
    - [ ] ~~Errors have helpful link attached, see `contributing.md`~~ [no new errors]
    rubytree33 authored Sep 9, 2022
    Copy the full SHA
    9ab5c01 View commit details
  2. Add template and error file types (#39808)

    Co-authored-by: Jiachi Liu <inbox@huozhi.im>
    timneutkens and huozhi authored Sep 9, 2022
    Copy the full SHA
    a3a20dc View commit details
  3. chore: fix examples (#40395)

    Closes #40366
    
    Rebass is not dependent on `styled-components` anymore. See:
    https://rebassjs.org/migrating/#v4-breaking-changes
    
    Closes #40367
    
    Document has been converted (#39871) from class, so `this.props` threw
    an error.
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    balazsorban44 authored Sep 9, 2022
    Copy the full SHA
    13e423c View commit details
  4. Copy the full SHA
    d64fc54 View commit details
  5. Fix mdx docs (#40402)

    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    The MDX guide is missing `@mdx-js/react` as a required dependency in the
    setup section.
    
    Co-authored-by: JJ Kasper <jj@jjsweb.site>
    andrewrjohn and ijjk authored Sep 9, 2022
    Copy the full SHA
    38169e3 View commit details
  6. Copy the full SHA
    b09592e View commit details
  7. fix(#40388): next/dynamic should only add default loading without s…

    …uspense (#40397)
    
    The PR fixes #40388.
    
    Currently, `next/dynamic` will try to provide a default `loading` to the
    `loadableOptions` even when `suspense` is enabled, thus triggering the
    incorrect warning. The PR fixes that. The corresponding integration test
    case is also updated.
    
    cc @huozhi 
    
    ## Bug
    
    - [x] Related issues linked using `fixes #number`
    - [x] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    Co-authored-by: huozhi <inbox@huozhi.im>
    SukkaW and huozhi authored Sep 9, 2022
    Copy the full SHA
    3d23c3d View commit details
  8. Add missing trace for full reload event (#40393)

    Added missing trace for `client-full-reload` event in hot reloader. Full
    reload tests moved to hmr, think they make more sense there than on
    their own.
    Hannes Bornö authored Sep 9, 2022
    Copy the full SHA
    6fb1121 View commit details
  9. feat(ts): expose AppType (#40391)

    An alternative solution to #40371
    
    Ref: #38867, t3-oss/create-t3-app#412,
    t3-oss/create-t3-app#414
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    balazsorban44 authored Sep 9, 2022
    Copy the full SHA
    8bc587a View commit details

Commits on Sep 11, 2022

  1. Update dev watcher to ignore more accurately (#40412)

    This ensures we ignore all except the files/directories we are explicitly wanting to watch to prevent watching/considering directories with massive amounts of files slowing down startup.
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    Fixes: #38483 (comment)
    ijjk authored Sep 11, 2022
    Copy the full SHA
    fc3ef81 View commit details

Commits on Sep 12, 2022

  1. Update Server Components documentation. (#40452)

    This PR updates the server components documentation to make it more clear the benefit of server components and what their current status is inside Next.js.
    
    It removes code snippets and CTAs for trying them out, as things have changed with the Layouts RFC since these docs were previously written. With the upcoming changes, server components will now be the default inside `app`. The list of supported and unsupported features was no longer accurate.
    
    We will be providing more guidance as the layouts and routing changes are ready to be tested.
    
    [Read the Layouts RFC](https://nextjs.org/blog/layouts-rfc) for more details.
    leerob authored Sep 12, 2022
    Copy the full SHA
    40fc066 View commit details
  2. Copy the full SHA
    3851d90 View commit details
  3. Add failing case for location throw (#40445)

    Found that the cause was that `React.useId()` returns the same value across requests whereas it was being used to create a unique key. On further inspection that code could be removed altogether as `id` was not used client-side and the `rscCache` map is no longer needed as the flight instance is already being created per request so it can live in the context of the request execution.
    
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    timneutkens authored Sep 12, 2022
    Copy the full SHA
    f92a4ce View commit details
  4. Drop legacy RSC handling in client for pages (#40472)

    Remove the unused RSC handling for pages in both server router and client side in favor of using RSC in app dir
    huozhi authored Sep 12, 2022
    Copy the full SHA
    c7d3f9d View commit details
  5. docs: move swcMinify: true out of "Experimental features" section (#…

    …40394)
    
    See the blog post:
    https://nextjs.org/blog/next-12-3##swc-minifier-stable
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    Co-authored-by: JJ Kasper <jj@jjsweb.site>
    balazsorban44 and ijjk authored Sep 12, 2022
    Copy the full SHA
    7355757 View commit details
  6. fix: eslint no-script-component-in-head error url (#40422)

    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    
    Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
    Djo1e and ijjk authored Sep 12, 2022
    Copy the full SHA
    804dc6b View commit details
  7. chore: Update swc (#40292)

    This PR update swc crates to
    swc-project/swc@4c078b0
    
    This PR applies
     - patches for the performance of minifier
     - swc-project/swc#5796
       - Closes #40399
    kdy1 authored Sep 12, 2022
    Copy the full SHA
    53ce3bf View commit details
  8. v12.3.1-canary.1

    ijjk committed Sep 12, 2022
    1
    Copy the full SHA
    2872dee View commit details
  9. Clarify use of loading property (#40488)

    I was a little confused by the `loading` property having the value `<header />`. I think that property is meant to show a loading state while the file is being loaded? If my assumption is correct, I think this change makes sense.
    msafi authored Sep 12, 2022
    Copy the full SHA
    d6f5ebf View commit details
  10. chore(examples): update turborepo examples link (#40487)

    ## Documentation / Examples
    
    We now maintain a landing page of all monorepo examples with Next.js apps. We can point users here instead. 
    
    - [X] Make sure the linting passes by running `pnpm lint`
    - [X] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    tknickman authored Sep 12, 2022
    Copy the full SHA
    d83ceee View commit details
  11. feat(edge): allows configuring Dynamic code execution guard (#39539)

    ### 📖  What's in there?
    
    Dynamic code evaluation (`eval()`, `new Function()`, ...) is not
    supported on the edge runtime, hence why we fail the build when
    detecting such statement in the middleware or `experimental-edge` routes
    at build time.
    
    However, there could be false positives, which static analysis and
    tree-shaking can not exclude:
    - `qs` through these dependencies (get-intrinsic:
    [source](https://github.com/ljharb/get-intrinsic/blob/main/index.js#L12))
    - `function-bind`
    ([source](https://github.com/Raynos/function-bind/blob/master/implementation.js#L42))
    - `has`
    ([source](https://github.com/tarruda/has/blob/master/src/index.js#L5))
    
    This PR leverages the existing `config` export to let user allow some of
    their files.
    it’s meant for allowing users to import 3rd party modules who embed
    dynamic code evaluation, but do not use it (because or code paths), and
    can't be tree-shaked.
    
    By default, it’s keeping the existing behavior: warn in dev, fails to
    build.
    If users allow dynamic code, and that code is reached at runtime, their
    app stills breaks.
    
    ### 🧪 How to test?
    
    - (existing) integration tests for disallowing dynamic code evaluation:
    `pnpm testheadless --testPathPattern=runtime-dynamic`
    - (new) integration tests for allowing dynamic code evaluation: `pnpm
    testheadless --testPathPattern=runtime-configurable`
    - (amended) production tests for validating the new configuration keys:
    `pnpm testheadless --testPathPattern=config-validations`
    
    To try it live, you could have an application such as:
    ```js
    // lib/index.js
    /* eslint-disable no-eval */
    export function hasUnusedDynamic() {
      if ((() => false)()) {
        eval('100')
      }
    }
    
    export function hasDynamic() {
      eval('100')
    }
    
    // pages/index.jsx
    export default function Page({ edgeRoute }) {
      return <p>{edgeRoute}</p>
    }
    
    export const getServerSideProps = async (req) => {
      const res = await fetch(`http://localhost:3000/api/route`)
      const data = await res.json()
      return { props: { edgeRoute: data.ok ? `Hi from the edge route` : '' } }
    }
    
    // pages/api/route.js
    import { hasDynamic } from '../../lib'
    
    export default async function handle() {
      hasDynamic()
      return Response.json({ ok: true })
    }
    
    export const config = { 
      runtime: 'experimental-edge' ,
      allowDynamic: '/lib/**'
    }
    ```
    
    Playing with `config.allowDynamic`, you should be able to:
    - build the app even if it uses `eval()` (it will obviously fail at
    runtime)
    - build the app that _imports but does not use_ `eval()`
    - run the app in dev, even if it uses `eval()` with no warning
    
    ### 🆙 Notes to reviewers
    
    Before adding documentation and telemetry, I'd like to collect comments
    on a couple of points:
    - the overall design for this feature: is a list of globs useful and
    easy enough?
    - should the globs be relative to the application root (current
    implementation) to to the edge route/middleware file?
    - (especially to @sokra) is the implementation idiomatic enough? I've
    leverage loaders to read the _entry point_ configuration once, then the
    ModuleGraph to get it back during the parsing phase. I couldn't re-use
    the existing `getExtractMetadata()` facility since it's happening late
    after the parsing.
    - there's a glitch with `import { ServerRuntime } from '../../types'` in
    `get-page-static-info.ts`
    ([here](https://github.com/vercel/next.js/pull/39539/files#diff-cb7ac6392c3dd707c5edab159c3144ec114eafea92dad5d98f4eedfc612174d2L12)).
    I had to use `next/types` because it was failing during lint. Any clue
    why?
    
    ### ☑️ Checklist
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [x] Integration tests added
    - [x] Documentation added
    - [x] Telemetry added. In case of a feature if it's used or not.
    - [x] Errors have helpful link attached, see `contributing.md`
    feugy authored Sep 12, 2022
    Copy the full SHA
    97ac344 View commit details
  12. Rename allowDynamic to unstable_allowDynamic (#40496)

    Follow-up to #39539 as discussed
    this renames to `unstable_` prefix initially while we test this out
    further.
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    ijjk authored Sep 12, 2022
    Copy the full SHA
    8bf6a87 View commit details

Commits on Sep 13, 2022

  1. Don't execute prefetches for bot user agents (#40435)

    Such bots typically navigate websites using hard navigations (as they
    crawl one URL at a time). Respectively, they do not benefit from
    prefetches at all, while increasing the cost of both the crawl and
    operating the site.
    
    <!--
    Thanks for opening a PR! Your contribution is much appreciated.
    In order to make sure your PR is handled as smoothly as possible we
    request that you follow the checklist sections below.
    Choose the right checklist for the change that you're making:
    -->
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [x] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    cramforce authored Sep 13, 2022
    Copy the full SHA
    421029c View commit details
  2. docs(errors/large-page-data): how to see data being passed to page (#…

    …40491)
    
    ## Summary
    
    This PR adds a note about how to see the data that this error is complaining about:
    
    ```sh
    Warning: data for page "/" is xxx which exceeds the threshold of 128 kB, this amount of data can reduce performance.
    ```
    
    This debug trick was something I came across in a [discussion](#39880) and I thought it would be helpful to others like it was for me.
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    
    Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
    ryparker and ijjk authored Sep 13, 2022
    Copy the full SHA
    0a093c0 View commit details
  3. docs(basic-features/script): update script version history (#40263)

    Made an addition to the version history within the Script component
    docs. In the docs there are examples where the Script component is being
    used within a _document.js/tsx file, but it does not get mentioned that
    this is only supported from version 12.2.2 onwards.
    
    ## Documentation / Examples 
    - [x] Make sure the linting passes by running `pnpm lint`
    
    Co-authored-by: JJ Kasper <jj@jjsweb.site>
    victorboucher and ijjk authored Sep 13, 2022
    Copy the full SHA
    3f2b4bc View commit details
  4. Added "negative matcher" documentation (#40282)

    <!--
    Thanks for opening a PR! Your contribution is much appreciated.
    In order to make sure your PR is handled as smoothly as possible we
    request that you follow the checklist sections below.
    Choose the right checklist for the change that you're making:
    -->
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    Co-authored-by: JJ Kasper <jj@jjsweb.site>
    steven-tey and ijjk authored Sep 13, 2022
    Copy the full SHA
    f33c23c View commit details
  5. Update semver of eslint-plugin-react (#40246)

    `eslint-plugin-react` has a broken version between v7.31.2-6. Upping the version range ensure that only functioning packages get installed.
    
    Fixes #40245
    
    
    
    ## Bug
    
    - [x] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    
    Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
    RareSecond and ijjk authored Sep 13, 2022
    Copy the full SHA
    d0903a5 View commit details
  6. chore: use link: instead of file: in CONTRIBUTING.md (#40510)

    Closes #40497
    
    Ref: https://pnpm.io/cli/link, https://stackoverflow.com/a/70266777
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    balazsorban44 authored Sep 13, 2022
    1
    Copy the full SHA
    baf6046 View commit details
  7. Fix a typo in docs (#40501)

    <!--
    Thanks for opening a PR! Your contribution is much appreciated.
    In order to make sure your PR is handled as smoothly as possible we
    request that you follow the checklist sections below.
    Choose the right checklist for the change that you're making:
    -->
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    Co-authored-by: Balázs Orbán <info@balazsorban.com>
    janklimo and balazsorban44 authored Sep 13, 2022
    Copy the full SHA
    c11310b View commit details
  8. Copy the full SHA
    e6ed8ef View commit details
  9. Clean up startTransition in Link (#40505)

    - Use React.startTransition instead of useTransition
    - Upgrade to latest React experimental
    - Split router cache invalidate into separate function
    
    Some minor cleanup while verifying behaviors.
    timneutkens authored Sep 13, 2022
    Copy the full SHA
    629c7f5 View commit details
  10. update(examples): Emotion modules (#40242)

    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    hiro0218 authored Sep 13, 2022
    Copy the full SHA
    814144a View commit details
  11. Added comments to middleware-matcher example (#40273)

    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    
    
    Co-authored-by: Balázs Orbán <18369201+balazsorban44@users.noreply.github.com>
    steven-tey and balazsorban44 authored Sep 13, 2022
    1
    Copy the full SHA
    260ea55 View commit details
  12. docs(README): next.js logo with dark mode (#40223)

    This PR follows #40181, adding the dark mode support for the brand new
    Next.js logo (BTW, the new logo is awesome!). The dark version of the
    logo is also served from `assets.vercel.com` (I just change the original
    logo URL, replace the `light` with `dark`, and surprisingly find out
    that doesn't result in 404).
    
    cc @Nutlope @steven-tey 
    
    Ref: [Specify theme context for images in Markdown (Beta) - GitHub
    Blog](https://github.blog/changelog/2022-05-19-specify-theme-context-for-images-in-markdown-beta/)
    
    Currently, the Next.js README in dark mode:
    
    <img width="917" alt="image"
    src="https://user-images.githubusercontent.com/40715044/188449078-864f6b71-7741-44f4-aee6-02a281b0a263.png">
    
    After the PR:
    
    <img width="914" alt="image"
    src="https://user-images.githubusercontent.com/40715044/188449265-a3556565-d866-4e0e-9b97-be62fba6c6fe.png">
    
    Preview link:
    https://github.com/SukkaW/next.js/tree/readme-logo-darkmode
    SukkaW authored Sep 13, 2022
    Copy the full SHA
    3cf7a30 View commit details
  13. fix(cli): tune filter for extracting example .tar (#40513)

    As pointed out in
    #40389 (comment),
    the `filter` matched more files than necessary and merged different
    example directories together. This change makes the filter match the
    example directory name precisely.
    
    Fixes #40389
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    balazsorban44 authored Sep 13, 2022
    Copy the full SHA
    a4ff041 View commit details
  14. Passing down original sourcemap for flight client loader (#40508)

    Consume the original sourcemap in flight client loader if there's any, to avoid source map is generated based on the module proxy which make debugging hard
    
    Testing with adding `debugger` in layout router, screenshot:
    
    <img width="400" alt="image" src="https://user-images.githubusercontent.com/4800338/189866388-adb1aba5-496b-4b8d-8098-ec04d6f1914a.png">
    huozhi authored Sep 13, 2022
    Copy the full SHA
    69d0e60 View commit details
  15. Add additional tests for prefetch and trailingSlash (#40517)

    Adds some of the tests we didn't have yet for app.
    <!--
    Thanks for opening a PR! Your contribution is much appreciated.
    In order to make sure your PR is handled as smoothly as possible we
    request that you follow the checklist sections below.
    Choose the right checklist for the change that you're making:
    -->
    
    ## Bug
    
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Feature
    
    - [ ] Implements an existing feature request or RFC. Make sure the
    feature request has been accepted for implementation before opening a
    PR.
    - [ ] Related issues linked using `fixes #number`
    - [ ] Integration tests added
    - [ ] Documentation added
    - [ ] Telemetry added. In case of a feature if it's used or not.
    - [ ] Errors have helpful link attached, see `contributing.md`
    
    ## Documentation / Examples
    
    - [ ] Make sure the linting passes by running `pnpm lint`
    - [ ] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    timneutkens authored Sep 13, 2022
    Copy the full SHA
    eadaca7 View commit details

Commits on Sep 14, 2022

  1. [Docs] Remove legacy mobx example (#40304)

    ## Info
    
    This PR merges with-mobx-lite into with-mobx. After that we will migrate `with-mobx` to typescript.
    
    ## Context
    
    As discussed in #40302 (comment) we are going to merge the mobx examples.
    
    #40302
    
    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    HaNdTriX authored Sep 14, 2022
    Copy the full SHA
    155a4d5 View commit details
  2. next/script: make onLoad concurrent rendering resilient (#40191)

    Another step toward fixing #40025.
    
    Multiple `next/script` components with the same `src` may exist in the
    Next.js app. So the `loadScript` function will always attach the
    `onLoad` handler to the `loadingPromise` every time it executes.
    
    However, with strict mode (or wrapped inside the `<OffScreen />`
    component), the `useEffect` could execute more than once for the same
    `next/script` component, thus the `loadScript` for each `next/script`
    component could execute more than once (and `onLoad` to be attached more
    than once), results in `onLoad` fires more than once.
    
    The PR makes sure that for every `next/script` component mounted, the
    `loadScript` will always be executed only once for each of them.
    
    The corresponding `onload fires correctly` integration test case is also
    updated to run in dev mode.
    
    ## Bug
    
    - [x] Related issues linked using `fixes #number`
    - [x] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    SukkaW authored Sep 14, 2022
    Copy the full SHA
    ed3cb83 View commit details
  3. v12.3.1-canary.2

    ijjk committed Sep 14, 2022
    1
    Copy the full SHA
    46dd1cf View commit details
  4. Wrap parallel routes tests in describe (#40546)

    Small changes:
    - Group parallel routes tests
    - Upgrade tests to latest react experimental
    timneutkens authored Sep 14, 2022
    Copy the full SHA
    385e3f0 View commit details
  5. fix(#40025): run next/script beforeInteractive test in both dev & p…

    …rod (#40541)
    
    Ref: #40002 #40026 #40191
    Fixes #40025
    
    This is the final step of fixing #40025. The PR migrates the rest of the
    `next/script` test cases to run in both dev (strict mode) and
    production, confirming that the `next/script` component is now
    completely concurrent rendering resilient and is ready for the upcoming
    React 18 `<OffScreen />`.
    
    ## Bug
    
    - [x] Related issues linked using `fixes #number`
    - [x] Integration tests added
    - [ ] Errors have helpful link attached, see `contributing.md`
    SukkaW authored Sep 14, 2022
    Copy the full SHA
    01b1e6b View commit details
  6. Update cms-makeswift example (#40560)

    This upgrades @makeswift/runtime to the latest version, which adds
    support for the Slot control.
    
    ## Documentation / Examples
    
    - [x] Make sure the linting passes by running `pnpm lint`
    - [x] The examples guidelines are followed from [our contributing
    doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
    migueloller authored Sep 14, 2022
    Copy the full SHA
    9780d81 View commit details
Showing 580 changed files with 19,299 additions and 3,943 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
* @timneutkens @ijjk @shuding @huozhi
/.github/ @timneutkens @ijjk @shuding @styfle @huozhi @padmaia @balazsorban44
/docs/ @timneutkens @ijjk @shuding @styfle @huozhi @padmaia @leerob @balazsorban44
/errors/ @balazsorban44
/examples/ @timneutkens @ijjk @shuding @leerob @steven-tey @balazsorban44

# SWC Build & Telemetry (@padmaia)
8 changes: 4 additions & 4 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<!--
Thanks for opening a PR! Your contribution is much appreciated.
In order to make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below.
To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below.
Choose the right checklist for the change that you're making:
-->

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
- [ ] Errors have a helpful link attached, see `contributing.md`

## Feature

@@ -17,9 +17,9 @@ Choose the right checklist for the change that you're making:
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`
- [ ] Errors have a helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [ ] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)
65 changes: 27 additions & 38 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -9,92 +9,81 @@
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "debug-react-exp", "dev", "test/e2e/app-dir/app"],
"runtimeExecutable": "pnpm",
"runtimeArgs": ["debug-react-exp", "dev", "test/e2e/app-dir/app"],
"skipFiles": ["<node_internals>/**"],
"outFiles": ["${workspaceFolder}/packages/next/dist/**/*"],
"port": 9229,
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch app development",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "debug", "dev", "bench/nested-deps"],
"runtimeExecutable": "pnpm",
"runtimeArgs": ["debug", "dev", "examples/hello-world"],
"skipFiles": ["<node_internals>/**"],
"outFiles": ["${workspaceFolder}/packages/next/dist/**/*"],
"port": 9229,
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch app build",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "debug", "build", "bench/nested-deps"],
"runtimeExecutable": "pnpm",
"runtimeArgs": ["debug", "build", "examples/hello-world"],
"skipFiles": ["<node_internals>/**"],
"port": 9229,
"outFiles": ["${workspaceFolder}/packages/next/dist/**/*"],
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch app build trace jaeger",
"name": "Launch app production",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "clean-trace-jaeger"],
"runtimeExecutable": "pnpm",
"runtimeArgs": ["debug", "start", "examples/hello-world"],
"skipFiles": ["<node_internals>/**"],
"port": 9229,
"outFiles": ["${workspaceFolder}/packages/next/dist/**/*"],
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch app production",
"name": "Launch current directory in development",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "debug", "start", "bench/nested-deps"],
"runtimeExecutable": "pnpm",
"runtimeArgs": ["debug", "dev", "${fileDirname}"],
"skipFiles": ["<node_internals>/**"],
"port": 9229,
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch app build trace jaeger",
"type": "node",
"request": "attach",
"name": "Attach to existing debugger",
"port": 9229,
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["clean-trace-jaeger"],
"skipFiles": ["<node_internals>/**"],
"outFiles": ["${workspaceFolder}/packages/next/dist/**/*"],
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
},
{
"name": "Launch this example",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "yarn",
"runtimeArgs": ["run", "debug", "dev", "${fileDirname}"],
"skipFiles": ["<node_internals>/**"],
"request": "attach",
"name": "Attach to existing debugger",
"port": 9229,
"skipFiles": ["<node_internals>/**"],
"env": {
"NEXT_PRIVATE_LOCAL_WEBPACK5": "1"
"NEXT_PRIVATE_LOCAL_WEBPACK": "1"
}
}
]
8 changes: 4 additions & 4 deletions bench/nested-deps/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"scripts": {
"prepare": "rimraf components && mkdir components && node ./fuzzponent.js -d 2 -s 206 -o components",
"dev": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK5=1 node ../../node_modules/next/dist/bin/next dev",
"build": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK5=1 node ../../node_modules/next/dist/bin/next build",
"start": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK5=1 node ../../node_modules/next/dist/bin/next start",
"dev": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK=1 node ../../node_modules/next/dist/bin/next dev",
"build": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK=1 node ../../node_modules/next/dist/bin/next build",
"start": "cross-env NEXT_PRIVATE_LOCAL_WEBPACK=1 node ../../node_modules/next/dist/bin/next start",
"dev-nocache": "rimraf .next && yarn dev",
"dev-cpuprofile-nocache": "rimraf .next && cross-env NEXT_PRIVATE_LOCAL_WEBPACK5=1 node --cpu-prof ../../node_modules/next/dist/bin/next",
"dev-cpuprofile-nocache": "rimraf .next && cross-env NEXT_PRIVATE_LOCAL_WEBPACK=1 node --cpu-prof ../../node_modules/next/dist/bin/next",
"build-nocache": "rimraf .next && yarn build"
},
"devDependencies": {
Loading