Skip to content

Commit 963f3ae

Browse files
committed
Merge branch 'main' into release-next
2 parents d1e95ee + a6f41e9 commit 963f3ae

File tree

5 files changed

+71
-4
lines changed

5 files changed

+71
-4
lines changed

GOVERNANCE.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- [Stage 3 — Beta](#stage-3--beta)
1313
- [Stage 4 — Stabilization](#stage-4--stabilization)
1414
- [Stage 5 — Stable](#stage-5--stable)
15+
- [Meeting Notes](#meeting-notes)
1516

1617
## Overview
1718

@@ -150,3 +151,51 @@ This table gives a high-level overview of the stages, but please see the individ
150151
- A proposal enters **Stage 5 — Stable** once it receives **Stage 4 — Stabilization** PR approvals from at least 50% of the SC members and is merged to `dev`
151152
- An SC member authoring the stabilization PR counts as an implicit approval
152153
- This will include the stable feature in `nightly` releases and the next normal SemVer release
154+
155+
## Meeting Notes
156+
157+
This section captures the notes from the React Router Steering Committee meetings:
158+
159+
<!-- TEMPLATE
160+
<details>
161+
<summary>YYYY-MM-DD Meeting Notes</summary>
162+
163+
...
164+
</details>
165+
-->
166+
167+
<details>
168+
<summary>2025-09-08 Meeting Notes</summary>
169+
170+
**Summary**
171+
172+
Matt Brophy, Bryan Ross (rossipedia), Mark Dalgleish, and Pedro Cattori discussed the progress of various features, including middleware, context, the `onError` feature, and RSC framework mode, with most nearing completion or already released. Matt Brophy and Bryan Ross (rossipedia) also explored the integration of observability and OpenTelemetry with Sentry and React Router, considering OpenTelemetry as a potential standard for JavaScript monitoring. The team decided to focus on current in-progress items instead of reviewing and accepting additional proposals because there are already 10+ proposals in-progress.
173+
174+
**Details**
175+
176+
- Roadmap Review and Release Progress
177+
- Matt Brophy initiated the meeting by reviewing the public roadmap, starting with [middleware](https://github.com/remix-run/react-router/issues/12695) and [context](https://github.com/remix-run/react-router/issues/14055), which are merged to dev and awaiting a pre-release for version 7.9.0
178+
- Bryan Ross (rossipedia) confirmed that the [`onError`](https://github.com/remix-run/react-router/issues/12958) feature, released in 7.8.2, is working as expected and providing anticipated data
179+
- Mark Dalgleish noted that the RSC framework mode initial release will not be feature complete but is nearing completion, with the main remaining task being error handling during rendering ([RFC](https://github.com/remix-run/react-router/issues/11566))
180+
- Upcoming Features and API Discussions
181+
- Pedro Cattori discussed the `useRouterState` hook, noting that Ryan's attention is elsewhere, but they are interested in revisiting it for type safety and potentially replacing the `useRouteLoaderData` hook
182+
- Brooks Lybrand and Pedro Cattori agreed that the `use matches` API is problematic, especially concerning type safety, and suggested finding a solution that does not rely on it
183+
- We may be able to keep the distinction that hooks for use in data mode are less type-safe than the typegen equivalents in framework mode, so it might be ok for `useRouterState().matches` to be less type-safe than `Route.ComponentProps["matches"]`
184+
- [RFC](https://github.com/remix-run/react-router/issues/13073)
185+
- Observability and OpenTelemetry Integration
186+
- Matt Brophy and Bryan Ross (rossipedia) discussed the [observability](https://github.com/remix-run/react-router/discussions/13749) feature, which aims to improve Sentry's integration with React Router Apps
187+
- Bryan Ross (rossipedia) explained that a strict event-based system would not support OpenTelemetry because OpenTelemetry requires bounding code execution within a span, unlike events which are instantaneous
188+
- They are considering whether React Router should fully embrace OpenTelemetry as it appears to be becoming a de facto standard for JavaScript monitoring, which could potentially replace the need for a separate event system
189+
- Meeting Wrap-up and Next Steps
190+
- Matt Brophy announced that the pre-release for version 7.9.0 would be shipped shortly, with the full release expected by the end of the week
191+
- Bryan Ross (rossipedia) confirmed that the duplicate loader issue fix will be included in this release
192+
- The team decided not to overload themselves with additional tasks, focusing on the current in-progress items
193+
194+
**Action Items**
195+
196+
- Mark Dalgleish will work on stabilizing the split route modules and Vite environment API flags
197+
- Matt Brophy will read through the SvelteKit blog post to understand their approach to OpenTelemetry integration
198+
- Matt Brophy will merge the unstable [`fetcher.reset()`](https://github.com/remix-run/react-router/issues/14207) work after 7.9.0 is released ()
199+
- Matt Brophy will try to pick up the [`<Link onPrefetch>`](https://github.com/remix-run/react-router/discussions/12375) task soon
200+
- Matt Brophy and Pedro Cattori will sync up offline to figure out what parts of the consolidated hook can be done better with typegen and decide on the requirements ([RFC](https://github.com/remix-run/react-router/issues/13073))
201+
</details>

docs/api/framework-conventions/react-router.config.ts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ A function that is called after the full React Router build is complete.
6666

6767
```tsx filename=react-router.config.ts
6868
export default {
69-
buildEnd: async ({ buildManifest, serverBuildPath }) => {
69+
buildEnd: async ({ buildManifest, reactRouterConfig, viteConfig }) => {
7070
// Custom build logic here
7171
console.log("Build completed!");
7272
},

docs/api/framework-conventions/root.tsx.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ export function Layout({
191191
}
192192
```
193193

194-
[route-module]: ../start/framework/route-module
194+
[route-module]: ../../start/framework/route-module
195195
[react-link]: https://react.dev/reference/react-dom/components/link
196196
[react-meta]: https://react.dev/reference/react-dom/components/meta
197197
[react-title]: https://react.dev/reference/react-dom/components/title

docs/api/framework-conventions/routes.ts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ You can use the following helpers to create route config entries:
4242
- [`route`][route] — Helper function for creating a route config entry
4343
- [`index`][index] — Helper function for creating a route config entry for an index route
4444
- [`layout`][layout] — Helper function for creating a route config entry for a layout route
45-
- [`prefix`][prefix] — Helper function for adding a path prefix to a set of routes without needing to introduce a parent route file
45+
- [`prefix`][prefix] — Helper function for adding a path prefix to a set of routes without needing to introduce a parent route
4646
- [`relative`][relative] — Creates a set of route config helpers that resolve file paths relative to the given directory. Designed to support splitting route config into multiple files within different directories
4747

4848
### File-based Routing

docs/start/framework/routing.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ Note that index routes can't have children.
204204

205205
## Route Prefixes
206206

207-
Using `prefix`, you can add a path prefix to a set of routes without needing to introduce a parent route file.
207+
Using `prefix`, you can add a path prefix to a set of routes without needing to introduce a parent route.
208208

209209
```tsx filename=app/routes.ts lines=[14]
210210
import {
@@ -230,6 +230,24 @@ export default [
230230
] satisfies RouteConfig;
231231
```
232232

233+
Note that this does not introduce a new route into the route tree. Instead, it merely modifies the paths of its children.
234+
235+
For example, these two sets of routes are equivalent:
236+
237+
```ts filename=app/routes.ts
238+
// This usage of `prefix`...
239+
prefix("parent", [
240+
route("child1", "./child1.tsx"),
241+
route("child2", "./child2.tsx"),
242+
])
243+
244+
// ...is equivalent to this:
245+
[
246+
route("parent/child1", "./child1.tsx"),
247+
route("parent/child2", "./child2.tsx"),
248+
]
249+
```
250+
233251
## Dynamic Segments
234252

235253
If a path segment starts with `:` then it becomes a "dynamic segment". When the route matches the URL, the dynamic segment will be parsed from the URL and provided as `params` to other router APIs.

0 commit comments

Comments
 (0)