Skip to content

fix(cli): remove oxlint and oxfmt bin wrappers - #2672

Merged
fengmk2 merged 1 commit into
mainfrom
fix/remove-oxc-bin-wrappers
Sep 21, 2026
Merged

fengmk2 merged 1 commit into
mainfrom
fix/remove-oxc-bin-wrappers

Conversation

@fengmk2

@fengmk2 fengmk2 commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

The oxlint and oxfmt bin wrappers can conflict with the upstream packages during installation. This change removes the wrappers, their bin entries, and their snapshot fixtures. It also removes the standalone tsgolint-path build entry and updates comments that refer to the wrappers.

Editors must use vp lint --lsp, vp fmt --lsp, or vp fmt --stdin-filepath.

The CLI build, scoped vp check, 33 focused tests, package checks, and editor command checks pass. Two existing snapshots fail with Vite config warnings; main produces identical output.

Closed #1557.

IDE extensions PRs:

@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

CLI artifact sizes (f987c6d)

Final release artifacts built by the canonical build-upstream and build-windows-cli actions.
The dist rows use the Linux build. The core total excludes .node files to match the release artifact.

Artifact Format Base PR Change
packages/cli/dist Directory total 2.00 MiB 2.00 MiB -811 B (-0.04%)
packages/core/dist Directory total 3.95 MiB 3.95 MiB 0 B (0.00%)
Combined package dist Directory total 5.95 MiB 5.95 MiB -811 B (-0.01%)
vp (Linux x64) Binary 11.27 MiB 11.27 MiB 0 B (0.00%)
vp (Linux x64) gzip -9 4.88 MiB 4.88 MiB 0 B (0.00%)
NAPI (Linux x64) Binary 32.03 MiB 32.03 MiB 0 B (0.00%)
NAPI (Linux x64) gzip -9 12.70 MiB 12.70 MiB 0 B (0.00%)
vp (macOS ARM64) Binary 8.41 MiB 8.41 MiB 0 B (0.00%)
vp (macOS ARM64) gzip -9 4.26 MiB 4.26 MiB 0 B (0.00%)
NAPI (macOS ARM64) Binary 39.64 MiB 39.64 MiB 0 B (0.00%)
NAPI (macOS ARM64) gzip -9 17.01 MiB 17.01 MiB 0 B (0.00%)
vp (Windows x64) Binary 9.15 MiB 9.15 MiB 0 B (0.00%)
vp (Windows x64) gzip -9 4.00 MiB 4.00 MiB -1 B (-0.00%)
NAPI (Windows x64) Binary 26.99 MiB 26.99 MiB 0 B (0.00%)
NAPI (Windows x64) gzip -9 10.80 MiB 10.80 MiB +2 B (+0.00%)
Trampoline (Windows x64) Binary 13.50 KiB 13.50 KiB 0 B (0.00%)
Trampoline (Windows x64) gzip -9 7.08 KiB 7.08 KiB 0 B (0.00%)
Installer (Windows x64) Binary 4.56 MiB 4.56 MiB 0 B (0.00%)
Installer (Windows x64) gzip -9 2.13 MiB 2.13 MiB +1 B (+0.00%)

@fengmk2 fengmk2 added test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: create-e2e Run `vp create` e2e tests test: sfw labels Sep 11, 2026
@fengmk2 fengmk2 self-assigned this Sep 11, 2026
@fengmk2 fengmk2 added the preview-build Publish this PR's commits to the registry bridge as preview builds label Sep 11, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://fix-remove-oxc-bin-wrappers-viteplus-dev.voidzero-docs.workers.dev (commit f987c6d)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://67cd6bfd-viteplus-dev.voidzero-docs.workers.dev f987c6d 2026-09-21T09:23:42.391Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://72c6b074-viteplus-dev.voidzero-docs.workers.dev 35bbe84 2026-09-21T04:40:28.979Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://e1a813c2-viteplus-dev.voidzero-docs.workers.dev a63fd2d 2026-09-21T02:22:20.569Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://c81bbd3b-viteplus-dev.voidzero-docs.workers.dev 0bb91a4 2026-09-12T08:18:16.501Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://b84cfb54-viteplus-dev.voidzero-docs.workers.dev 1057b54 2026-09-12T03:18:43.383Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://76a5e14b-viteplus-dev.voidzero-docs.workers.dev 68ee71d 2026-09-12T03:15:20.491Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://6c9a6f07-viteplus-dev.voidzero-docs.workers.dev b45b2d0 2026-09-12T01:31:48.100Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://4c744d46-viteplus-dev.voidzero-docs.workers.dev 7d04a07 2026-09-11T16:14:46.473Z Visit the dashboard ↗

@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Registry bridge build (b45b2d0)

This commit build is published to the registry bridge, which serves these as ordinary npm versions (every other package proxies to npmjs):

Package Version
vite-plus 0.0.0-commit.b45b2d0fabf3ebea7ad2d29044be724f6f5e8682
@voidzero-dev/vite-plus-core 0.0.0-commit.b45b2d0fabf3ebea7ad2d29044be724f6f5e8682

Install the Vite+ CLI built from this commit, then migrate a project:

# macOS / Linux
curl -fsSL https://github.com/raw/voidzero-dev/vite-plus/b45b2d0fabf3ebea7ad2d29044be724f6f5e8682/packages/cli/install.sh | VP_PR_VERSION=2672 VP_LEGACY_INSTALLER_URL=https://github.com/raw/voidzero-dev/vite-plus/b45b2d0fabf3ebea7ad2d29044be724f6f5e8682/packages/cli/install-legacy.sh bash
# Windows (PowerShell)
$env:VP_PR_VERSION="2672"; $env:VP_LEGACY_INSTALLER_URL="https://github.com/raw/voidzero-dev/vite-plus/b45b2d0fabf3ebea7ad2d29044be724f6f5e8682/packages/cli/install-legacy.ps1"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/b45b2d0fabf3ebea7ad2d29044be724f6f5e8682/packages/cli/install.ps1 | iex

Or download the standalone Windows installer built from this commit:

Architecture Installer
x64 vp-setup-x86_64-pc-windows-msvc.exe
Arm64 vp-setup-aarch64-pc-windows-msvc.exe

GitHub requires you to sign in and downloads each installer as a ZIP artifact. Extract vp-setup.exe, then run it against this preview build:

.\vp-setup.exe --version "0.0.0-commit.b45b2d0fabf3ebea7ad2d29044be724f6f5e8682" --registry "https://registry-bridge.viteplus.dev/"

After installing, upgrade the current project's vite-plus to this test build with:

vp migrate

Or point your package manager at the bridge registry https://registry-bridge.viteplus.dev/:

Package manager Registry config
npm / pnpm / Bun .npmrc: registry=https://registry-bridge.viteplus.dev/
Yarn (v2+) .yarnrc.yml: npmRegistryServer: "https://registry-bridge.viteplus.dev/"

Then pin the build (vite aliases to vite-plus-core; pnpm can use a catalog, npm an overrides entry):

{
  "devDependencies": {
    "vite-plus": "0.0.0-commit.b45b2d0fabf3ebea7ad2d29044be724f6f5e8682",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.b45b2d0fabf3ebea7ad2d29044be724f6f5e8682"
  }
}

@github-actions

Copy link
Copy Markdown
Contributor

🐳 Docker preview image

Built from this PR's registry bridge build:

Image Compressed size
ghcr.io/voidzero-dev/vite-plus:pr-2672 228MB
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-2672 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-2672

Quick check:

docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-2672 vp --version

See docs/guide/docker.md for usage.

@fengmk2
fengmk2 force-pushed the fix/remove-oxc-bin-wrappers branch from 7d04a07 to b45b2d0 Compare September 12, 2026 01:30
@fengmk2
fengmk2 changed the base branch from main to fix/reuse-cli-node-runtime September 12, 2026 01:30
@fengmk2
fengmk2 added this pull request to stack #2674 September 12, 2026 01:30
@fengmk2 fengmk2 added preview-build Publish this PR's commits to the registry bridge as preview builds and removed preview-build Publish this PR's commits to the registry bridge as preview builds labels Sep 12, 2026
Base automatically changed from fix/reuse-cli-node-runtime to main September 12, 2026 03:13
@fengmk2
fengmk2 force-pushed the fix/remove-oxc-bin-wrappers branch 3 times, most recently from 1057b54 to 0bb91a4 Compare September 12, 2026 08:17
@fengmk2
fengmk2 requested a review from leaysgur September 14, 2026 08:44
@fengmk2
fengmk2 marked this pull request as ready for review September 14, 2026 08:44

@leaysgur leaysgur left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I will try to review IDE side this week...!

@fengmk2
fengmk2 force-pushed the fix/remove-oxc-bin-wrappers branch 2 times, most recently from a63fd2d to 35bbe84 Compare September 21, 2026 04:38
@fengmk2
fengmk2 force-pushed the fix/remove-oxc-bin-wrappers branch from 35bbe84 to f987c6d Compare September 21, 2026 09:22
@fengmk2
fengmk2 merged commit 476ee7c into main Sep 21, 2026
117 checks passed
@fengmk2
fengmk2 deleted the fix/remove-oxc-bin-wrappers branch September 21, 2026 13:32
fengmk2 added a commit that referenced this pull request Sep 22, 2026
…2780)

Vite+ now uses Vitest 5, and `vp migrate` helps Vitest 4 projects adopt
the new APIs and defaults. Standalone installs and upgrades now require
verified npm provenance for release binaries.

### Breaking Changes

#### Vitest 5

`vp test` and the public `vite-plus/test*` exports now use
`vitest@5.0.1`
([#2551](#2551)), by
@fengmk2.

| Area | Old | New |
| --- | --- | --- |
| Test runner | `vitest@4.1.11` | `vitest@5.0.1` |
| CLI Node.js range | `^20.19.0 \|\| ^22.18.0 \|\| >=24.11.0` |
`^22.18.0 \|\| ^24.11.0 \|\| >=26.0.0` |
| `vite-plus/test/runners` and `vite-plus/test/suite` | Vite+
compatibility exports | Use supported APIs from `vite-plus/test`; review
unsupported runner and expect plugins |
| `vite-plus/test/browser-webdriverio` | Bundled export | Use the
community `@vitest/browser-webdriverio` package |

Run `vp migrate` from the workspace root before you install the new
dependencies. The migrator updates supported config, source, benchmark,
command, and import changes. It reports manual work as `BLOCK` or
`REVIEW` items. See the [Vitest 5 migration
guide](https://viteplus.dev/guide/vitest-v5) for the full process.
Projects can stay on the prior release until their runtimes and tests
are ready.

#### `vp staged` runtime requirements

`vp staged` now uses `lint-staged@17.5.1`
([#2754](#2754)), by
@fengmk2.

| Requirement | Old | New |
| --- | --- | --- |
| Node.js for `vp staged` | The Vite+ CLI runtime range | `^22.22.1 \|\|
^24.11.0 \|\| >=26.0.0` |
| Git | No separate documented minimum | `>=2.32.0` |

Update Node.js and Git on developer machines and CI runners that execute
`vp staged` or its pre-commit hook. Other workflows do not use these
extra requirements.

### Highlights

- Standalone installers, `vp upgrade`, and `vp-setup.exe` now reject
release binaries without supported SLSA provenance
([#2440](#2440)), by
@kazupon.
- Installers now show progress and the exact shell activation command.
Download progress preserves earlier terminal output
([#2744](#2744),
[#2741](#2741)), by
@fengmk2.
- System-first runtime and package-manager shims now use a fallback
directory at the end of `PATH`. Setup restores missing package-manager
preferences
([#2758](#2758),
[#2763](#2763)), by
@liangmiQwQ and @fengmk2.
- `vp run` now finishes when background processes remain. Large file
traces run without caching instead of killing the task
([#2767](#2767),
[vite-task#675](voidzero-dev/vite-task#675)), by
@wan9chi.

### Features

- `vp add` now supports shared install options such as `--offline`,
`--frozen-lockfile`, and `--lockfile-only`
([#2722](#2722)), by
@jong-kyung.
- `vp pm patch` and `vp pm patch-commit` now use the native commands in
npm 12 and later
([#2736](#2736)), by
@jong-kyung.
- `vp rebuild` now supports Yarn Berry and forwards package names and
extra arguments
([#2761](#2761)), by
@jong-kyung.
- The bundled tools update `oxlint` `1.83.0` -> `1.85.0`,
`oxlint-tsgolint` `7.0.2001` -> `7.0.2002`, and `oxfmt` `0.68.0` ->
`0.70.0` ([#2745](#2745),
[#2773](#2773),
[#2778](#2778)), by
@voidzero-guard[bot]. These versions can flag or format code that passed
before. Run `vp fmt` after upgrading if CI runs `vp check`.

### Fixes & Enhancements

- `oxlint` and `oxfmt` no longer expose bin wrappers that conflict with
upstream packages. Editors must use `vp lint --lsp`, `vp fmt --lsp`, or
`vp fmt --stdin-filepath`
([#2672](#2672)), by
@fengmk2.
- `vp create vite:generator` now replaces catalog references for package
managers that do not support catalogs
([#2720](#2720)), by
@SaKaNa-Y.
- Unpinned npm projects now use the npm version bundled with the
selected Node.js runtime. The same policy works during migration
([#2742](#2742),
[#2748](#2748)), by
@liangmiQwQ.
- The CLI now loads its local versions module through a file URL,
including on Windows paths
([#2749](#2749)), by
@YanChenBai.
- Package-manager commands now use pnpm when the project has no detected
package manager
([#2750](#2750)), by
@liangmiQwQ.
- `vp migrate` now removes unused `@oxlint/plugins` dependencies after
it rewrites plugin imports
([#2751](#2751)), by
@fengmk2.
- `vp update --no-save` now warns that Yarn Classic and Yarn Berry do
not support the option
([#2762](#2762)), by
@jong-kyung.
- `vp migrate` now explains its `tsdown@0.23` compatibility settings and
links to removal guidance
([#2769](#2769)), by
@fengmk2.
- Environment setup now installs and diagnoses the official `pn` and
`pnx` aliases for pnpm
([#2770](#2770)), by
@iruoy.
- Cached tasks now receive GitHub Actions OIDC variables, so npm Trusted
Publishing works through `vp run`
([vite-task#691](voidzero-dev/vite-task#691)),
by @naokihaba.
- Automatic task input tracking now records file access from signal
handlers
([vite-task#687](voidzero-dev/vite-task#687)),
by @wan9chi.

### Refactor

- `vp lint`, `vp fmt`, and `vp check` now use native config discovery.
Package commands keep matching workspace-root settings, while explicit
config flags take precedence
([#2731](#2731)), by
@fengmk2.

### Chore

- Generated workflows and `vp migrate` now use `setup-vp@v1.21.1`,
including its installation fixes
([#2760](#2760),
[#2772](#2772)), by
@renovate[bot] and @fengmk2.

### Bundled Versions

| Tool | Version | Source |
| --- | --- | --- |
| vite | `8.3.0` |
[`434e8e9`](vitejs/vite@434e8e9)
|
| rolldown | `1.2.9` |
[`5b4746e`](rolldown/rolldown@5b4746e)
|
| tsdown | `0.23.0` | [npm](https://npmx.dev/package/tsdown/v/0.23.0) |
| vitest | `5.0.1` | [npm](https://npmx.dev/package/vitest/v/5.0.1) |
| oxlint | `1.85.0` | [npm](https://npmx.dev/package/oxlint/v/1.85.0) |
| oxlint-tsgolint | `7.0.2002` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/7.0.2002) |
| oxfmt | `0.70.0` | [npm](https://npmx.dev/package/oxfmt/v/0.70.0) |

### Upgrade

```bash
vp upgrade
```

### New Contributors

@YanChenBai, @iruoy

**Full Changelog**:
v0.3.3...v1.0.0-rc.0

---

Merging this PR will trigger the release workflow.

---------

Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: MK (fengmk2) <fengmk2@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview-build Publish this PR's commits to the registry bridge as preview builds test: create-e2e Run `vp create` e2e tests test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: sfw

Projects

None yet

Development

Successfully merging this pull request may close these issues.

lint,fmt: Deprecate the wrapper bin for stable IDE support

2 participants