diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 98050906b..a1b7b0fdf 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -28,7 +28,7 @@ env: jobs: pr-benchmark: name: pr-benchmark - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 permissions: contents: read @@ -206,7 +206,7 @@ jobs: pr-benchmark-budget: name: pr-benchmark-budget - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 needs: - pr-benchmark @@ -267,7 +267,7 @@ jobs: pr-benchmark-comment: name: pr-benchmark-comment - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} needs: diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 1a188bd30..5868a1421 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -26,7 +26,7 @@ env: jobs: nix-flake: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 60 # Nix store cache restore + `nix flake check` was the second-slowest PR # gate after playground-test. The flake itself rarely changes between @@ -45,7 +45,7 @@ jobs: run: nix flake check fmt-rust: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -56,7 +56,7 @@ jobs: run: cargo fmt --all -- --check check-js: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 15 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -74,7 +74,7 @@ jobs: run: vp run --workspace-root check:ci semver-checks: name: cargo-semver-checks (${{ matrix.crate }}) - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 25 permissions: contents: read @@ -140,7 +140,7 @@ jobs: fi security-audit: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 20 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -164,7 +164,7 @@ jobs: run: cargo audit --deny warnings node-engine-compat: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 20 strategy: fail-fast: false @@ -187,7 +187,7 @@ jobs: run: node --test tests/tooling/node-engine-matrix.test.ts tests/tooling/package-manifests.test.ts check-vize-apps: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 20 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -216,7 +216,7 @@ jobs: run: vp run --workspace-root check:ci:vize-apps vue-parity: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -243,7 +243,7 @@ jobs: run: vp run --filter './tests' test:check:fixtures test-scripts: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest # Restoration of the original setup after the trim in #519 broke # main: lsp-smoke.test.ts launches `vize lsp` (falls back to # `cargo run -p vize` when no binary is staged), moonbit-*.test.ts @@ -280,7 +280,7 @@ jobs: run: vp run --workspace-root test:scripts editor-extensions: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 15 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -302,7 +302,7 @@ jobs: run: vp run --workspace-root package:editor-extensions build-js-packages: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -346,7 +346,7 @@ jobs: retention-days: 7 test-js-packages: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 env: NODE_OPTIONS: "--disable-warning=DEP0040 --disable-warning=DEP0169" @@ -372,7 +372,7 @@ jobs: run: vp run --workspace-root test:js clippy-and-test: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -400,7 +400,7 @@ jobs: run: cargo test --workspace coverage: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -427,7 +427,7 @@ jobs: run: moon run --target native - -- < tools/moon/scripts/github/write_coverage_summary.mbtx source-coverage: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 40 # cargo llvm-cov against the whole workspace runs ~4–6 minutes. Coverage is # a trend metric, not a per-PR signal: one PR rarely moves workspace-wide @@ -483,7 +483,7 @@ jobs: retention-days: 14 branch-coverage: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 45 # Nightly Rust branch coverage on the core compiler crates. Same trend # rationale as source-coverage, so push-to-main + schedule, never per-PR. @@ -538,7 +538,7 @@ jobs: retention-days: 14 playground-test: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 needs: - build-js-packages @@ -639,7 +639,7 @@ jobs: test-report: name: test-report - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 if: ${{ always() && github.event_name == 'pull_request' }} needs: @@ -675,7 +675,7 @@ jobs: test-report-comment: name: test-report-comment - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 if: ${{ always() && github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository }} needs: diff --git a/.github/workflows/criterion-bench.yml b/.github/workflows/criterion-bench.yml index bb3187055..b96493f8b 100644 --- a/.github/workflows/criterion-bench.yml +++ b/.github/workflows/criterion-bench.yml @@ -40,7 +40,7 @@ env: jobs: criterion-ab: name: criterion-ab - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 45 permissions: contents: read @@ -111,7 +111,7 @@ jobs: dialect-guard: name: dialect-guard - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 45 permissions: contents: read diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 9385484e3..167580b25 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -18,7 +18,7 @@ concurrency: jobs: build-docs: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -59,7 +59,7 @@ jobs: path: docs/dist build-playground: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -134,7 +134,7 @@ jobs: path: examples/vite-musea/dist deploy: - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest needs: [build-docs, build-playground] permissions: contents: read diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3f8dbf006..f3a2d1609 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -40,7 +40,7 @@ jobs: testbox: name: Testbox if: ${{ github.event_name == 'workflow_dispatch' && inputs.testbox_id != '' }} - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 120 permissions: contents: read @@ -93,7 +93,7 @@ jobs: app-e2e: name: app-e2e (${{ matrix.suite }}) if: ${{ github.event_name != 'workflow_dispatch' || inputs.testbox_id == '' }} - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 90 permissions: contents: read diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 881685b3f..0317ea65d 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -43,7 +43,7 @@ jobs: # libFuzzer requires Linux or macOS; this matrix uses GitHub-hosted Ubuntu # for consistency. macOS coverage can be added in a # follow-up if platform-divergent panics ever appear in triage. - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 60 # The fuzz matrix is advisory at bootstrap. libFuzzer immediately surfaces # real parser/compiler fixes (the first PR run already found one — see the diff --git a/.github/workflows/native-smoke.yml b/.github/workflows/native-smoke.yml index 9f94482ee..023e4f297 100644 --- a/.github/workflows/native-smoke.yml +++ b/.github/workflows/native-smoke.yml @@ -29,10 +29,10 @@ jobs: fail-fast: false matrix: include: - - runner: blacksmith-32vcpu-ubuntu-2404 + - runner: ubuntu-latest target: linux-x64-gnu msvc_arch: amd64 - - runner: blacksmith-32vcpu-ubuntu-2404-arm + - runner: ubuntu-latest-arm target: linux-arm64-gnu msvc_arch: amd64 - runner: macos-15-intel @@ -114,10 +114,10 @@ jobs: # known-limitation policy in docs/content/stability.md in sync when # containerized musl tarball staging is added. platform: - - runner: blacksmith-32vcpu-ubuntu-2404 + - runner: ubuntu-latest target: linux-x64-gnu msvc_arch: amd64 - - runner: blacksmith-32vcpu-ubuntu-2404-arm + - runner: ubuntu-latest-arm target: linux-arm64-gnu msvc_arch: amd64 - runner: macos-15-intel diff --git a/.github/workflows/pkg-pr-new.yml b/.github/workflows/pkg-pr-new.yml index ed672b0a5..bb80a5478 100644 --- a/.github/workflows/pkg-pr-new.yml +++ b/.github/workflows/pkg-pr-new.yml @@ -21,7 +21,7 @@ env: jobs: publish-preview: name: Publish preview packages - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e8476089a..d260fbae1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ env: jobs: plan-release-platforms: name: Plan release platforms - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 outputs: include_slow_platforms: ${{ steps.platforms.outputs.include_slow_platforms }} @@ -123,7 +123,7 @@ jobs: # Package editor extensions for GitHub Releases and registry validation build-editor-extensions: name: Build Editor Extensions - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -172,7 +172,7 @@ jobs: # Publish VS Code extension when VSCE_PAT is configured release-vscode-extension: name: Release VS Code extension - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest needs: build-editor-extensions timeout-minutes: 15 environment: vscode-marketplace @@ -215,7 +215,7 @@ jobs: # Build release npm packages once and reuse them across publish jobs build-release-packages: name: Build release npm packages - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -317,7 +317,7 @@ jobs: # Build WASM once on Blacksmith; the npm publish job only attaches provenance. build-wasm-package: name: Build @vizejs/wasm package - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -473,7 +473,7 @@ jobs: smoke-release-packages: name: Smoke release npm package installs - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest needs: [plan-release-platforms, build-release-packages, build-native-all] timeout-minutes: 30 steps: @@ -1008,7 +1008,7 @@ jobs: # Publish crates to crates.io (using Trusted Publishing) release-crates: name: Release crates to crates.io - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 30 environment: crates-io permissions: @@ -1038,7 +1038,7 @@ jobs: # Create GitHub Release with CLI binaries create-github-release: name: Create GitHub Release - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest needs: - build-cli - release-vscode-extension diff --git a/.github/workflows/tool-benchmark.yml b/.github/workflows/tool-benchmark.yml index 1e9e9d68c..0b84f7b15 100644 --- a/.github/workflows/tool-benchmark.yml +++ b/.github/workflows/tool-benchmark.yml @@ -64,7 +64,7 @@ env: jobs: tool-benchmark: name: tool-benchmark - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 75 permissions: contents: read @@ -122,7 +122,7 @@ jobs: --vite-file-count "$VIZE_TOOL_BENCH_VITE_FILE_COUNT" \ --nuxt-file-count "$VIZE_TOOL_BENCH_NUXT_FILE_COUNT" \ --large-blocks "$VIZE_TOOL_BENCH_LARGE_BLOCKS" \ - --runner-label "blacksmith-32vcpu-ubuntu-2404" \ + --runner-label "ubuntu-latest" \ --commit "${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}" \ --ref "${{ github.ref_name }}" \ --repository "${{ github.repository }}" \ @@ -147,7 +147,7 @@ jobs: tool-benchmark-comment: name: tool-benchmark-comment - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository }} needs: @@ -178,7 +178,7 @@ jobs: tool-benchmark-commit: name: tool-benchmark-commit - runs-on: blacksmith-32vcpu-ubuntu-2404 + runs-on: ubuntu-latest timeout-minutes: 5 if: ${{ github.event_name == 'workflow_dispatch' && inputs.commit_results && startsWith(github.ref, 'refs/heads/') && github.ref_name != 'main' }} needs: diff --git a/.vite-hooks/pre-commit b/.vite-hooks/pre-commit new file mode 100755 index 000000000..85fb65b4f --- /dev/null +++ b/.vite-hooks/pre-commit @@ -0,0 +1 @@ +vp staged diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..362b82a43 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,16 @@ + + +# Using Vite+, the Unified Toolchain for the Web + +This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, and it invokes Vite through `vp dev` and `vp build`. Run `vp help` to print a list of commands and `vp --help` for information about a specific command. + +Docs are local at `node_modules/vite-plus/docs` or online at https://viteplus.dev/guide/. + +## Review Checklist + +- [ ] Run `vp install` after pulling remote changes and before getting started. +- [ ] Run `vp check` and `vp test` to format, lint, type check and test changes. +- [ ] Check if there are `vite.config.ts` tasks or `package.json` scripts necessary for validation, run via `vp run