You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/webgpu/CONTRIBUTING.md
+14-11Lines changed: 14 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,28 +23,31 @@ The Expo config plugin lives in `plugin/src` and is compiled to `plugin/build` b
23
23
24
24
## Upgrading Dawn
25
25
26
-
The Dawn version is pinned in two places that must stay in sync:
26
+
The Dawn version tracks the one shipped by `@shopify/react-native-skia` Graphite builds: the pin is the exact Dawn commit from the Skia milestone's DEPS file (`third_party/externals/dawn` in Skia's DEPS). It is recorded in two places that must stay in sync:
-`packages/webgpu/package.json` → the `"dawn"`field (same value, e.g. `chromium/7849`)
28
+
-the `externals/dawn` submodule gitlink (the commit the submodule points at)
29
+
-`packages/webgpu/package.json` → `"dawn"`(a human-readable label, e.g. `chrome-m150`; Skia milestones mirror Chrome milestones) and `"dawnCommit"` (the exact commit hash)
30
30
31
-
`yarn install-dawn` downloads **prebuilt**binaries from a GitHub release tagged `dawn-<branch-slug>` (e.g. `dawn-chromium-7849`); the release host is configured at the top of `scripts/install-dawn.ts`. `yarn build-dawn` builds the same binaries from the submodule source instead.
31
+
The **Build Dawn**workflow verifies the gitlink matches `dawnCommit` and fails otherwise.
32
32
33
-
Steps to bump to a new Dawn version (`chromium/<N>`):
33
+
`yarn install-dawn` downloads **prebuilt** binaries from a GitHub release on this repo tagged `dawn-<version-slug>` (e.g. `dawn-chrome-m150`). `yarn build-dawn` builds the same binaries from the submodule source instead.
34
34
35
-
1.**Point the submodule at the new branch.** Update both `.gitmodules` and the `"dawn"` field in `package.json` to `chromium/<N>`, then move the submodule to the new tip:
35
+
Steps to bump to a new Dawn version (new Skia milestone `m<N>`):
36
+
37
+
1.**Find the Dawn commit** in the Skia milestone's `DEPS` file (`third_party/externals/dawn` entry).
38
+
39
+
2.**Point the submodule at that commit** and update `package.json` (`"dawn": "chrome-m<N>"`, `"dawnCommit": "<hash>"`):
2.**Publish prebuilt binaries.** Trigger the **Build Dawn** workflow (`.github/workflows/build-dawn.yml`, `workflow_dispatch`). It reads the branch from `.gitmodules`, builds Android + Apple, and creates the `dawn-chromium-<N>` release with the headers, the Android `.so`s, and the Apple `.xcframework`. (To build locally instead, run `yarn build-dawn`; this requires the Android NDK and Xcode toolchains.)
45
+
3.**Publish prebuilt binaries.** Trigger the **Build Dawn** workflow (`.github/workflows/build-dawn.yml`, `workflow_dispatch`). It builds Android + Apple from the submodule and creates the `dawn-chrome-m<N>` release with the headers, the Android `.so`s, and the Apple `.xcframework`. (To build locally instead, run `yarn build-dawn`; this requires the Android NDK and Xcode toolchains.)
43
46
44
-
3.**Pull the new binaries** once the release exists:
47
+
4.**Pull the new binaries** once the release exists:
45
48
46
49
```sh
47
50
cd packages/webgpu && yarn install-dawn
48
51
```
49
52
50
-
4.**Verify and commit.** Build and run the example app, then commit the submodule bump together with the updated`.gitmodules` and`package.json`.
53
+
5.**Verify and commit.** Build and run the example app, then commit the submodule bump together with the updated `package.json`.
0 commit comments