Repository navigation
fix(migrate): preserve Oxlint inheritance with shared TS configs - #3097
Conversation
|
✅ Staging deployment successful! Preview: https://viteplus-staging.void.app/ |
0877f9f to
cac98a4
Compare
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5973b90c51
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 37aef27bf2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d030c95ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3f568fe1dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e4885d57b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08b5d6290a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 18def623da
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 58df1cb399
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
31dbb58 to
55cec99
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Preview binary sizes (
|
| Binary | Latest release | Preview | Change |
|---|---|---|---|
vp (macOS ARM64) |
7.62 MiB | 4.82 MiB | -2.80 MiB (-36.75%) |
| NAPI (macOS ARM64) | 41.49 MiB | 41.97 MiB | +484.98 KiB (+1.14%) |
vp (macOS x64) |
9.29 MiB | 6.06 MiB | -3.23 MiB (-34.76%) |
| NAPI (macOS x64) | 46.44 MiB | 47.04 MiB | +613.58 KiB (+1.29%) |
vp (Linux ARM64 GNU) |
8.48 MiB | 6.05 MiB | -2.43 MiB (-28.66%) |
| NAPI (Linux ARM64 GNU) | 30.66 MiB | 31.16 MiB | +513.50 KiB (+1.64%) |
vp (Linux ARM64 musl) |
8.53 MiB | 6.12 MiB | -2.41 MiB (-28.27%) |
| NAPI (Linux ARM64 musl) | 29.89 MiB | 30.38 MiB | +504.13 KiB (+1.65%) |
vp (Linux x64 GNU) |
10.21 MiB | 7.26 MiB | -2.95 MiB (-28.88%) |
| NAPI (Linux x64 GNU) | 34.53 MiB | 35.14 MiB | +625.50 KiB (+1.77%) |
vp (Linux x64 musl) |
10.21 MiB | 7.33 MiB | -2.88 MiB (-28.21%) |
| NAPI (Linux x64 musl) | 33.50 MiB | 34.11 MiB | +627.00 KiB (+1.83%) |
vp (Windows x64) |
8.29 MiB | 5.31 MiB | -2.98 MiB (-35.93%) |
| NAPI (Windows x64) | 30.25 MiB | 30.86 MiB | +624.50 KiB (+2.02%) |
| Trampoline (Windows x64) | 13.00 KiB | 13.00 KiB | 0 B (0.00%) |
| Installer (Windows x64) | 3.64 MiB | 3.67 MiB | +30.50 KiB (+0.82%) |
vp (Windows ARM64) |
6.94 MiB | 4.67 MiB | -2.27 MiB (-32.69%) |
| NAPI (Windows ARM64) | 26.83 MiB | 27.32 MiB | +508.00 KiB (+1.85%) |
| Trampoline (Windows ARM64) | 13.00 KiB | 13.00 KiB | 0 B (0.00%) |
| Installer (Windows ARM64) | 3.01 MiB | 3.04 MiB | +25.50 KiB (+0.83%) |
gzip -9 sizes
| Binary | Latest release | Preview | Change |
|---|---|---|---|
vp (macOS ARM64) |
3.94 MiB | 2.88 MiB | -1.06 MiB (-27.00%) |
| NAPI (macOS ARM64) | 17.97 MiB | 18.15 MiB | +188.20 KiB (+1.02%) |
vp (macOS x64) |
4.28 MiB | 3.04 MiB | -1.24 MiB (-29.03%) |
| NAPI (macOS x64) | 19.14 MiB | 19.33 MiB | +192.90 KiB (+0.98%) |
vp (Linux ARM64 GNU) |
4.26 MiB | 3.31 MiB | -973.17 KiB (-22.29%) |
| NAPI (Linux ARM64 GNU) | 13.00 MiB | 13.20 MiB | +200.01 KiB (+1.50%) |
vp (Linux ARM64 musl) |
4.30 MiB | 3.34 MiB | -985.51 KiB (-22.36%) |
| NAPI (Linux ARM64 musl) | 12.71 MiB | 12.90 MiB | +202.77 KiB (+1.56%) |
vp (Linux x64 GNU) |
4.50 MiB | 3.37 MiB | -1.14 MiB (-25.25%) |
| NAPI (Linux x64 GNU) | 13.81 MiB | 14.01 MiB | +209.36 KiB (+1.48%) |
vp (Linux x64 musl) |
4.51 MiB | 3.40 MiB | -1.12 MiB (-24.73%) |
| NAPI (Linux x64 musl) | 13.35 MiB | 13.55 MiB | +206.08 KiB (+1.51%) |
vp (Windows x64) |
3.66 MiB | 2.48 MiB | -1.18 MiB (-32.17%) |
| NAPI (Windows x64) | 12.37 MiB | 12.58 MiB | +207.78 KiB (+1.64%) |
| Trampoline (Windows x64) | 7.14 KiB | 7.14 KiB | 0 B (0.00%) |
| Installer (Windows x64) | 1.78 MiB | 1.80 MiB | +13.87 KiB (+0.76%) |
vp (Windows ARM64) |
3.46 MiB | 2.38 MiB | -1.08 MiB (-31.34%) |
| NAPI (Windows ARM64) | 11.75 MiB | 11.94 MiB | +202.42 KiB (+1.68%) |
| Trampoline (Windows ARM64) | 6.93 KiB | 6.93 KiB | -2 B (-0.03%) |
| Installer (Windows ARM64) | 1.71 MiB | 1.72 MiB | +10.93 KiB (+0.63%) |
Raw sizes are uncompressed file sizes. gzip sizes recompress each binary at level 9; they are not package or download archive sizes.
The baseline uses published release files, including NAPI packages from npm at the same version. Build versions and toolchains can affect the difference.
Registry bridge build (
|
| Package | Version |
|---|---|
vite-plus |
0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d |
@voidzero-dev/vite-plus-core |
0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d |
create-vite-plus |
0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d |
Install the Vite+ CLI built from this commit, then migrate a project:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/voidzero-dev/vite-plus/55cec9913510f20009d932ac1e9a85b98817867d/packages/cli/install.sh | VP_PR_VERSION=3097 VP_LEGACY_INSTALLER_URL=https://raw.githubusercontent.com/voidzero-dev/vite-plus/55cec9913510f20009d932ac1e9a85b98817867d/packages/cli/install-legacy.sh bash# Windows (PowerShell)
$env:VP_PR_VERSION="3097"; $env:VP_LEGACY_INSTALLER_URL="https://raw.githubusercontent.com/voidzero-dev/vite-plus/55cec9913510f20009d932ac1e9a85b98817867d/packages/cli/install-legacy.ps1"; irm https://raw.githubusercontent.com/voidzero-dev/vite-plus/55cec9913510f20009d932ac1e9a85b98817867d/packages/cli/install.ps1 | iexOr 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.55cec9913510f20009d932ac1e9a85b98817867d" --registry "https://registry-bridge.viteplus.dev/"After installing, upgrade the current project's vite-plus to this test build with:
vp migrateOr create a new project from this commit without installing the CLI:
export npm_config_registry=https://registry-bridge.viteplus.dev/ pnpm_config_registry=https://registry-bridge.viteplus.dev/
pnpm create vite-plus@0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d # or: npm create vite-plus@0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d$env:npm_config_registry="https://registry-bridge.viteplus.dev/"; $env:pnpm_config_registry="https://registry-bridge.viteplus.dev/"
pnpm create vite-plus@0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d # or: npm create vite-plus@0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867dpnpm 11+ reads pnpm_config_registry, npm and older pnpm read npm_config_registry. The new project pins this build, so keep the registry set for later installs, or configure it as below.
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.55cec9913510f20009d932ac1e9a85b98817867d",
"vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.55cec9913510f20009d932ac1e9a85b98817867d"
}
}
🐳 Docker preview imageBuilt from this PR's registry bridge build:
# remove any stale local copy from a previous run, then pull fresh
docker rmi ghcr.io/voidzero-dev/vite-plus:pr-3097 2>/dev/null; docker pull ghcr.io/voidzero-dev/vite-plus:pr-3097Quick check: docker run --rm ghcr.io/voidzero-dev/vite-plus:pr-3097 vp --versionSee docs/guide/docker.md for usage. |
vp migratecopies JSONextendspaths intolint.extends, butvp lintrequires config objects.This change converts shared JSON configs to TypeScript modules and imports them through
lint.extends. All migrated consumers use the same module, including its owning workspace. Rule order, severities, overrides, explicit options, and plugin paths retain their behavior. Owner-only settings and migration defaults remain in each workspace's locallintblock.Before migration:
After migration (relevant fields):
Conflicts or unsupported configs preserve the original JSON with a warning. Cleanup removes only completed workspace config paths and retains JSON dependencies still in use. Retries reuse generated modules without replacing user edits.
Fixes #3089