Skip to content

Commit 0cd611d

Browse files
committed
Merge branch 'next' into feat/registry
2 parents fc7d16f + 3b856e6 commit 0cd611d

File tree

169 files changed

+5482
-2674
lines changed

Some content is hidden

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

169 files changed

+5482
-2674
lines changed

.github/workflows/analyse-nextjs-release.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
name: 'Analyse Next.js release'
2-
run-name: 'Analyse Next.js ${{ inputs.version }}'
1+
name: "Analyse Next.js release"
2+
run-name: "Analyse Next.js ${{ inputs.version }}"
33

44
on:
55
workflow_dispatch:
66
inputs:
77
version:
8-
description: 'Next.js version to test against'
8+
description: "Next.js version to test against"
99
required: true
1010
type: string
1111

@@ -31,15 +31,15 @@ jobs:
3131
console.log(\`Version '\${version}' is valid SemVer\`);
3232
"
3333
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
34-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
35-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
34+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
35+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
3636
with:
3737
node-version-file: .node-version
3838
cache: pnpm
3939
- name: Install dependencies
4040
run: pnpm install
4141
- name: Check for changes in app router
42-
run: ./next-release-analyser.mjs --version "${{ env.VERSION }}"
42+
run: ./next-release-analyser.ts --version "${{ env.VERSION }}"
4343
working-directory: packages/scripts
4444
env:
4545
MAILPACE_API_TOKEN: ${{ secrets.MAILPACE_API_TOKEN }}

.github/workflows/ci-cd.yml

Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ jobs:
1919
runs-on: ubuntu-24.04-arm
2020
steps:
2121
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
22-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
23-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
22+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
23+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
2424
with:
2525
node-version-file: .node-version
2626
cache: pnpm
@@ -49,8 +49,8 @@ jobs:
4949
needs: [ci-core]
5050
steps:
5151
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
52-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
53-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
52+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
53+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
5454
with:
5555
node-version-file: .node-version
5656
cache: pnpm
@@ -74,8 +74,8 @@ jobs:
7474
runs-on: ubuntu-24.04-arm
7575
steps:
7676
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
77-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
78-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
77+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
78+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
7979
with:
8080
node-version-file: .node-version
8181
cache: pnpm
@@ -94,8 +94,8 @@ jobs:
9494
needs: [ci-core]
9595
steps:
9696
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
97-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
98-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
97+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
98+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
9999
with:
100100
node-version-file: .node-version
101101
cache: pnpm
@@ -161,8 +161,8 @@ jobs:
161161
react-compiler: true
162162
steps:
163163
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
164-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
165-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
164+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
165+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
166166
with:
167167
node-version-file: .node-version
168168
cache: pnpm
@@ -180,7 +180,7 @@ jobs:
180180
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
181181
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
182182
- name: Save Cypress artifacts
183-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
183+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
184184
if: failure()
185185
with:
186186
path: packages/e2e/next/cypress/screenshots
@@ -204,8 +204,8 @@ jobs:
204204
full-page-nav-on-shallow-false: [false, true]
205205
steps:
206206
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
207-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
208-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
207+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
208+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
209209
with:
210210
node-version-file: .node-version
211211
cache: pnpm
@@ -219,7 +219,7 @@ jobs:
219219
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
220220
FULL_PAGE_NAV_ON_SHALLOW_FALSE: ${{ matrix.full-page-nav-on-shallow-false }}
221221
- name: Save Cypress artifacts
222-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
222+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
223223
if: failure()
224224
with:
225225
path: packages/e2e/react/cypress/screenshots
@@ -245,8 +245,8 @@ jobs:
245245
- "v7"
246246
steps:
247247
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
248-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
249-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
248+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
249+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
250250
with:
251251
node-version-file: .node-version
252252
cache: pnpm
@@ -259,7 +259,7 @@ jobs:
259259
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
260260
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
261261
- name: Save Cypress artifacts
262-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
262+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
263263
if: failure()
264264
with:
265265
path: packages/e2e/react-router/${{ matrix.react-router-version }}/cypress/screenshots
@@ -279,8 +279,8 @@ jobs:
279279
needs: [ci-core]
280280
steps:
281281
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
282-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
283-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
282+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
283+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
284284
with:
285285
node-version-file: .node-version
286286
cache: pnpm
@@ -293,7 +293,7 @@ jobs:
293293
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
294294
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
295295
- name: Save Cypress artifacts
296-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
296+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
297297
if: failure()
298298
with:
299299
path: packages/e2e/remix/cypress/screenshots
@@ -313,8 +313,8 @@ jobs:
313313
needs: [ci-core]
314314
steps:
315315
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
316-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
317-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
316+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
317+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
318318
with:
319319
node-version-file: .node-version
320320
cache: pnpm
@@ -327,7 +327,7 @@ jobs:
327327
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
328328
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
329329
- name: Save Cypress artifacts
330-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
330+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
331331
if: failure()
332332
with:
333333
path: packages/e2e/tanstack-router/cypress/screenshots
@@ -369,7 +369,7 @@ jobs:
369369
contents: write # to be able to publish a GitHub release
370370
issues: write # to be able to comment on released issues
371371
pull-requests: write # to be able to comment on released pull requests
372-
id-token: write # to enable use of OIDC for NPM provenance
372+
id-token: write # to enable use of OIDC for NPM provenance / trusted publishing
373373
needs:
374374
- docs
375375
- lint
@@ -383,25 +383,59 @@ jobs:
383383
if: ${{ github.ref_name == 'master' || github.ref_name == 'beta' }}
384384
steps:
385385
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
386-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
387-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
386+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
387+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
388388
with:
389389
node-version-file: .node-version
390390
cache: pnpm
391391
# Note: we do not use an external Turbo cache for publishing
392392
# to prevent against possible cache collision attacks.
393+
- name: Update npm # Ensure npm 11.5.1 or later is installed for OIDC trusted publishing
394+
run: npm install -g npm@latest
393395
- name: Install dependencies
394396
run: pnpm install --ignore-scripts --frozen-lockfile --filter nuqs...
397+
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
398+
run: npm audit signatures
395399
- name: Build package
396400
run: pnpm build --filter nuqs
397401
- name: Semantic Release
398402
run: ../../node_modules/.bin/semantic-release
399403
working-directory: packages/nuqs
400404
env:
401405
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
402-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
403-
- name: Invalidate ISR cache for NPM in the docs
404-
run: curl -s "https://nuqs.dev/api/isr?tag=npm&token=${{ secrets.ISR_TOKEN }}"
405-
- name: Invalidate ISR cache for contributors in the docs
406-
if: ${{ github.ref_name == 'next' && github.event_name == 'push' }}
407-
run: curl -s "https://nuqs.dev/api/isr?tag=contributors&token=${{ secrets.ISR_TOKEN }}"
406+
- name: Read package version
407+
id: package-version
408+
run: |
409+
VERSION=$(jq -r '.version' package.json)
410+
echo "version=$VERSION" >> $GITHUB_OUTPUT
411+
echo "Released version: $VERSION"
412+
working-directory: packages/nuqs
413+
- name: Invalidate contributors ISR cache in the docs
414+
if: ${{ github.event_name == 'push' && github.ref_name == 'master' }}
415+
run: |
416+
curl -s "https://nuqs.dev/api/isr?tag=contributors&token=${{ secrets.ISR_TOKEN }}"
417+
- name: Install dependencies
418+
if: ${{ github.event_name == 'push' && steps.package-version.outputs.version != '0.0.0-semantically-released' }}
419+
run: pnpm install --ignore-scripts --frozen-lockfile --filter scripts
420+
- name: Generate release notes
421+
id: release-notes
422+
if: ${{ github.event_name == 'push' && steps.package-version.outputs.version != '0.0.0-semantically-released' }}
423+
run: |
424+
NOTES=$(./release-notes-automation.ts)
425+
echo "$NOTES" >> $GITHUB_STEP_SUMMARY
426+
{
427+
echo 'notes<<EOF'
428+
echo "$NOTES"
429+
echo 'EOF'
430+
} >> $GITHUB_OUTPUT
431+
working-directory: packages/scripts
432+
env:
433+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
434+
- name: Update GitHub release notes
435+
if: ${{ github.event_name == 'push' && steps.package-version.outputs.version != '0.0.0-semantically-released' }}
436+
run: |
437+
echo "${{ steps.release-notes.outputs.notes }}" | \
438+
gh release edit "v${{ steps.package-version.outputs.version }}" \
439+
--notes-file -
440+
env:
441+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Clear "Shipping Next"
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
SHIPPING_NEXT_MILESTONE_ID: 2 # ID for "Shipping Next" milestone
8+
9+
permissions:
10+
pull-requests: write
11+
issues: write
12+
13+
jobs:
14+
clear_shipping_next:
15+
name: Clear "Shipping Next" Milestone
16+
runs-on: ubuntu-24.04-arm
17+
18+
steps:
19+
- name: Get issues & PRs in "Shipping Next" milestone
20+
id: get_issues
21+
run: |
22+
# Fetch issues with titles
23+
response=$(gh api -X GET \
24+
repos/${{ github.repository }}/issues \
25+
-f milestone=${{ env.SHIPPING_NEXT_MILESTONE_ID }} \
26+
-f state=all \
27+
-f labels=released)
28+
29+
# Extract just the numbers for the output
30+
issues=$(echo "$response" | jq -r '[.[].number] | join(" ")')
31+
echo "issues=$issues" >> $GITHUB_OUTPUT
32+
33+
# Add step summary with titles
34+
if [ -n "$issues" ]; then
35+
echo "## Issues & PRs to clear from 'Shipping Next' milestone" >> $GITHUB_STEP_SUMMARY
36+
echo "" >> $GITHUB_STEP_SUMMARY
37+
echo "$response" | jq -r '.[] | "- [#\(.number)](https://github.com/${{ github.repository }}/issues/\(.number)) \(.title)"' >> $GITHUB_STEP_SUMMARY
38+
else
39+
echo "No issues or PRs found in the 'Shipping Next' milestone with the 'released' label." >> $GITHUB_STEP_SUMMARY
40+
fi
41+
env:
42+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43+
44+
- name: Clear milestone from issues & PRs
45+
if: steps.get_issues.outputs.issues != ''
46+
run: |
47+
for issue_number in ${{ steps.get_issues.outputs.issues }}; do
48+
gh api -X PATCH \
49+
repos/${{ github.repository }}/issues/$issue_number \
50+
-F milestone=null
51+
done
52+
env:
53+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/pkg.pr.new.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ jobs:
1818
runs-on: ubuntu-24.04-arm
1919
steps:
2020
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
21-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
22-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
21+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
22+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
2323
with:
2424
node-version-file: .node-version
2525
cache: pnpm

.github/workflows/pr-lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ jobs:
1212
runs-on: ubuntu-24.04-arm
1313
steps:
1414
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
15-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
16-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
15+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
16+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
1717
with:
1818
node-version-file: .node-version
1919
cache: pnpm

.github/workflows/test-against-nextjs-release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ jobs:
3636
console.log(\`Version '\${version}' is valid SemVer\`);
3737
"
3838
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
39-
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda
40-
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
39+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061
40+
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903
4141
with:
4242
node-version-file: .node-version
4343
cache: pnpm
@@ -54,7 +54,7 @@ jobs:
5454
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
5555
E2E_NO_CACHE_ON_RERUN: ${{ github.run_attempt }}
5656
- name: Save Cypress artifacts
57-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
57+
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
5858
if: failure()
5959
with:
6060
path: packages/e2e-next/cypress/screenshots

.node-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
24.6.0
1+
24.11.0

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ When running `next dev`, this will:
2626
- http://localhost:3002 - [React SPA](./packages/e2e/react)
2727
- http://localhost:3003 - [Remix](./packages/e2e/remix)
2828
- http://localhost:3004 - [TanStack Router](./packages/e2e/tanstack-router)
29+
- http://localhost:3005 - [React Router v5](./packages/e2e/react-router/v5)
2930
- http://localhost:3006 - [React Router v6](./packages/e2e/react-router/v6)
3031
- http://localhost:3007 - [React Router v7](./packages/e2e/react-router/v7)
3132
- Start the examples:

package.json

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,17 @@
2222
"lint:sherif": "sherif"
2323
},
2424
"devDependencies": {
25-
"@commitlint/config-conventional": "^19.8.1",
26-
"commitlint": "^19.8.1",
25+
"@commitlint/config-conventional": "^20.0.0",
26+
"commitlint": "^20.1.0",
2727
"husky": "^9.1.7",
2828
"prettier": "3.6.2",
2929
"publint": "^0.3.12",
30-
"semantic-release": "^24.2.7",
30+
"semantic-release": "^25.0.1",
3131
"sherif": "^1.6.1",
3232
"turbo": "^2.5.6",
3333
"typescript": "^5.9.2"
3434
},
35-
"packageManager": "[email protected]",
36-
"resolutions": {
37-
"@semantic-release/github": "^11.0.5"
38-
},
35+
"packageManager": "[email protected]",
3936
"prettier": {
4037
"arrowParens": "avoid",
4138
"semi": false,

packages/docs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ next-env.d.ts
3030
.sentryclirc
3131

3232
# shadcn registry output
33+
registry.json
3334
public/r

0 commit comments

Comments
 (0)