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

Update Remix packages to v2.9.1 #618

Merged
merged 2 commits into from
May 2, 2024
Merged

Update Remix packages to v2.9.1 #618

merged 2 commits into from
May 2, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 2, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@remix-run/css-bundle (source) 2.8.1 -> 2.9.1 age adoption passing confidence
@remix-run/dev (source) 2.8.1 -> 2.9.1 age adoption passing confidence
@remix-run/node (source) 2.8.1 -> 2.9.1 age adoption passing confidence
@remix-run/react (source) 2.8.1 -> 2.9.1 age adoption passing confidence
@remix-run/serve (source) 2.8.1 -> 2.9.1 age adoption passing confidence
@vercel/remix (source) 2.8.1 -> 2.9.1 age adoption passing confidence

Release Notes

remix-run/remix (@​remix-run/css-bundle)

v2.9.1

Compare Source

No significant changes to this package were made in this release. See the repo CHANGELOG.md for an overview of all changes in v2.9.1.

v2.9.0

Compare Source

No significant changes to this package were made in this release. See the repo CHANGELOG.md for an overview of all changes in v2.9.0.

remix-run/remix (@​remix-run/dev)

v2.9.1

Compare Source

Patch Changes
  • Fix issue where consumers who had added Remix packages to Vite's ssr.noExternal option were being overridden by the Remix Vite plugin adding Remix packages to Vite's ssr.external option (#​9301)
  • Updated dependencies:

v2.9.0

Compare Source

Minor Changes
  • New future.unstable_singleFetch flag (#​8773)

    • Naked objects returned from loaders/actions are no longer automatically converted to JSON responses. They'll be streamed as-is via turbo-stream so Date's will become Date through useLoaderData()
    • You can return naked objects with Promise's without needing to use defer() - including nested Promise's
      • If you need to return a custom status code or custom response headers, you can still use the defer utility
    • <RemixServer abortDelay> is no longer used. Instead, you should export const streamTimeout from entry.server.tsx and the remix server runtime will use that as the delay to abort the streamed response
      • If you export your own streamTimeout, you should decouple that from aborting the react renderToPipeableStream. You should always ensure that react is aborted afer the stream is aborted so that abort rejections can be flushed down
    • Actions no longer automatically revalidate on 4xx/5xx responses (via RR future.unstable_skipActionErrorRevalidation flag) - you can return a 2xx to opt-into revalidation or use shouldRevalidate
Patch Changes
  • Improve getDependenciesToBundle resolution in monorepos (#​8848)
  • Fix SPA mode when single fetch is enabled by using streaming entry.server (#​9063)
  • Vite: added sourcemap support for transformed routes (#​8970)
  • Update links printed to the console by the Remix CLI/Dev Server to point to updated docs locations (#​9176)
  • Updated dependencies:
remix-run/remix (@​remix-run/node)

v2.9.1

Compare Source

Patch Changes

v2.9.0

Compare Source

Minor Changes
  • Use undici as our fetch polyfill going forward (#​9106, #​9111)
  • Put undici fetch polyfill behind a new installGlobals({ nativeFetch: true }) parameter (#​9198)
    • remix-serve will default to using undici for the fetch polyfill if future._unstable_singleFetch is enabled because the single fetch implementation relies on the undici polyfill
      • Any users opting into Single Fetch and managing their own polfill will need to pass the flag to installGlobals on their own to avoid runtime errors with Single Fetch
Patch Changes
remix-run/remix (@​remix-run/react)

v2.9.1

Compare Source

Patch Changes

v2.9.0

Compare Source

Minor Changes
  • New future.unstable_singleFetch flag (#​8773)

    • Naked objects returned from loaders/actions are no longer automatically converted to JSON responses. They'll be streamed as-is via turbo-stream so Date's will become Date through useLoaderData()
    • You can return naked objects with Promise's without needing to use defer() - including nested Promise's
      • If you need to return a custom status code or custom response headers, you can still use the defer utility
    • <RemixServer abortDelay> is no longer used. Instead, you should export const streamTimeout from entry.server.tsx and the remix server runtime will use that as the delay to abort the streamed response
      • If you export your own streamTimeout, you should decouple that from aborting the react renderToPipeableStream. You should always ensure that react is aborted afer the stream is aborted so that abort rejections can be flushed down
    • Actions no longer automatically revalidate on 4xx/5xx responses (via RR future.unstable_skipActionErrorRevalidation flag) - you can return a 2xx to opt-into revalidation or use shouldRevalidate
  • Opt-in types for single-fetch (#​9272)

    • To opt-in to type inference for single-fetch, add ./node_modules/@&#8203;remix-run/react/future/single-fetch.d.ts to include in your tsconfig.json
Patch Changes
remix-run/remix (@​remix-run/serve)

v2.9.1

Compare Source

Patch Changes

v2.9.0

Compare Source

Minor Changes
  • Put undici fetch polyfill behind a new installGlobals({ nativeFetch: true }) parameter (#​9198)
    • remix-serve will default to using undici for the fetch polyfill if future.unstable_singleFetch is enabled because the single fetch implementation relies on the undici polyfill
    • Any users opting into Single Fetch and managing their own polyfill will need to pass the flag to installGlobals on their own to avoid runtime errors with Single Fetch
Patch Changes
vercel/remix (@​vercel/remix)

v2.9.1

Compare Source

Date: 2024-04-24

Patch Changes
  • @remix-run/dev - Fix issue where consumers who had added Remix packages to Vite's ssr.noExternal option were being overridden by the Remix Vite plugin adding Remix packages to Vite's ssr.external option (#​9301)
  • @remix-run/react - Ignore future/*.d.ts files from TS build (#​9299)
Changes by Package

Full Changelog: v2.9.0...v2.9.1

v2.9.0

Compare Source

Date: 2024-04-23

What's Changed
Single Fetch (unstable)

2.9.0 introduces a future.unstable_singleFetch flag to enable to Single Fetch behavior (RFC) in your Remix application. Please refer to the docs for the full detail but the high-level changes to be aware of include:

  • Naked objects returned from loader/action functions are no longer automatically serialized to JSON responses
    • Instead, they'll be streamed as-is via turbo-stream which allows direct serialization of more complex types such as Promise, Date, Map instances, and more
    • You will need to modify your tsconfig.json's include array to infer types properly when using Single Fetch
  • The headers export is no longer used when Single Fetch is enabled in favor of a new response stub passed to your loader/action functions
  • The json/defer/redirect utilities are deprecated when using Single Fetch (but still work mostly the same)
  • Actions no longer automatically revalidate on 4xx/5xx responses - you can return a 2xx to opt-into revalidation or use shouldRevalidate

[!IMPORTANT]
Single Fetch requires using undici as your fetch polyfill, or using the built-in fetch on Node 20+, because it relies on APIs available there but not in the @remix-run/web-fetch polyfill. Please refer to the Undici section below for more details.

  • If you are managing your own server and calling installGlobals(), you will need to call installGlobals({ nativeFetch: true }) to avoid runtime errors when using Single Fetch
  • If you are using remix-serve, it will use undici automatically if Single Fetch is enabled
Undici

Remix 2.9.0 adds a new installGlobals({ nativeFetch: true }) flag to opt into using undici for the Web Fetch polyfills instead of the @remix-run/web-* packages. This change has a few primary benefits:

  • It will allow us to stop maintaining our own web-std-io fork in future versions of Remix
  • It should bring us more in-line with spec compliance
    • ⚠️ It is possible that some non-spec-compliant bugs in our fork will be "fixed" by moving to undici, so beware of "breaking bug fixes" and keep an eye on any advanced fetch API interactions you're performing in your app
    • ⚠️ In some cases, undici may have different behavior by design -- most notably, undici's garbage collection behavior differs and you are required to consume all fetch response bodies to avoid a memory leak in your app
  • Because undici is the fetch implementation used by node internally, it should better prepare Remix apps to more smoothly drop the polyfill to use the built-in Node.js APIs on node 20+
Minor Changes
  • New future.unstable_singleFetch flag (#​8773, #​9073, #​9084, #​9272)
  • @remix-run/node - Add a new installGlobals({ nativeFetch: true }) flag to opt-into using undici as the fetch polyfill instead of @remix-run/web-* (#​9106, #​9111, #​9198)
  • @remix-run/server-runtime - Add ResponseStub header interface and deprecate the headers export when Single Fetch is enabled (#​9142)
Patch Changes
  • create-remix - Allow . in repo name when using --template flag (#​9026)
  • @remix-run/dev - Improve getDependenciesToBundle resolution in monorepos (#​8848)
  • @remix-run/dev - Fix SPA mode when Single Fetch is enabled by using streaming entry.server (#​9063)
  • @remix-run/dev - Vite: added sourcemap support for transformed routes (#​8970)
  • @remix-run/dev - Update links printed to the console by the Remix CLI/Dev Server to point to updated docs locations (#​9176)
  • @remix-run/server-runtime - Handle redirects created by handleDataRequest (#​9104)
Updated Dependencies
Changes by Package

Full Changelog: v2.8.1...v2.9.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot enabled auto-merge (rebase) May 2, 2024 05:26
@renovate renovate bot force-pushed the renovate/remix-packages branch 5 times, most recently from e61246c to 27e7dbd Compare May 2, 2024 14:25
@larsschieffer larsschieffer force-pushed the renovate/remix-packages branch from 27e7dbd to c401771 Compare May 2, 2024 14:43
@renovate renovate bot merged commit ca71375 into main May 2, 2024
7 checks passed
@renovate renovate bot deleted the renovate/remix-packages branch May 2, 2024 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant