From d48c116436eccb587d53090d5d017f4dbec65a5a Mon Sep 17 00:00:00 2001 From: Kai Ninomiya Date: Fri, 21 Mar 2025 14:00:47 -0700 Subject: [PATCH 1/3] Check generated file is up-to-date in github workflow --- .github/workflows/deploy-to-gh-pages.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/deploy-to-gh-pages.yml b/.github/workflows/deploy-to-gh-pages.yml index 31727378..62aeee81 100644 --- a/.github/workflows/deploy-to-gh-pages.yml +++ b/.github/workflows/deploy-to-gh-pages.yml @@ -24,6 +24,11 @@ jobs: - run: npm test - run: npm run build-docs + - run: git submodule update --init --recommend-shallow + - run: npm run generate + - name: Check generated file is up-to-date with gpuweb submodule (`npm run generate` to fix this) + run: git update-index --really-refresh && git diff-index --quiet HEAD + - name: Deploy 📦 if: ${{ success() && github.ref == 'refs/heads/main' }} uses: JamesIves/github-pages-deploy-action@3.6.2 From 9adb94dd76da97fd4ee9f3b56157767dd663467e Mon Sep 17 00:00:00 2001 From: Kai Ninomiya Date: Fri, 21 Mar 2025 15:05:09 -0700 Subject: [PATCH 2/3] make bikeshed-to-ts a submodule, pin its revision --- ...y-to-gh-pages.yml => build-and-deploy.yml} | 12 ++-- .gitmodules | 3 + package-lock.json | 58 +++++++++++++------ package.json | 2 +- third_party/bikeshed-to-ts | 1 + 5 files changed, 50 insertions(+), 26 deletions(-) rename .github/workflows/{deploy-to-gh-pages.yml => build-and-deploy.yml} (84%) create mode 160000 third_party/bikeshed-to-ts diff --git a/.github/workflows/deploy-to-gh-pages.yml b/.github/workflows/build-and-deploy.yml similarity index 84% rename from .github/workflows/deploy-to-gh-pages.yml rename to .github/workflows/build-and-deploy.yml index 62aeee81..b30261bd 100644 --- a/.github/workflows/deploy-to-gh-pages.yml +++ b/.github/workflows/build-and-deploy.yml @@ -1,4 +1,4 @@ -name: Build and Deploy +name: build-and-deploy on: pull_request: branches: @@ -10,21 +10,19 @@ jobs: build-and-deploy: runs-on: ubuntu-latest steps: - - name: Checkout 🍔🍟🥤 - uses: actions/checkout@v2.3.1 + - uses: actions/checkout@v2.3.1 with: persist-credentials: false - - - name: Use Node.js 😂 - uses: actions/setup-node@v1 + - uses: actions/setup-node@v1 with: node-version: '16.x' + - run: git submodule update --init --recommend-shallow + - run: npm ci - run: npm test - run: npm run build-docs - - run: git submodule update --init --recommend-shallow - run: npm run generate - name: Check generated file is up-to-date with gpuweb submodule (`npm run generate` to fix this) run: git update-index --really-refresh && git diff-index --quiet HEAD diff --git a/.gitmodules b/.gitmodules index aabb0ac7..af8fc1d0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "gpuweb"] path = gpuweb url = https://github.com/gpuweb/gpuweb.git +[submodule "third_party/bikeshed-to-ts"] + path = third_party/bikeshed-to-ts + url = https://github.com/toji/bikeshed-to-ts.git diff --git a/package-lock.json b/package-lock.json index 5bdf95d6..d9a1a391 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.57", "license": "BSD-3-Clause", "devDependencies": { - "bikeshed-to-ts": "github:toji/bikeshed-to-ts", + "bikeshed-to-ts": "file:third_party/bikeshed-to-ts", "prettier": "^2.2.1" } }, @@ -136,20 +136,8 @@ "dev": true }, "node_modules/bikeshed-to-ts": { - "version": "1.2.0", - "resolved": "git+ssh://git@github.com/toji/bikeshed-to-ts.git#a8f58349cc047646bdfd7311a7c9050a2c802a7a", - "dev": true, - "license": "MIT", - "dependencies": { - "@dekkai/data-source": "^0.2.1", - "typescript": "^4.2.4", - "webidl2": "^24.2.0", - "webidl2ts": "github:toji/webidl2ts", - "yargs": "^16.2.0" - }, - "bin": { - "bikeshed-to-ts": "src/cli.js" - } + "resolved": "third_party/bikeshed-to-ts", + "link": true }, "node_modules/browser-process-hrtime": { "version": "1.0.0", @@ -941,6 +929,34 @@ "engines": { "node": ">=10" } + }, + "third_party/bikeshed-to-ts": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@dekkai/data-source": "^0.2.1", + "typescript": "^4.2.4", + "webidl2": "^24.2.0", + "webidl2ts": "github:toji/webidl2ts", + "yargs": "^16.2.0" + }, + "bin": { + "bikeshed-to-ts": "src/cli.js" + } + }, + "third_party/bikeshed-to-ts/node_modules/typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } } }, "dependencies": { @@ -1039,15 +1055,21 @@ "dev": true }, "bikeshed-to-ts": { - "version": "git+ssh://git@github.com/toji/bikeshed-to-ts.git#a8f58349cc047646bdfd7311a7c9050a2c802a7a", - "dev": true, - "from": "bikeshed-to-ts@github:toji/bikeshed-to-ts", + "version": "file:third_party/bikeshed-to-ts", "requires": { "@dekkai/data-source": "^0.2.1", "typescript": "^4.2.4", "webidl2": "^24.2.0", "webidl2ts": "github:toji/webidl2ts", "yargs": "^16.2.0" + }, + "dependencies": { + "typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true + } } }, "browser-process-hrtime": { diff --git a/package.json b/package.json index 4e800801..91a5b14f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "format": "prettier -w dist/index.d.ts" }, "devDependencies": { - "bikeshed-to-ts": "github:toji/bikeshed-to-ts", + "bikeshed-to-ts": "file:third_party/bikeshed-to-ts", "prettier": "^2.2.1" } } diff --git a/third_party/bikeshed-to-ts b/third_party/bikeshed-to-ts new file mode 160000 index 00000000..a8f58349 --- /dev/null +++ b/third_party/bikeshed-to-ts @@ -0,0 +1 @@ +Subproject commit a8f58349cc047646bdfd7311a7c9050a2c802a7a From 1bcd77ddfb288c0b8db72f4e7663b8588eee726a Mon Sep 17 00:00:00 2001 From: Kai Ninomiya Date: Fri, 21 Mar 2025 15:32:19 -0700 Subject: [PATCH 3/3] roll bikeshed-to-ts to support includes --- package-lock.json | 83 ++++---------------------------------- third_party/bikeshed-to-ts | 2 +- 2 files changed, 9 insertions(+), 76 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9a1a391..bd842842 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,28 +13,6 @@ "prettier": "^2.2.1" } }, - "node_modules/@dekkai/data-source": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@dekkai/data-source/-/data-source-0.2.3.tgz", - "integrity": "sha512-90Fcf3tGxNEP4jqVj4Q5xdqLc3CHyUp3CxxURXWkl2Ey20FXjN54QnwT7Y6dFA0DWvpnS4iNTXT/JbmnyDkjWg==", - "dev": true, - "dependencies": { - "@dekkai/env": "^1.1.0", - "@dekkai/event-emitter": "^1.1.0" - } - }, - "node_modules/@dekkai/env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dekkai/env/-/env-1.1.0.tgz", - "integrity": "sha512-z1t0bXV1QFwsA2Ur7N6/7qRbrcJ043dYYAqWsOAzMUna4CZiz9vsAFTBNT19ZRY50uf59tR/SOWkj/CnAy6jqg==", - "dev": true - }, - "node_modules/@dekkai/event-emitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dekkai/event-emitter/-/event-emitter-1.1.0.tgz", - "integrity": "sha512-wQkAuh4p96ZZvCuOA1XRi8FiYE2Nbsozzv8y8mRq2JwN7fSJS0DtMCsLvfcpEF4wdFo2Hum0u3vpxoAv0rY5Eg==", - "dev": true - }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -724,9 +702,9 @@ } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -935,8 +913,7 @@ "dev": true, "license": "MIT", "dependencies": { - "@dekkai/data-source": "^0.2.1", - "typescript": "^4.2.4", + "typescript": "=4.2.4", "webidl2": "^24.2.0", "webidl2ts": "github:toji/webidl2ts", "yargs": "^16.2.0" @@ -944,44 +921,9 @@ "bin": { "bikeshed-to-ts": "src/cli.js" } - }, - "third_party/bikeshed-to-ts/node_modules/typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } } }, "dependencies": { - "@dekkai/data-source": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@dekkai/data-source/-/data-source-0.2.3.tgz", - "integrity": "sha512-90Fcf3tGxNEP4jqVj4Q5xdqLc3CHyUp3CxxURXWkl2Ey20FXjN54QnwT7Y6dFA0DWvpnS4iNTXT/JbmnyDkjWg==", - "dev": true, - "requires": { - "@dekkai/env": "^1.1.0", - "@dekkai/event-emitter": "^1.1.0" - } - }, - "@dekkai/env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dekkai/env/-/env-1.1.0.tgz", - "integrity": "sha512-z1t0bXV1QFwsA2Ur7N6/7qRbrcJ043dYYAqWsOAzMUna4CZiz9vsAFTBNT19ZRY50uf59tR/SOWkj/CnAy6jqg==", - "dev": true - }, - "@dekkai/event-emitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dekkai/event-emitter/-/event-emitter-1.1.0.tgz", - "integrity": "sha512-wQkAuh4p96ZZvCuOA1XRi8FiYE2Nbsozzv8y8mRq2JwN7fSJS0DtMCsLvfcpEF4wdFo2Hum0u3vpxoAv0rY5Eg==", - "dev": true - }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -1057,19 +999,10 @@ "bikeshed-to-ts": { "version": "file:third_party/bikeshed-to-ts", "requires": { - "@dekkai/data-source": "^0.2.1", - "typescript": "^4.2.4", + "typescript": "=4.2.4", "webidl2": "^24.2.0", "webidl2ts": "github:toji/webidl2ts", "yargs": "^16.2.0" - }, - "dependencies": { - "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true - } } }, "browser-process-hrtime": { @@ -1527,9 +1460,9 @@ } }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", "dev": true }, "universalify": { diff --git a/third_party/bikeshed-to-ts b/third_party/bikeshed-to-ts index a8f58349..bb9da02a 160000 --- a/third_party/bikeshed-to-ts +++ b/third_party/bikeshed-to-ts @@ -1 +1 @@ -Subproject commit a8f58349cc047646bdfd7311a7c9050a2c802a7a +Subproject commit bb9da02a8ce0e4ff74bda756c6a2cf459736aa40