Skip to content

Commit 4aa9298

Browse files
committed
Merge branch 'main' into release-next
2 parents 6713df5 + ab07614 commit 4aa9298

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2675
-579
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,31 @@ body:
88
value: |
99
Thank you for helping to improve React Router!
1010
11-
- **All** bugs must have a **minimal** reproduction
12-
- Minimal means that it is not just pointing to a deployed site or a branch in your existing application
13-
- The preferred method is StackBlitz via [https://reactrouter.com/new](https://reactrouter.com/new)
14-
- If Stackblitz is not an option, a GitHub repo based on a fresh `create-react-router` app is acceptable
15-
- Only in extraordinary circumstances will code snippets or maximal reproductions be accepted
16-
- Issue Review
17-
- Issues not meeting the above criteria will be closed and pointed to this document
18-
- Non-issues (feature requests, usage questions) will also be closed with a link to this document
19-
- The SC will triage issues regularly
20-
- Fixing Issues
21-
- The SC will mark good community issues with an `Accepting PRs` label
22-
- These issues will generally be ones that are likely to have a small surface area fix
23-
- However, anyone can work on any issue but there's no guarantee the PR will be accepted if the surface area is too large for expedient review by a core team member
11+
Please note that **all** bugs must have a **minimal** and **runnable** reproduction, meaning that it is not just pointing to a deployed site or a branch in your existing application, or showing a small code snippet. For more information, please refer to the [Bug/Issue Process Guidelines](https://github.com/remix-run/react-router/blob/main/GOVERNANCE.md#bugissue-process).
2412
25-
## Option 1: Submit a PR with a failing test
13+
## If you are using **Framework Mode**, you have 2 preferred options
14+
15+
### Option 1 - Create a failing integration test
2616
2717
🏆 The most helpful reproduction is to use our _bug report integration test_ template:
2818
2919
1. [Fork `remix-run/react-router`](https://github.com/remix-run/react-router/fork)
3020
2. Open [`integration/bug-report-test.ts`](https://github.com/remix-run/react-router/blob/dev/integration/bug-report-test.ts) in your editor
31-
3. Follow the instructions and submit a pull request with a failing bug report test!
32-
33-
## Option 2: Continue filling out this form
21+
3. Follow the instructions to create a failing bug report test
22+
4. Link to your forked branch with the failing test in this issue
3423
35-
If you'd rather open a GitHub issue, here are other ways to share a reproduction (ordered from most helpful to least):
24+
### Option 2 - Create a **minimal** reproduction
3625
3726
- 🥇 Link to a [StackBlitz](https://reactrouter.com/new) environment
38-
- 🥈 Link to a GitHub repository
39-
- 🥉 Description of project including template, config files, `package.json` scripts, etc.
27+
- 🥈 Link to a GitHub repository containing a minimal reproduction app
28+
29+
## If you are using **Data** or **Declarative Mode**
30+
31+
Create a **minimal** reproduction
32+
33+
- 🥇 Link to a CodeSandbox repro: [TS](https://codesandbox.io/templates/react-vite-ts) | [JS](https://codesandbox.io/templates/react-vite)
34+
- 🥈 Link to a GitHub repository containing a minimal reproduction app
4035
41-
- type: dropdown
42-
id: mode
43-
attributes:
44-
label: I'm using React Router as a...
45-
description: See https://reactrouter.com/home for explanation
46-
options:
47-
- library
48-
- framework
49-
validations:
50-
required: true
5136
- type: textarea
5237
id: reproduction
5338
attributes:

.github/workflows/close-feature-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
# gone through the Proposal process
33
# Triggered by adding the `feature-request` label to an issue
44

5-
name: 🚪 Close Feature Pull Request
5+
name: 🚪 Check Feature PR
66

77
on:
88
pull_request:
99
types: [labeled]
1010

1111
jobs:
1212
close-feature-pr:
13-
name: 🚪 Close Feature Pull Request
13+
name: 🚪 Check Feature PR
1414
if: github.repository == 'remix-run/react-router' && github.event.label.name == 'feature-request'
1515
runs-on: ubuntu-latest
1616
steps:
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Close a singular issue without a reproduction
2+
# Triggered by adding the `no-reproduction` label to an issue
3+
4+
name: 🚪 Close issue without a reproduction
5+
6+
on:
7+
issues:
8+
types: [labeled]
9+
10+
jobs:
11+
close-no-repro-issue:
12+
name: 🚪 Close issue
13+
if: github.repository == 'remix-run/react-router' && github.event.label.name == 'no-reproduction'
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: ⬇️ Checkout repo
17+
uses: actions/checkout@v4
18+
19+
- name: 🚪 Close issue
20+
env:
21+
GH_TOKEN: ${{ github.token }}
22+
run: |
23+
gh issue comment ${{ github.event.issue.number }} -F ./scripts/close-no-repro-issue.md
24+
gh issue edit ${{ github.event.issue.number }} --remove-label ${{ github.event.label.name }}
25+
gh issue close ${{ github.event.issue.number }} -r "not planned";
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# This is a bulk-close script that was used initially to find and close issues
2+
# without a repro, but moving forward we'll likely use the singular version
3+
# (close-no-repro-issue.yml) on new issues which is driven by a label added to
4+
# the issue
5+
6+
name: 🚪 Close issues without a reproduction
7+
8+
on:
9+
workflow_dispatch:
10+
inputs:
11+
dryRun:
12+
type: boolean
13+
description: "Dry Run? (no issues will be closed)"
14+
default: false
15+
16+
concurrency: ${{ github.workflow }}-${{ github.ref }}
17+
18+
jobs:
19+
close-no-repro-issues:
20+
name: 🚪 Close issues
21+
if: github.repository == 'remix-run/react-router'
22+
runs-on: ubuntu-latest
23+
env:
24+
CI: "true"
25+
GH_TOKEN: ${{ github.token }}
26+
steps:
27+
- name: ⬇️ Checkout repo
28+
uses: actions/checkout@v4
29+
30+
- name: 📦 Setup pnpm
31+
uses: pnpm/[email protected]
32+
33+
- name: ⎔ Setup node
34+
uses: actions/setup-node@v4
35+
with:
36+
# required for --experimental-strip-types
37+
node-version: 22
38+
cache: "pnpm"
39+
40+
- name: 📥 Install deps
41+
run: pnpm install --frozen-lockfile
42+
43+
- name: 🚪 Close Issues (Dry Run)
44+
if: ${{ inputs.dryRun }}
45+
run: node --experimental-strip-types ./scripts/close-no-repro-issues.ts --dryRun
46+
47+
- name: 🚪 Close Issues
48+
if: ${{ ! inputs.dryRun }}
49+
run: node --experimental-strip-types ./scripts/close-no-repro-issues.ts

.github/workflows/docs.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: 📚 Docs
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
branch:
7+
description: "Branch to generate docs for"
8+
required: true
9+
api:
10+
description: "API Names to generate docs for"
11+
required: false
12+
default: ""
13+
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
docs:
20+
if: github.repository == 'remix-run/react-router'
21+
runs-on: ubuntu-latest
22+
23+
steps:
24+
- name: ⬇️ Checkout repo
25+
uses: actions/checkout@v4
26+
with:
27+
token: ${{ secrets.FORMAT_PAT }}
28+
ref: ${{ github.event.inputs.branch }}
29+
30+
- name: 📦 Setup pnpm
31+
uses: pnpm/action-setup@v4
32+
33+
- name: ⎔ Setup node
34+
uses: actions/setup-node@v4
35+
with:
36+
node-version-file: ".nvmrc"
37+
cache: pnpm
38+
39+
- name: 📥 Install deps
40+
run: pnpm install --frozen-lockfile
41+
42+
- name: 🏗 Build
43+
run: pnpm build
44+
45+
- name: 📚 Generate Typedoc Docs
46+
run: pnpm run docs
47+
48+
- name: 📚 Generate Markdown Docs (for all APIs)
49+
if: github.event.inputs.api == ''
50+
run: node --experimental-strip-types scripts/docs.ts --path packages/react-router/lib/hooks.tsx --write
51+
52+
- name: 📚 Generate Markdown Docs (for specific APIs)
53+
if: github.event.inputs.api != ''
54+
run: node --experimental-strip-types scripts/docs.ts --path packages/react-router/lib/hooks.tsx --write --api ${{ github.event.inputs.api }}
55+
56+
- name: 💪 Commit
57+
run: |
58+
git config --local user.email "[email protected]"
59+
git config --local user.name "Remix Run Bot"
60+
61+
git add .
62+
if [ -z "$(git status --porcelain)" ]; then
63+
echo "💿 no docs changed"
64+
exit 0
65+
fi
66+
git commit -m "chore: generate markdown docs from jsdocs"
67+
git push
68+
echo "💿 pushed docs changes https://github.com/$GITHUB_REPOSITORY/commit/$(git rev-parse HEAD)"

.github/workflows/release-stage-2-alpha.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 🧪 Stage 2 (Alpha) Release
1+
name: 🧪 Check Alpha Release
22

33
on:
44
pull_request:
@@ -11,7 +11,7 @@ env:
1111

1212
jobs:
1313
alpha-release:
14-
name: 🧪 Alpha Release
14+
name: 🧪 Check Alpha Release
1515
if: github.repository == 'remix-run/react-router' && github.event.label.name == 'alpha-release'
1616
runs-on: ubuntu-latest
1717
steps:

0 commit comments

Comments
 (0)