Skip to content

feat: migrate toolchain to vite-plus (alpha evaluation)#792

Draft
dqn wants to merge 10 commits intomainfrom
vite-plus
Draft

feat: migrate toolchain to vite-plus (alpha evaluation)#792
dqn wants to merge 10 commits intomainfrom
vite-plus

Conversation

@dqn
Copy link
Contributor

@dqn dqn commented Mar 18, 2026

Replace turbo + tsdown + oxfmt + oxlint (direct) + vitest with vite-plus (vp CLI)

Tool Mapping

Before After
turbo run vp run -r
tsdown vp pack
vitest vp test
oxfmt vp fmt
oxlint vp lint

Main Changes

  • Consolidate build/test/lint/format under single vp CLI replacing turbo, tsdown, oxfmt, oxlint, vitest
  • Migrate all config files to unified vite.config.ts (pack, test, fmt sections)
  • Update test imports from vitest to vite-plus/test across ~100 files
  • Replace turbo run with vp run -r in all CI workflows and root scripts
  • Update all documentation (CLAUDE.md, README.md, getting-started.md, testing.md)
  • Map vitest to @voidzero-dev/vite-plus-test via pnpm catalog for coverage peer compatibility
  • Remove TURBO_HASH stripping from llm-challenge env sanitizer

Verification

Check Result
pnpm build All packages build
pnpm -C packages/sdk test:unit 107 files, 1605 tests pass
pnpm lint 0 warnings, 0 errors
pnpm typecheck:go Pass
pnpm knip Pass
pnpm format:check Pass
pnpm publint Pass
lefthook pre-commit Pass

Notes

  • vite-plus v0.1.12 (alpha) -- evaluation purpose
  • run.tasks cannot overlap with package.json script names, so dependency ordering uses && chaining
  • vp task cache stored in node_modules/.vite/task-cache (no .turbo equivalent in repo root)

Open with Devin

dqn added 5 commits March 18, 2026 23:00
Replace tsdown, vitest, oxfmt, and turbo with vite-plus unified toolchain.

- tsdown -> vp pack, vitest -> vp test, oxfmt -> vp fmt, turbo -> vp run
- Merge tsdown.config.ts + vitest.config.ts into vite.config.ts (pack/test blocks)
- Merge .oxfmtrc.json into vite.config.ts fmt block
- Rewrite test imports from "vitest" to "vite-plus/test" (156 files)
- Replace turbo.json task graph with vp run -r and explicit dependency chains
- Add pnpm catalog for vite/vitest/vite-plus version management
- Add explicit entry points to knip.json (tsdown plugin no longer auto-detects)
- Retain .oxlintrc.json (vp lint does not read vite.config.ts lint block yet)
…ange

- Update .oxlintrc.json files to reference vite.config.ts instead of
  removed tsdown.config.ts and vitest.config.ts
- Revert drive-by removal of null coalescing guard in label.ts
- Replace turbo run with vp run in all GitHub Actions workflows
- Update CLAUDE.md, README.md, getting-started.md, testing.md to
  reference vp commands instead of turbo
- Remove .turbo from .gitignore (vp cache is in node_modules/.vite/)
@changeset-bot
Copy link

changeset-bot bot commented Mar 18, 2026

⚠️ No Changeset found

Latest commit: f9afcb4

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 18, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@tailor-platform/create-sdk@792

commit: f9afcb4

@claude
Copy link

claude bot commented Mar 18, 2026

📖 Docs Consistency Check

⚠️ Inconsistencies Found

File Issue Suggested Fix
packages/sdk/src/cli/commands/secret/check-vault-managed.test.ts:1 Still imports from "vitest" instead of "vite-plus/test" Change import { describe, test, expect, vi, beforeEach } from "vitest"; to import { describe, test, expect, vi, beforeEach } from "vite-plus/test";

Details

Import inconsistency in test file

File: packages/sdk/src/cli/commands/secret/check-vault-managed.test.ts

  • Current (line 1): import { describe, test, expect, vi, beforeEach } from "vitest";
  • Expected: import { describe, test, expect, vi, beforeEach } from "vite-plus/test";

This is the only test file in the SDK that still imports from "vitest" directly. All other test files across the repository (packages/sdk, example, llm-challenge, and create-sdk templates) have been correctly updated to use "vite-plus/test" imports.

Verification

Verified areas with no issues:

  • CLAUDE.md - Commands correctly reference vp CLI and vite-plus
  • docs/getting-started.md - Commands and pre-commit hooks correctly reference vp CLI tools
  • docs/testing.md - Test configuration references correct vite.config.ts file
  • README.md - Development commands use correct tooling
  • .claude/rules/schema-types.md - Workflow uses pnpm check instead of turbo
  • lefthook.yml - Pre-commit hooks use vp commands
  • Root package.json - Scripts use vp run -r instead of turbo run
  • packages/sdk/package.json - Scripts use vp test, vp pack, vp lint, vp fmt
  • example/package.json - Scripts use vp test and vp lint
  • All other test files in packages/sdk, example, llm-challenge, and packages/create-sdk/templates - Correctly import from "vite-plus/test"
  • pnpm catalog configuration - Correctly maps vitest to @voidzero-dev/vite-plus-test
  • CI workflows - Use vp run -r commands

Recommended Actions

  1. Update the import statement in packages/sdk/src/cli/commands/secret/check-vault-managed.test.ts to use "vite-plus/test"
  2. Run pnpm test to verify the fix works correctly

@github-actions

This comment has been minimized.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 6 additional findings.

Open in Devin Review

dqn added 4 commits March 19, 2026 00:30
The -r (recursive) flag runs test in ALL workspace packages, unlike
turbo which inferred package scope from the working directory. Without
-r, vp run correctly scopes to the current package (packages/sdk).
Also add a comment to test.yml documenting the -r scope behavior.
pnpm catalog: protocol only works inside the monorepo workspace.
Scaffolded projects created by create-sdk would fail pnpm install with
ERR_PNPM_CATALOG_ENTRY_NOT_FOUND_FOR_SPEC. Parse the catalog section
from pnpm-workspace.yaml and replace catalog: specs with resolved values.
…typecheck

- Change npx vitest to npx vp test in llm-challenge verify.ts since the
  aliased vitest package does not provide a vitest binary
- Add generate step before typecheck/typecheck:go in root scripts to
  match the old turbo dependsOn: ["build", "generate"] pipeline
- Document @vitest/coverage-v8 version mismatch with vite-plus-test alias
@dqn dqn marked this pull request as draft March 19, 2026 04:43
# Conflicts:
#	.github/workflows/test.yml
#	pnpm-lock.yaml
#	turbo.json
@github-actions
Copy link

Code Metrics Report (packages/sdk)

main (71333ca) #792 (a9049fc) +/-
Coverage 55.6% 55.6% -0.1%
Code to Test Ratio 1:0.4 1:0.4 +0.0
Details
  |                    | main (71333ca) | #792 (a9049fc) |  +/-  |
  |--------------------|----------------|----------------|-------|
- | Coverage           |          55.6% |          55.6% | -0.1% |
  |   Files            |            322 |            322 |     0 |
  |   Lines            |          10362 |          10361 |    -1 |
- |   Covered          |           5768 |           5763 |    -5 |
+ | Code to Test Ratio |          1:0.4 |          1:0.4 |  +0.0 |
  |   Code             |          60586 |          60593 |    +7 |
+ |   Test             |          24442 |          24451 |    +9 |

Code coverage of files in pull request scope (81.5% → 80.6%)

Files Coverage +/- Status
example/e2e/globalSetup.ts 25.0% 0.0% modified
packages/sdk/src/cli/services/workflow/ast-utils.ts 80.0% +1.7% affected
packages/sdk/src/configure/services/tailordb/schema.ts 80.9% -1.0% affected
packages/sdk/src/configure/services/workflow/job.ts 50.0% -33.4% affected
packages/sdk/src/configure/types/type.ts 92.4% -0.9% affected
packages/sdk/src/parser/service/tailordb/field.ts 95.2% 0.0% modified

SDK Configure Bundle Size

main (71333ca) #792 (a9049fc) +/-
configure-index-size 10.74KB 10.74KB 0KB
dependency-chunks-size 34KB 34KB 0KB
total-bundle-size 44.74KB 44.74KB 0KB

Runtime Performance

main (71333ca) #792 (a9049fc) +/-
Generate Median 2,574ms 2,561ms -13ms
Generate Max 2,591ms 2,590ms -1ms
Apply Build Median 2,620ms 2,622ms 2ms
Apply Build Max 2,641ms 2,645ms 4ms

Type Performance (instantiations)

main (71333ca) #792 (a9049fc) +/-
tailordb-basic 43,028 43,028 0
tailordb-optional 3,927 3,927 0
tailordb-relation 4,071 4,071 0
tailordb-validate 2,925 2,925 0
tailordb-hooks 5,790 5,790 0
tailordb-object 11,571 11,571 0
tailordb-enum 2,793 2,793 0
resolver-basic 9,239 9,239 0
resolver-nested 25,626 25,626 0
resolver-array 17,862 17,862 0
executor-schedule 4,244 4,244 0
executor-webhook 883 883 0
executor-record 4,847 4,847 0
executor-resolver 4,273 4,273 0
executor-operation-function 877 877 0
executor-operation-gql 879 879 0
executor-operation-webhook 898 898 0
executor-operation-workflow 2,290 2,290 0

Reported by octocov

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant