Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 7 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,13 @@ jobs:
#
# Lint
#
- run: pnpm lint:metadata
- run: pnpm lint:versions
# `check`, not `lint`: it adds the repo-wide `prettier --check` that the
# pre-commit hook cannot afford (every commit would invalidate it), and
# so covers a `git commit -n` or anything that wrote outside a commit.
- run: pnpm check
# Asserts the `inputs` above stay honest: which file makes which task
# re-run. Runs turbo with `--dry`, so it costs hashes, not builds.
- run: pnpm test:turbo

#
# Test
Expand Down
3 changes: 3 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `--concurrent false`: prettier rewrites the staged manifests that the
# metadata/syncpack checks then read, so the tasks must not overlap.
pnpm exec lint-staged --concurrent false
8 changes: 8 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# What CI gates on, run once per push instead of once per commit: `check`
# reads the whole repo (`format:check` alone is ~10s), which is affordable
# here and is not in the pre-commit hook -- there, lint-staged fixes the
# staged files instead, and every commit would invalidate this.
#
# Nothing new since the last push is FULL TURBO, so the cost is only paid for
# what actually moved.
pnpm check
20 changes: 20 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated, and `.patch` files prettier has no parser for -- `format:check`
# runs without `--ignore-unknown`, so it would error on them rather than skip
# them. Build outputs and `.turbo/` need no entry: they are gitignored, and
# prettier reads `.gitignore` too.
pnpm-lock.yaml
patches/

# Local agent checkouts, plus a vendored skill that has to stay byte-identical
# to what its registry emits.
.claude/

# Compiled payloads and 3D assets. Prettier claims a parser for every one of
# these -- `.gltf` is json to it, minified draco is babel -- so
# `--ignore-unknown` does not cover them: a single 200k-character line would
# be exploded into tens of thousands. Only `.glb` is safe by itself, being
# binary. Font atlases are deliberately not here: they are json we are happy
# to see formatted.
**/draco*/
**/realism-effects/
**/*.gltf
93 changes: 23 additions & 70 deletions .syncpackrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,110 +2,67 @@
"versionGroups": [
{
"label": "React is pinned for all examples (19.x is required by @react-three/fiber 9)",
"packages": [
"@example/**"
],
"dependencies": [
"react",
"react-dom"
],
"packages": ["@example/**"],
"dependencies": ["react", "react-dom"],
"pinVersion": "19.2.8"
},
{
"label": "React types are pinned for all examples",
"packages": [
"@example/**"
],
"dependencies": [
"@types/react"
],
"packages": ["@example/**"],
"dependencies": ["@types/react"],
"pinVersion": "19.2.17"
},
{
"label": "React DOM types are pinned for all examples",
"packages": [
"@example/**"
],
"dependencies": [
"@types/react-dom"
],
"packages": ["@example/**"],
"dependencies": ["@types/react-dom"],
"pinVersion": "19.2.3"
},
{
"label": "three is pinned: the @splinetool/loader patch is keyed to r165, and postprocessing 6.36.6 needs < 0.173",
"packages": [
"@example/**"
],
"dependencies": [
"three"
],
"packages": ["@example/**"],
"dependencies": ["three"],
"pinVersion": "0.165.0"
},
{
"label": "@react-three/fiber is pinned: 9.x is the React 19 line, and a caret could raise the three floor",
"packages": [
"@example/**"
],
"dependencies": [
"@react-three/fiber"
],
"packages": ["@example/**"],
"dependencies": ["@react-three/fiber"],
"pinVersion": "9.6.1"
},
{
"label": "@react-three/drei is pinned: 10.x is the line matching @react-three/fiber 9",
"packages": [
"@example/**"
],
"dependencies": [
"@react-three/drei"
],
"packages": ["@example/**"],
"dependencies": ["@react-three/drei"],
"pinVersion": "10.7.8"
},
{
"label": "Update lamina to 1.2.2 for all examples.",
"packages": [
"@example/**"
],
"dependencies": [
"lamina"
],
"packages": ["@example/**"],
"dependencies": ["lamina"],
"pinVersion": "1.2.2"
},
{
"label": "postprocessing is pinned to the last release accepting three 0.165 (6.36.7+ needs >= 0.174); pnpm.overrides pins the transitive copy too",
"packages": [
"@example/**"
],
"dependencies": [
"postprocessing"
],
"packages": ["@example/**"],
"dependencies": ["postprocessing"],
"pinVersion": "6.36.6"
},
{
"label": "suspend-react is pinned for all examples (the suspend(promise) pattern requires >= 0.1.3)",
"packages": [
"@example/**"
],
"dependencies": [
"suspend-react"
],
"packages": ["@example/**"],
"dependencies": ["suspend-react"],
"pinVersion": "0.1.3"
},
{
"label": "@splinetool/loader is pinned to the last release that parses the repo's 2022-era .splinecode scenes (0.9.156+ silently fall back to a default gray material or crash; the three-r165 pnpm patch is keyed to this exact version)",
"packages": [
"@example/**"
],
"dependencies": [
"@splinetool/loader"
],
"packages": ["@example/**"],
"dependencies": ["@splinetool/loader"],
"pinVersion": "0.9.153"
},
{
"label": "Examples must use identical versions of shared dependencies",
"packages": [
"@example/**"
],
"packages": ["@example/**"],
"dependencies": [
"@react-three/postprocessing",
"@react-three/rapier",
Expand Down Expand Up @@ -144,12 +101,8 @@
},
{
"label": "Workspace deps use workspace protocol",
"dependencies": [
"@example/**"
],
"dependencyTypes": [
"prod"
],
"dependencies": ["@example/**"],
"dependencyTypes": ["prod"],
"pinVersion": "workspace:*"
}
]
Expand Down
14 changes: 3 additions & 11 deletions apps/website/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
Expand All @@ -23,9 +19,7 @@
}
],
"paths": {
"@/*": [
"./*"
]
"@/*": ["./*"]
}
},
"include": [
Expand All @@ -35,7 +29,5 @@
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
"exclude": ["node_modules"]
}
10 changes: 0 additions & 10 deletions examples/aquarium/.prettierrc

This file was deleted.

Loading
Loading