Repository navigation
chore: apply v2 tooling/CI/release standard (stage 1) - #37
Merged
Merged
Conversation
Bring the repo's shared tooling, hooks, CI, and release workflow in line with the org-wide v2 standard: - packageManager/engines: node >=22 (root + published packages) - pnpm-workspace.yaml: minimumReleaseAgeExclude uses package names, not name@version - canonical .oxfmtrc.json (ignorePatterns already covered by **/*.gen.ts) - canonical .oxlintrc.json base; turn on no-unused-private-class-members and no-new-array now (no errors), keep no-explicit-any off until stage 3 (currently errors on ~60 call sites) - canonical commitlint.config.js (adds explicit type-enum) - canonical scripts/check-pr.mjs + .github/workflows/pr-policy.yml (job renamed to `contribution`; commitlint now runs as pr-policy steps instead of being invoked from check-pr.mjs) - .github/workflows/ci.yml: canonical `ci` job name, concurrency group, format-check and codecov steps, alongside this repo's existing dist verification, coverage-gated tests, release:check, bundle-size gate, and blocking prod / advisory dev dependency audit steps; skip-gpu workflow_call input now defaults to true so the release workflow's unparameterized ci.yml call keeps skipping the advisory GPU job - .github/workflows/release.yml: byte-identical canonical file Closes #36
bhouston
added a commit
that referenced
this pull request
Sep 25, 2026
## Summary Stage 2 of the v2 repo standard (vitest half — TypeScript is already `^7.0.2` at root with no per-package pins, so that part was already done). - `vitest` `^4.1.10` → `^5.0.2` - `@vitest/coverage-v8` `4.1.11` → `5.0.2` - `@vitest/browser-playwright` `^4.1.11` → `^5.0.2` - `@vitest/browser-webdriverio` `4.1.11` → `5.0.0` - `pnpm-workspace.yaml`: pnpm's `minimumReleaseAge` policy auto-added the newly-published `@vitest/*` packages to `minimumReleaseAgeExclude` in `name@version` form during `pnpm install`; trimmed those to package names only, matching the standard applied in #37 No source changes were needed — build, tsc, lint, and tests were unaffected by the major version bump. `vitest-environment-webgpu-node` (peer dep `vitest: >=3 <5`) isn't referenced on `main` (only on the separate, not-yet-merged `gpu-webgpu-node-tests` branch), so it wasn't a blocker. ## Validation (in worktree) - `pnpm install` — clean - `pnpm build` — pass - `pnpm tsc` — pass - `pnpm lint` — pass (pre-existing warnings only) - `pnpm exec oxfmt --check .` — pass - `pnpm test` — 18 test files / 61 tests passed on vitest 5.0.2 - `pnpm release:check` — 9/9 passed - `pnpm size` — within budget - `pnpm test:gpu` (advisory, `continue-on-error` in CI) — ran under Playwright/Chromium+SwiftShare locally with the same pre-existing WebGPU "Device Lost" flakiness noted in `vitest.config.ts`'s comments, unrelated to the vitest version bump Closes #38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stage 1 of the org-wide v2 repo standard: tooling, hooks, CI, and release workflow.
engines.node→>=22(root +three-ntc+three-ntc-trainer);packageManagerwas alreadypnpm@11.27.0from chore: bring repo config to the shared standard #35pnpm-workspace.yaml:minimumReleaseAgeExcludeentries use package names, notname@version(three,@tanstack/charts).oxfmtrc.json(repo'srouteTree.gen.tsexclusion is already covered by the canonical**/*.gen.tspattern).oxlintrc.jsonbase: turnedeslint/no-unused-private-class-membersandunicorn/no-new-arraytoerrornow (produce zero errors); kepttypescript/no-explicit-anyoff — enabling it currently errors on ~60 call sites, deferred to stage 3 per the standardcommitlint.config.js(explicittype-enum)scripts/check-pr.mjs+.github/workflows/pr-policy.yml— job renamed tocontribution(branch protection requires this exact name); commitlint title/range checks now run as pr-policy steps instead of being invoked from inside check-pr.mjs.github/workflows/ci.yml— job renamed toci(branch protection requires this exact name), canonical concurrency group, added format-check (oxfmt --check) and Codecov steps, kept this repo's dist-verification, release:check, bundle-size, and blocking-prod/advisory-dev audit steps. Theskip-gpuworkflow_call input now defaults totrue(canonicalrelease.ymlcallsci.ymlwith no inputs, so the default has to keep skipping GPU there — matches current behavior where release.yml explicitly passedskip-gpu: true).github/workflows/release.yml— byte-identical canonical filelint-staged,.husky/pre-commit,.husky/commit-msg, andCONTRIBUTING.mdwere already canonical from #35, no changes needed.Deliberate deviation to flag
The previous
release.ymlhad a repo-specific "Restore generated changelog from the previous release" step (downloads the prior release'sCHANGELOG.mdbefore@semantic-release/changelogruns, since rootCHANGELOG.mdisn't committed to git). The v2 standard calls forrelease.ymlto be byte-identical to the canonical file, which doesn't have this step. I copied it byte-for-byte per the standard, but this means the next release'sCHANGELOG.mdwill start fresh instead of appending to history unless that behavior is restored some other way (e.g. committing CHANGELOG.md, or a different mechanism). Flagging for the maintainer's decision — did not add a workaround since the standard is explicit about byte-identical here.Validation (in worktree)
pnpm install— lockfile unchangedpnpm build— passpnpm tsc— passpnpm lint— pass (warnings only, no errors)pnpm exec oxfmt --check .— passpnpm test— 18 test files / 61 tests passedpnpm release:check— 9/9 passedpnpm size— within budget (three-ntc 9168B/11000B, three-ntc-trainer 44820B/52000B)node .../standards/check-drift.mjs <worktree>— clean except the documented.oxlintrc.jsonno-explicit-anyexception aboveNote
There's a stale, conflicting open PR #18 (
chore/13-repo-standards) from an earlier session touching overlapping files — left untouched per instructions.Closes #36