diff --git a/.changeset/unlucky-melons-promise.md b/.changeset/unlucky-melons-promise.md
deleted file mode 100644
index b43ab5968b4..00000000000
--- a/.changeset/unlucky-melons-promise.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@remix-run/react": patch
----
-
-Throw unwrapped single fetch redirect to align with pre-single fetch behavior
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e6dfc31c9f..7aecddb3ca9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,24 +13,29 @@ We manage release notes in this file instead of the paginated Github Releases Pa
Table of Contents
- [Remix Releases](#remix-releases)
- - [v2.15.0](#v2150)
+ - [v2.15.2](#v2152)
- [Patch Changes](#patch-changes)
+ - [Updated Dependencies](#updated-dependencies)
+ - [v2.15.1](#v2151)
+ - [Patch Changes](#patch-changes-1)
+ - [v2.15.0](#v2150)
+ - [Patch Changes](#patch-changes-2)
- [v2.14.0](#v2140)
- [Minor Changes](#minor-changes)
- - [Patch Changes](#patch-changes-1)
- - [Updated Dependencies](#updated-dependencies)
+ - [Patch Changes](#patch-changes-3)
+ - [Updated Dependencies](#updated-dependencies-1)
- [Changes by Package](#changes-by-package)
- [v2.13.1](#v2131)
- - [Patch Changes](#patch-changes-2)
+ - [Patch Changes](#patch-changes-4)
- [v2.13.0](#v2130)
- [What's Changed](#whats-changed)
- [Stabilized APIs](#stabilized-apis)
- [Minor Changes](#minor-changes-1)
- - [Patch Changes](#patch-changes-3)
- - [Updated Dependencies](#updated-dependencies-1)
+ - [Patch Changes](#patch-changes-5)
+ - [Updated Dependencies](#updated-dependencies-2)
- [Changes by Package](#changes-by-package-1)
- [v2.12.1](#v2121)
- - [Patch Changes](#patch-changes-4)
+ - [Patch Changes](#patch-changes-6)
- [Changes by Package](#changes-by-package-2)
- [v2.12.0](#v2120)
- [What's Changed](#whats-changed-1)
@@ -38,72 +43,72 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [Improved Single Fetch Type Safety (unstable)](#improved-single-fetch-type-safety-unstable)
- [Updates to Single Fetch Revalidation Behavior (unstable)](#updates-to-single-fetch-revalidation-behavior-unstable)
- [Minor Changes](#minor-changes-2)
- - [Patch Changes](#patch-changes-5)
- - [Updated Dependencies](#updated-dependencies-2)
+ - [Patch Changes](#patch-changes-7)
+ - [Updated Dependencies](#updated-dependencies-3)
- [Changes by Package](#changes-by-package-3)
- [v2.11.2](#v2112)
- - [Patch Changes](#patch-changes-6)
- - [Updated Dependencies](#updated-dependencies-3)
+ - [Patch Changes](#patch-changes-8)
+ - [Updated Dependencies](#updated-dependencies-4)
- [Changes by Package](#changes-by-package-4)
- [v2.11.1](#v2111)
- - [Patch Changes](#patch-changes-7)
+ - [Patch Changes](#patch-changes-9)
- [Changes by Package](#changes-by-package-5)
- [v2.11.0](#v2110)
- [What's Changed](#whats-changed-2)
- [Renamed `unstable_fogOfWar` future flag to `unstable_lazyRouteDiscovery` (unstable)](#renamed-unstable_fogofwar-future-flag-to-unstable_lazyroutediscovery-unstable)
- [Removed `response` stub in Single Fetch (unstable)](#removed-response-stub-in-single-fetch-unstable)
- [Minor Changes](#minor-changes-3)
- - [Patch Changes](#patch-changes-8)
- - [Updated Dependencies](#updated-dependencies-4)
+ - [Patch Changes](#patch-changes-10)
+ - [Updated Dependencies](#updated-dependencies-5)
- [Changes by Package](#changes-by-package-6)
- [v2.10.3](#v2103)
- - [Patch Changes](#patch-changes-9)
- - [Updated Dependencies](#updated-dependencies-5)
+ - [Patch Changes](#patch-changes-11)
+ - [Updated Dependencies](#updated-dependencies-6)
- [Changes by Package](#changes-by-package-7)
- [v2.10.2](#v2102)
- - [Patch Changes](#patch-changes-10)
+ - [Patch Changes](#patch-changes-12)
- [Changes by Package](#changes-by-package-8)
- [v2.10.1](#v2101)
- - [Patch Changes](#patch-changes-11)
- - [Updated Dependencies](#updated-dependencies-6)
+ - [Patch Changes](#patch-changes-13)
+ - [Updated Dependencies](#updated-dependencies-7)
- [Changes by Package](#changes-by-package-9)
- [v2.10.0](#v2100)
- [What's Changed](#whats-changed-3)
- [Lazy Route Discovery (a.k.a. "Fog of War")](#lazy-route-discovery-aka-fog-of-war)
- [Minor Changes](#minor-changes-4)
- - [Patch Changes](#patch-changes-12)
- - [Updated Dependencies](#updated-dependencies-7)
+ - [Patch Changes](#patch-changes-14)
+ - [Updated Dependencies](#updated-dependencies-8)
- [Changes by Package](#changes-by-package-10)
- [v2.9.2](#v292)
- [What's Changed](#whats-changed-4)
- [Updated Type-Safety for Single Fetch](#updated-type-safety-for-single-fetch)
- - [Patch Changes](#patch-changes-13)
- - [Updated Dependencies](#updated-dependencies-8)
+ - [Patch Changes](#patch-changes-15)
+ - [Updated Dependencies](#updated-dependencies-9)
- [Changes by Package](#changes-by-package-11)
- [v2.9.1](#v291)
- - [Patch Changes](#patch-changes-14)
+ - [Patch Changes](#patch-changes-16)
- [Changes by Package](#changes-by-package-12)
- [v2.9.0](#v290)
- [What's Changed](#whats-changed-5)
- [Single Fetch (unstable)](#single-fetch-unstable)
- [Undici](#undici)
- [Minor Changes](#minor-changes-5)
- - [Patch Changes](#patch-changes-15)
- - [Updated Dependencies](#updated-dependencies-9)
+ - [Patch Changes](#patch-changes-17)
+ - [Updated Dependencies](#updated-dependencies-10)
- [Changes by Package](#changes-by-package-13)
- [v2.8.1](#v281)
- - [Patch Changes](#patch-changes-16)
- - [Updated Dependencies](#updated-dependencies-10)
+ - [Patch Changes](#patch-changes-18)
+ - [Updated Dependencies](#updated-dependencies-11)
- [Changes by Package](#changes-by-package-14)
- [v2.8.0](#v280)
- [Minor Changes](#minor-changes-6)
- - [Patch Changes](#patch-changes-17)
- - [Updated Dependencies](#updated-dependencies-11)
+ - [Patch Changes](#patch-changes-19)
+ - [Updated Dependencies](#updated-dependencies-12)
- [Changes by Package](#changes-by-package-15)
- [2.7.2](#272)
- - [Patch Changes](#patch-changes-18)
+ - [Patch Changes](#patch-changes-20)
- [2.7.1](#271)
- - [Patch Changes](#patch-changes-19)
+ - [Patch Changes](#patch-changes-21)
- [v2.7.0](#v270)
- [What's Changed](#whats-changed-6)
- [Stabilized Vite Plugin](#stabilized-vite-plugin)
@@ -111,31 +116,31 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [Basename support](#basename-support)
- [Cloudflare Proxy as a Vite Plugin](#cloudflare-proxy-as-a-vite-plugin)
- [Minor Changes](#minor-changes-7)
- - [Patch Changes](#patch-changes-20)
- - [Updated Dependencies](#updated-dependencies-12)
+ - [Patch Changes](#patch-changes-22)
+ - [Updated Dependencies](#updated-dependencies-13)
- [Changes by Package](#changes-by-package-16)
- [v2.6.0](#v260)
- [What's Changed](#whats-changed-7)
- [Unstable Vite Plugin updates](#unstable-vite-plugin-updates)
- [Minor Changes](#minor-changes-8)
- - [Patch Changes](#patch-changes-21)
- - [Updated Dependencies](#updated-dependencies-13)
+ - [Patch Changes](#patch-changes-23)
+ - [Updated Dependencies](#updated-dependencies-14)
- [Changes by Package](#changes-by-package-17)
- [v2.5.1](#v251)
- - [Patch Changes](#patch-changes-22)
- - [Updated Dependencies](#updated-dependencies-14)
+ - [Patch Changes](#patch-changes-24)
+ - [Updated Dependencies](#updated-dependencies-15)
- [Changes by Package](#changes-by-package-18)
- [v2.5.0](#v250)
- [What's Changed](#whats-changed-8)
- [SPA Mode (unstable)](#spa-mode-unstable)
- [Server Bundles (unstable)](#server-bundles-unstable)
- [Minor Changes](#minor-changes-9)
- - [Patch Changes](#patch-changes-23)
- - [Updated Dependencies](#updated-dependencies-15)
+ - [Patch Changes](#patch-changes-25)
+ - [Updated Dependencies](#updated-dependencies-16)
- [Changes by Package](#changes-by-package-19)
- [v2.4.1](#v241)
- - [Patch Changes](#patch-changes-24)
- - [Updated Dependencies](#updated-dependencies-16)
+ - [Patch Changes](#patch-changes-26)
+ - [Updated Dependencies](#updated-dependencies-17)
- [Changes by Package](#changes-by-package-20)
- [v2.4.0](#v240)
- [What's Changed](#whats-changed-9)
@@ -143,20 +148,20 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [`future.v3_relativeSplatPath`](#futurev3_relativesplatpath)
- [Vite Updates (Unstable)](#vite-updates-unstable)
- [Minor Changes](#minor-changes-10)
- - [Patch Changes](#patch-changes-25)
- - [Updated Dependencies](#updated-dependencies-17)
+ - [Patch Changes](#patch-changes-27)
+ - [Updated Dependencies](#updated-dependencies-18)
- [Changes by Package](#changes-by-package-21)
- [v2.3.1](#v231)
- - [Patch Changes](#patch-changes-26)
- - [Updated Dependencies](#updated-dependencies-18)
+ - [Patch Changes](#patch-changes-28)
+ - [Updated Dependencies](#updated-dependencies-19)
- [Changes by Package](#changes-by-package-22)
- [v2.3.0](#v230)
- [What's Changed](#whats-changed-10)
- [Stabilized `useBlocker`](#stabilized-useblocker)
- [`unstable_flushSync` API](#unstable_flushsync-api)
- [Minor Changes](#minor-changes-11)
- - [Patch Changes](#patch-changes-27)
- - [Updated Dependencies](#updated-dependencies-19)
+ - [Patch Changes](#patch-changes-29)
+ - [Updated Dependencies](#updated-dependencies-20)
- [Changes by Package](#changes-by-package-23)
- [v2.2.0](#v220)
- [What's Changed](#whats-changed-11)
@@ -164,19 +169,19 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [New Fetcher APIs](#new-fetcher-apis)
- [Persistence Future Flag](#persistence-future-flag)
- [Minor Changes](#minor-changes-12)
- - [Patch Changes](#patch-changes-28)
- - [Updated Dependencies](#updated-dependencies-20)
+ - [Patch Changes](#patch-changes-30)
+ - [Updated Dependencies](#updated-dependencies-21)
- [Changes by Package](#changes-by-package-24)
- [v2.1.0](#v210)
- [What's Changed](#whats-changed-12)
- [View Transitions](#view-transitions)
- [Stable `createRemixStub`](#stable-createremixstub)
- [Minor Changes](#minor-changes-13)
- - [Patch Changes](#patch-changes-29)
- - [Updated Dependencies](#updated-dependencies-21)
+ - [Patch Changes](#patch-changes-31)
+ - [Updated Dependencies](#updated-dependencies-22)
- [Changes by Package](#changes-by-package-25)
- [v2.0.1](#v201)
- - [Patch Changes](#patch-changes-30)
+ - [Patch Changes](#patch-changes-32)
- [Changes by Package 🔗](#changes-by-package-)
- [v2.0.0](#v200)
- [Breaking Changes](#breaking-changes)
@@ -188,7 +193,7 @@ We manage release notes in this file instead of the paginated Github Releases Pa
- [Breaking Type Changes](#breaking-type-changes)
- [New Features](#new-features)
- [Other Notable Changes](#other-notable-changes)
- - [Updated Dependencies](#updated-dependencies-22)
+ - [Updated Dependencies](#updated-dependencies-23)
- [Changes by Package](#changes-by-package-26)
@@ -240,6 +245,21 @@ Date: YYYY-MM-DD
-->
+## v2.15.2
+
+Date: 2024-12-20
+
+### Patch Changes
+
+- `@remix-run/dev` - Allow suppression of future flag warnings by setting them to `false` ([#10358](https://github.com/remix-run/remix/pull/10358))
+- `@remix-run/react` - Throw unwrapped Single Fetch `redirect` to align with pre-Single Fetch behavior ([#10317](https://github.com/remix-run/remix/pull/10317))
+
+### Updated Dependencies
+
+- [`react-router-dom@6.28.1`](https://github.com/remix-run/react-router/releases/tag/react-router%406.28.1)
+
+**Full Changelog**: [`v2.15.1...v2.15.2`](https://github.com/remix-run/remix/compare/remix@2.15.1...remix@2.15.2)
+
## v2.15.1
Date: 2024-12-09
diff --git a/docs/guides/templates.md b/docs/guides/templates.md
index 634dd5db7e5..e47b7c3c703 100644
--- a/docs/guides/templates.md
+++ b/docs/guides/templates.md
@@ -5,6 +5,8 @@ description: The quickest way to get rocking and rolling with Remix
# Templates and Stacks
+Just getting started with Remix? The latest version of [Remix is now React Router v7][remix-now-react-router]. If you want to use the latest framework features, you should create your project using a [React Router template][react-router-templates].
+
When using [`create-remix`][create_remix] to generate a new project, you can choose a Template or a Stack to quickly get up and running. Templates are minimal starting points to get you up and running. "Stacks" are templates that are more-complete and closer to production ready architectures (potentially including aspects such as testing, database, CI, and deployment configurations).
## Templates
@@ -170,3 +172,5 @@ After the init script has been run, the `remix.init` folder gets deleted, so you
[arc]: https://arc.codes/docs/en/get-started/quickstart
[deno]: https://deno.com
[cloudflare]: https://www.cloudflare.com
+[remix-now-react-router]: https://remix.run/blog/incremental-path-to-react-19
+[react-router-templates]: https://github.com/remix-run/react-router-templates
diff --git a/docs/index.md b/docs/index.md
index cf5c2439ebf..5a444808921 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,6 +8,8 @@ hidden: true
# Remix Docs
+Just getting started with Remix? The latest version of [Remix is now React Router v7][remix-now-react-router]. If you want to use the latest framework features, you should use the [React Router docs to get started][react-router-get-started].
+
```shellscript nonumber
npx create-remix@latest
```
@@ -51,3 +53,6 @@ npx create-remix@latest
- **Guides**: They're great for learning how to use Remix in a specific way or for a specific use case.
-->
+
+[remix-now-react-router]: https://remix.run/blog/incremental-path-to-react-19
+[react-router-get-started]: https://reactrouter.com/start/framework/installation
diff --git a/docs/other-api/create-remix.md b/docs/other-api/create-remix.md
index 24cedf28906..ed742eaf046 100644
--- a/docs/other-api/create-remix.md
+++ b/docs/other-api/create-remix.md
@@ -4,6 +4,8 @@ title: "create-remix (CLI)"
# `create-remix`
+Just getting started with Remix? The latest version of [Remix is now React Router v7][remix-now-react-router]. If you want to use the latest framework features, you should use the [`create-react-router` CLI to start a new project][create-react-router].
+
The `create-remix` CLI will create a new Remix project. Without passing arguments, this command will launch an interactive CLI to configure the new project and set it up in a given directory.
```sh
@@ -86,3 +88,5 @@ If `create-remix` detects any file collisions between the template and the direc
[templates]: ../guides/templates
[remix-app-server]: ./serve
[template-flag-hash-link]: #create-remix---template
+[remix-now-react-router]: https://remix.run/blog/incremental-path-to-react-19
+[create-react-router]: https://reactrouter.com/start/framework/installation
diff --git a/docs/start/future-flags.md b/docs/start/future-flags.md
index f636ad7510f..eba531934ec 100644
--- a/docs/start/future-flags.md
+++ b/docs/start/future-flags.md
@@ -697,6 +697,19 @@ type SerializeFrom = ReturnType>;
In most cases, you should be able to just remove `SerializeFrom` and use the types returned from `useLoaderData`/`useActionData`, or the types of the data in `loader`/`action` functions.
+### Multipart Form Data and File Upload utilities
+
+The following utilities are deprecated and will be removed in React Router v7:
+
+- `unstable_parseMultipartFormData`
+- `unstable_composeUploadHandlers`
+- `unstable_createFileUploadHandler`
+- `unstable_createMemoryUploadHandler`
+
+We recommend using [`@mjackson/form-data-parser`][form-data-parser] and [`@mjackson/file-storage`][file-storage] to handle multipart form data and file uploads.
+
+You can also checkout the [React Router "File Uploads" doc][react-router-file-uploads] or ["File uploads with Remix"][file-uploads-with-remix] blog post for guides on using these libraries.
+
[development-strategy]: ../guides/api-development-strategy
[fetcherpersist-rfc]: https://github.com/remix-run/remix/discussions/7698
[relativesplatpath-changelog]: https://github.com/remix-run/remix/blob/main/CHANGELOG.md#futurev3_relativesplatpath
@@ -724,3 +737,7 @@ In most cases, you should be able to just remove `SerializeFrom` and use the typ
[data-api]: ../utils/data
[response-json]: https://developer.mozilla.org/en-US/docs/Web/API/Response/json
[remix-template-eslint-config]: https://github.com/remix-run/remix/blob/main/templates/remix/.eslintrc.cjs
+[form-data-parser]: https://github.com/mjackson/remix-the-web/tree/main/packages/form-data-parser
+[file-storage]: https://github.com/mjackson/remix-the-web/tree/main/packages/file-storage
+[file-uploads-with-remix]: https://programmingarehard.com/2024/09/06/remix-file-uploads-updated.html/
+[react-router-file-uploads]: https://reactrouter.com/how-to/file-uploads
diff --git a/docs/start/quickstart.md b/docs/start/quickstart.md
index c38822e6a27..b3612654c20 100644
--- a/docs/start/quickstart.md
+++ b/docs/start/quickstart.md
@@ -5,6 +5,8 @@ order: 1
# Quick Start
+Just getting started with Remix? The latest version of [Remix is now React Router v7][remix-now-react-router]. If you want to use the latest features, you should use the [React Router docs to get started][react-router-get-started].
+
This guide will get you familiar with the basic plumbing required to run a Remix app as quickly as possible. While there are many starter templates with different runtimes, deploy targets, and databases, we're going to create a bare-bones project from scratch.
When you're ready to get serious about your Remix project, you might consider starting with a community template. They include TypeScript setups, databases, testing harnesses, authentication, and more. You can find a list of community templates on the [Remix Resources][templates] page.
@@ -284,3 +286,5 @@ What's next?
[vite-config]: https://vitejs.dev/config
[vite-middleware]: https://vitejs.dev/guide/ssr#setting-up-the-dev-server
[cross-env]: https://www.npmjs.com/package/cross-env
+[remix-now-react-router]: https://remix.run/blog/incremental-path-to-react-19
+[react-router-get-started]: https://reactrouter.com/start/framework/installation
diff --git a/docs/start/tutorial.md b/docs/start/tutorial.md
index 19641d24eee..b8fe80cbd93 100644
--- a/docs/start/tutorial.md
+++ b/docs/start/tutorial.md
@@ -5,6 +5,8 @@ order: 2
# Remix Tutorial
+Just getting started with Remix? The latest version of [Remix is now React Router v7][remix-now-react-router]. If you want to use the latest framework features, you can follow the same [tutorial from the React Router docs][react-router-tutorial].
+
We'll be building a small, but feature-rich app that lets you keep track of your contacts. There's no database or other "production ready" things, so we can stay focused on Remix. We expect it to take about 30m if you're following along, otherwise it's a quick read.
@@ -1639,3 +1641,5 @@ That's it! Thanks for giving Remix a shot. We hope this tutorial gives you a sol
[quickstart]: ./quickstart
[http-localhost-5173]: http://localhost:5173
[fetch]: https://developer.mozilla.org/en-US/docs/Web/API/fetch
+[remix-now-react-router]: https://remix.run/blog/incremental-path-to-react-19
+[react-router-tutorial]: https://reactrouter.com/tutorials/address-book
diff --git a/integration/helpers/vite-cloudflare-template/package.json b/integration/helpers/vite-cloudflare-template/package.json
index 7ea4574904b..78cd66db98b 100644
--- a/integration/helpers/vite-cloudflare-template/package.json
+++ b/integration/helpers/vite-cloudflare-template/package.json
@@ -11,9 +11,9 @@
"typecheck": "tsc"
},
"dependencies": {
- "@remix-run/cloudflare": "2.15.1",
- "@remix-run/cloudflare-pages": "2.15.1",
- "@remix-run/react": "2.15.1",
+ "@remix-run/cloudflare": "2.15.2",
+ "@remix-run/cloudflare-pages": "2.15.2",
+ "@remix-run/react": "2.15.2",
"isbot": "^4.1.0",
"miniflare": "^3.20231030.4",
"react": "^18.2.0",
diff --git a/packages/create-remix/CHANGELOG.md b/packages/create-remix/CHANGELOG.md
index aeed6707d5c..625bbbd4e91 100644
--- a/packages/create-remix/CHANGELOG.md
+++ b/packages/create-remix/CHANGELOG.md
@@ -1,5 +1,7 @@
# `create-remix`
+## 2.15.2
+
## 2.15.1
### Patch Changes
diff --git a/packages/create-remix/package.json b/packages/create-remix/package.json
index 74728b562ff..9329c98b289 100644
--- a/packages/create-remix/package.json
+++ b/packages/create-remix/package.json
@@ -1,6 +1,6 @@
{
"name": "create-remix",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Create a new Remix app",
"homepage": "https://remix.run",
"bugs": {
diff --git a/packages/remix-architect/CHANGELOG.md b/packages/remix-architect/CHANGELOG.md
index c72e1d6d959..2b84550e053 100644
--- a/packages/remix-architect/CHANGELOG.md
+++ b/packages/remix-architect/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/architect`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-architect/package.json b/packages/remix-architect/package.json
index a969c3d2d69..104ce0972f1 100644
--- a/packages/remix-architect/package.json
+++ b/packages/remix-architect/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/architect",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Architect server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-cloudflare-pages/CHANGELOG.md b/packages/remix-cloudflare-pages/CHANGELOG.md
index 0b30f3fe549..b547c171bca 100644
--- a/packages/remix-cloudflare-pages/CHANGELOG.md
+++ b/packages/remix-cloudflare-pages/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare-pages`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/cloudflare@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-cloudflare-pages/package.json b/packages/remix-cloudflare-pages/package.json
index 4d9eabf3a76..fdb26c7f413 100644
--- a/packages/remix-cloudflare-pages/package.json
+++ b/packages/remix-cloudflare-pages/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare-pages",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Cloudflare Pages request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-cloudflare-workers/CHANGELOG.md b/packages/remix-cloudflare-workers/CHANGELOG.md
index 415c411e0ad..3b522d34d93 100644
--- a/packages/remix-cloudflare-workers/CHANGELOG.md
+++ b/packages/remix-cloudflare-workers/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare-workers`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/cloudflare@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-cloudflare-workers/package.json b/packages/remix-cloudflare-workers/package.json
index 8600cc7da1b..6363e190584 100644
--- a/packages/remix-cloudflare-workers/package.json
+++ b/packages/remix-cloudflare-workers/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare-workers",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Cloudflare worker request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-cloudflare/CHANGELOG.md b/packages/remix-cloudflare/CHANGELOG.md
index b91a6aa9b1a..8ea4338099a 100644
--- a/packages/remix-cloudflare/CHANGELOG.md
+++ b/packages/remix-cloudflare/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/cloudflare`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-cloudflare/package.json b/packages/remix-cloudflare/package.json
index 7e90b355a0d..5acdb48f2ec 100644
--- a/packages/remix-cloudflare/package.json
+++ b/packages/remix-cloudflare/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/cloudflare",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Cloudflare platform abstractions for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-css-bundle/CHANGELOG.md b/packages/remix-css-bundle/CHANGELOG.md
index 46725d1cd4b..1e815496557 100644
--- a/packages/remix-css-bundle/CHANGELOG.md
+++ b/packages/remix-css-bundle/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/css-bundle`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-css-bundle/package.json b/packages/remix-css-bundle/package.json
index 593ca9f55d7..07b52fd46fa 100644
--- a/packages/remix-css-bundle/package.json
+++ b/packages/remix-css-bundle/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/css-bundle",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "CSS bundle href when using CSS bundling features in Remix",
"homepage": "https://remix.run",
"bugs": {
diff --git a/packages/remix-deno/CHANGELOG.md b/packages/remix-deno/CHANGELOG.md
index 6d344c94cea..d5033282bba 100644
--- a/packages/remix-deno/CHANGELOG.md
+++ b/packages/remix-deno/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/deno`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-deno/package.json b/packages/remix-deno/package.json
index 59600242b25..54e8442b79f 100644
--- a/packages/remix-deno/package.json
+++ b/packages/remix-deno/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/deno",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Deno platform abstractions for Remix",
"homepage": "https://remix.run",
"main": "./index.ts",
diff --git a/packages/remix-dev/CHANGELOG.md b/packages/remix-dev/CHANGELOG.md
index 819d20e32db..7e33d135e0f 100644
--- a/packages/remix-dev/CHANGELOG.md
+++ b/packages/remix-dev/CHANGELOG.md
@@ -1,5 +1,15 @@
# `@remix-run/dev`
+## 2.15.2
+
+### Patch Changes
+
+- Allow supression of future flag warnings by setting them to `false` ([#10358](https://github.com/remix-run/remix/pull/10358))
+- \[REMOVE] Fix implementation of flag warning supression ([`9c35c5fbc`](https://github.com/remix-run/remix/commit/9c35c5fbc7cba221b4c67c9ea27e6afb308dd3e5))
+- Updated dependencies:
+ - `@remix-run/node@2.15.2`
+ - `@remix-run/server-runtime@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-dev/config.ts b/packages/remix-dev/config.ts
index 4dd453ea5f7..c75f70f5f5a 100644
--- a/packages/remix-dev/config.ts
+++ b/packages/remix-dev/config.ts
@@ -770,7 +770,7 @@ export async function resolveConfig(
}
}
- logFutureFlagWarnings(future);
+ logFutureFlagWarnings(appConfig.future || {});
isFirstLoad = false;
@@ -881,15 +881,15 @@ function logFutureFlagWarning(args: { flag: string; message: string }) {
});
}
-export function logFutureFlagWarnings(future: FutureConfig) {
- if (!future.v3_fetcherPersist) {
+export function logFutureFlagWarnings(future: Partial) {
+ if (future.v3_fetcherPersist === undefined) {
logFutureFlagWarning({
flag: "v3_fetcherPersist",
message: "Fetcher persistence behavior is changing in React Router v7",
});
}
- if (!future.v3_lazyRouteDiscovery) {
+ if (future.v3_lazyRouteDiscovery === undefined) {
logFutureFlagWarning({
flag: "v3_lazyRouteDiscovery",
message:
@@ -897,7 +897,7 @@ export function logFutureFlagWarnings(future: FutureConfig) {
});
}
- if (!future.v3_relativeSplatPath) {
+ if (future.v3_relativeSplatPath === undefined) {
logFutureFlagWarning({
flag: "v3_relativeSplatPath",
message:
@@ -905,14 +905,14 @@ export function logFutureFlagWarnings(future: FutureConfig) {
});
}
- if (!future.v3_singleFetch) {
+ if (future.v3_singleFetch === undefined) {
logFutureFlagWarning({
flag: "v3_singleFetch",
message: "Data fetching is changing to a single fetch in React Router v7",
});
}
- if (!future.v3_throwAbortReason) {
+ if (future.v3_throwAbortReason === undefined) {
logFutureFlagWarning({
flag: "v3_throwAbortReason",
message:
diff --git a/packages/remix-dev/package.json b/packages/remix-dev/package.json
index e7fd64e8795..b41a3b02e67 100644
--- a/packages/remix-dev/package.json
+++ b/packages/remix-dev/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/dev",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Dev tools and CLI for Remix",
"homepage": "https://remix.run",
"bugs": {
@@ -108,8 +108,8 @@
"wrangler": "^3.28.2"
},
"peerDependencies": {
- "@remix-run/react": "^2.15.1",
- "@remix-run/serve": "^2.15.1",
+ "@remix-run/react": "^2.15.2",
+ "@remix-run/serve": "^2.15.2",
"typescript": "^5.1.0",
"vite": "^5.1.0",
"wrangler": "^3.28.2"
diff --git a/packages/remix-eslint-config/CHANGELOG.md b/packages/remix-eslint-config/CHANGELOG.md
index d9c22a77fe8..0b02465d8a7 100644
--- a/packages/remix-eslint-config/CHANGELOG.md
+++ b/packages/remix-eslint-config/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/eslint-config`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-eslint-config/package.json b/packages/remix-eslint-config/package.json
index d88856fb9a4..8956a0e103e 100644
--- a/packages/remix-eslint-config/package.json
+++ b/packages/remix-eslint-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/eslint-config",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "ESLint configuration for Remix projects",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-express/CHANGELOG.md b/packages/remix-express/CHANGELOG.md
index 6401a3418af..ddb952ca1e1 100644
--- a/packages/remix-express/CHANGELOG.md
+++ b/packages/remix-express/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/express`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/node@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-express/package.json b/packages/remix-express/package.json
index 44f98afba63..c10564cab12 100644
--- a/packages/remix-express/package.json
+++ b/packages/remix-express/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/express",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Express server request handler for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-fs-routes/CHANGELOG.md b/packages/remix-fs-routes/CHANGELOG.md
index 27482a9dbd9..350c4768a76 100644
--- a/packages/remix-fs-routes/CHANGELOG.md
+++ b/packages/remix-fs-routes/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/fs-routes`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-fs-routes/package.json b/packages/remix-fs-routes/package.json
index 18f2b021064..e2fec0ab123 100644
--- a/packages/remix-fs-routes/package.json
+++ b/packages/remix-fs-routes/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/fs-routes",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Config-based file system routing conventions, for use within routes.ts",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -22,8 +22,8 @@
"typescript": "^5.1.6"
},
"peerDependencies": {
- "@remix-run/dev": "^2.15.1",
- "@remix-run/route-config": "^2.15.1",
+ "@remix-run/dev": "^2.15.2",
+ "@remix-run/route-config": "^2.15.2",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
diff --git a/packages/remix-node/CHANGELOG.md b/packages/remix-node/CHANGELOG.md
index 76b778cbda9..e2e05662e06 100644
--- a/packages/remix-node/CHANGELOG.md
+++ b/packages/remix-node/CHANGELOG.md
@@ -1,5 +1,12 @@
# `@remix-run/node`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/server-runtime@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-node/package.json b/packages/remix-node/package.json
index 6b6d2661876..45432b042bf 100644
--- a/packages/remix-node/package.json
+++ b/packages/remix-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/node",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Node.js platform abstractions for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-react/CHANGELOG.md b/packages/remix-react/CHANGELOG.md
index a4543c65162..a8daf4ca509 100644
--- a/packages/remix-react/CHANGELOG.md
+++ b/packages/remix-react/CHANGELOG.md
@@ -1,5 +1,13 @@
# `@remix-run/react`
+## 2.15.2
+
+### Patch Changes
+
+- Throw unwrapped single fetch redirect to align with pre-single fetch behavior ([#10317](https://github.com/remix-run/remix/pull/10317))
+- Updated dependencies:
+ - `@remix-run/server-runtime@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-react/package.json b/packages/remix-react/package.json
index 4fc058cf955..34a196f7ae3 100644
--- a/packages/remix-react/package.json
+++ b/packages/remix-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/react",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "React DOM bindings for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -21,8 +21,8 @@
"dependencies": {
"@remix-run/router": "1.21.0",
"@remix-run/server-runtime": "workspace:*",
- "react-router": "6.28.1-pre.0",
- "react-router-dom": "6.28.1-pre.0",
+ "react-router": "6.28.1",
+ "react-router-dom": "6.28.1",
"turbo-stream": "2.4.0"
},
"devDependencies": {
diff --git a/packages/remix-route-config/CHANGELOG.md b/packages/remix-route-config/CHANGELOG.md
index 95ff17f2014..99c85702207 100644
--- a/packages/remix-route-config/CHANGELOG.md
+++ b/packages/remix-route-config/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/route-config`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-route-config/package.json b/packages/remix-route-config/package.json
index 175af0bcbfe..a01d306daf6 100644
--- a/packages/remix-route-config/package.json
+++ b/packages/remix-route-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/route-config",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Config-based routing utilities, for use within routes.ts",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -26,7 +26,7 @@
"vite": "5.1.8"
},
"peerDependencies": {
- "@remix-run/dev": "^2.15.1",
+ "@remix-run/dev": "^2.15.2",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
diff --git a/packages/remix-routes-option-adapter/CHANGELOG.md b/packages/remix-routes-option-adapter/CHANGELOG.md
index f796cff9003..01a3b467750 100644
--- a/packages/remix-routes-option-adapter/CHANGELOG.md
+++ b/packages/remix-routes-option-adapter/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/routes-option-adapter`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-routes-option-adapter/package.json b/packages/remix-routes-option-adapter/package.json
index 4fa9d037c39..f201ef902b6 100644
--- a/packages/remix-routes-option-adapter/package.json
+++ b/packages/remix-routes-option-adapter/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/routes-option-adapter",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Adapter for Remix's \"routes\" config option, for use within routes.ts",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
@@ -22,8 +22,8 @@
"typescript": "^5.1.6"
},
"peerDependencies": {
- "@remix-run/dev": "^2.15.1",
- "@remix-run/route-config": "^2.15.1",
+ "@remix-run/dev": "^2.15.2",
+ "@remix-run/route-config": "^2.15.2",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
diff --git a/packages/remix-serve/CHANGELOG.md b/packages/remix-serve/CHANGELOG.md
index f2b5ae707f7..8abe67f0d9e 100644
--- a/packages/remix-serve/CHANGELOG.md
+++ b/packages/remix-serve/CHANGELOG.md
@@ -1,5 +1,13 @@
# `@remix-run/serve`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/express@2.15.2`
+ - `@remix-run/node@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-serve/package.json b/packages/remix-serve/package.json
index 11b9e7940ac..fd48c7ee8c8 100644
--- a/packages/remix-serve/package.json
+++ b/packages/remix-serve/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/serve",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Production application server for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-server-runtime/CHANGELOG.md b/packages/remix-server-runtime/CHANGELOG.md
index 1d968025e09..c7f54b4e0f3 100644
--- a/packages/remix-server-runtime/CHANGELOG.md
+++ b/packages/remix-server-runtime/CHANGELOG.md
@@ -1,5 +1,7 @@
# `@remix-run/server-runtime`
+## 2.15.2
+
## 2.15.1
## 2.15.0
diff --git a/packages/remix-server-runtime/package.json b/packages/remix-server-runtime/package.json
index 1a28f6cd0ea..567d7598371 100644
--- a/packages/remix-server-runtime/package.json
+++ b/packages/remix-server-runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/server-runtime",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Server runtime for Remix",
"bugs": {
"url": "https://github.com/remix-run/remix/issues"
diff --git a/packages/remix-testing/CHANGELOG.md b/packages/remix-testing/CHANGELOG.md
index d747c4f16bb..3ac36b7a3b2 100644
--- a/packages/remix-testing/CHANGELOG.md
+++ b/packages/remix-testing/CHANGELOG.md
@@ -1,5 +1,13 @@
# `@remix-run/testing`
+## 2.15.2
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@remix-run/react@2.15.2`
+ - `@remix-run/node@2.15.2`
+
## 2.15.1
### Patch Changes
diff --git a/packages/remix-testing/package.json b/packages/remix-testing/package.json
index 00cbdf125a4..41af47404f4 100644
--- a/packages/remix-testing/package.json
+++ b/packages/remix-testing/package.json
@@ -1,6 +1,6 @@
{
"name": "@remix-run/testing",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "Testing utilities for Remix apps",
"homepage": "https://remix.run",
"bugs": {
@@ -22,7 +22,7 @@
"@remix-run/node": "workspace:*",
"@remix-run/react": "workspace:*",
"@remix-run/router": "1.21.0",
- "react-router-dom": "6.28.1-pre.0"
+ "react-router-dom": "6.28.1"
},
"devDependencies": {
"@remix-run/server-runtime": "workspace:*",
diff --git a/packages/remix/package.json b/packages/remix/package.json
index 2d421fe690d..559c5268adb 100644
--- a/packages/remix/package.json
+++ b/packages/remix/package.json
@@ -1,6 +1,6 @@
{
"name": "remix",
- "version": "2.15.1",
+ "version": "2.15.2",
"description": "A framework for building better websites",
"homepage": "https://remix.run",
"bugs": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3dbd3be56f0..24c67c64eb1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -557,13 +557,13 @@ importers:
integration/helpers/vite-cloudflare-template:
dependencies:
'@remix-run/cloudflare':
- specifier: 2.15.1
+ specifier: 2.15.2
version: link:../../../packages/remix-cloudflare
'@remix-run/cloudflare-pages':
- specifier: 2.15.1
+ specifier: 2.15.2
version: link:../../../packages/remix-cloudflare-pages
'@remix-run/react':
- specifier: 2.15.1
+ specifier: 2.15.2
version: link:../../../packages/remix-react
isbot:
specifier: ^4.1.0
@@ -880,7 +880,7 @@ importers:
specifier: workspace:*
version: link:../remix-node
'@remix-run/react':
- specifier: ^2.15.1
+ specifier: ^2.15.2
version: link:../remix-react
'@remix-run/router':
specifier: 1.21.0
@@ -1253,11 +1253,11 @@ importers:
specifier: workspace:*
version: link:../remix-server-runtime
react-router:
- specifier: 6.28.1-pre.0
- version: 6.28.1-pre.0(react@18.2.0)
+ specifier: 6.28.1
+ version: 6.28.1(react@18.2.0)
react-router-dom:
- specifier: 6.28.1-pre.0
- version: 6.28.1-pre.0(react-dom@18.2.0)(react@18.2.0)
+ specifier: 6.28.1
+ version: 6.28.1(react-dom@18.2.0)(react@18.2.0)
turbo-stream:
specifier: 2.4.0
version: 2.4.0
@@ -1404,8 +1404,8 @@ importers:
specifier: 1.21.0
version: 1.21.0
react-router-dom:
- specifier: 6.28.1-pre.0
- version: 6.28.1-pre.0(react-dom@18.2.0)(react@18.2.0)
+ specifier: 6.28.1
+ version: 6.28.1(react-dom@18.2.0)(react@18.2.0)
devDependencies:
'@remix-run/server-runtime':
specifier: workspace:*
@@ -12840,8 +12840,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /react-router-dom@6.28.1-pre.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-GdGG7PBIlWY0YsH1EsJik526Ph6DNv6WEADqY+6Tq1vZRDv6jijVc6TTsTlOMqzvfIsA3fW/y96KgkjOk0IV3A==}
+ /react-router-dom@6.28.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'
@@ -12850,11 +12850,11 @@ packages:
'@remix-run/router': 1.21.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-router: 6.28.1-pre.0(react@18.2.0)
+ react-router: 6.28.1(react@18.2.0)
dev: false
- /react-router@6.28.1-pre.0(react@18.2.0):
- resolution: {integrity: sha512-Z91mG6e7KDdmTMs0J5QcYpcOv138en8nPhNTNcC2mTAkMblce2C0rP/csExqL8xPbiCznfwglibno4au/JYFAA==}
+ /react-router@6.28.1(react@18.2.0):
+ resolution: {integrity: sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'