Skip to content

feat(cli): expose dependency alignment plans - #2600

Open
afonsojramos wants to merge 2 commits into
voidzero-dev:mainfrom
afonsojramos:feat/sync-versions-plan
Open

feat(cli): expose dependency alignment plans#2600
afonsojramos wants to merge 2 commits into
voidzero-dev:mainfrom
afonsojramos:feat/sync-versions-plan

Conversation

@afonsojramos

@afonsojramos afonsojramos commented Sep 2, 2026

Copy link
Copy Markdown

Summary

Vite+ releases can now tell external automation how to align Vite+, Vite+ core, Vitest, and official Vitest packages without reading or changing the project itself. This provides the release-owned compatibility contract needed to prevent dependency bots from producing mixed toolchains.

This is the first part of a three-repository integration. Containerbase installation and Renovate reconciliation follow after this contract ships in a Vite+ release.

Design

  • vp sync-versions --plan-json accepts bounded manifest snapshots over stdin and returns deterministic before/after replacements.
  • Planning updates only existing managed declarations. It preserves catalog protocols, JSON formatting, and YAML comments, quoting, indentation, and line endings.
  • The command does not load project configuration, run installs or lifecycle scripts, format source, or write to the repository.
  • Both the npm CLI and standalone archive expose the same protocol. Release archives include the self-contained planner, toolchain manifest, and checksums needed for verified installation.

Validation

  • Planner, protocol, package-override, and migration suites: 395 tests passed.
  • Focused sync-version suites: 39 tests passed.
  • Global CLI Rust suite: 486 tests passed, 2 ignored.
  • CLI TypeScript build, optimized Rust build, npm entrypoint smoke test, and standalone archive-layout simulation passed.
  • Scoped formatting, lint, type checks, and git diff --check passed.

Related: #2356

Downstream drafts:

@netlify

netlify Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploy Preview for viteplus-preview canceled.

Name Link
🔨 Latest commit 1d63253
🔍 Latest deploy log https://app.netlify.com/projects/viteplus-preview/deploys/6a98dd5ab280b500088b85da

Comment thread packages/cli/src/sync-versions/bin.ts Outdated
@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 preview-build Publish this PR's commits to the registry bridge as preview builds labels Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Registry bridge build (1d63253)

Warning

This build is from the fork afonsojramos/vite-plus and has not been reviewed.
Installing it runs that code on your machine. Build log

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.1d632533df2fe867508510784be92b1fe9dd19d8
@voidzero-dev/vite-plus-core 0.0.0-commit.1d632533df2fe867508510784be92b1fe9dd19d8

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

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/afonsojramos/vite-plus/1d632533df2fe867508510784be92b1fe9dd19d8/packages/cli/install.sh | VP_PR_VERSION=2600 bash
# Windows (PowerShell)
$env:VP_PR_VERSION="2600"; irm https://raw.githubusercontent.com/afonsojramos/vite-plus/1d632533df2fe867508510784be92b1fe9dd19d8/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.1d632533df2fe867508510784be92b1fe9dd19d8" --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.1d632533df2fe867508510784be92b1fe9dd19d8",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.1d632533df2fe867508510784be92b1fe9dd19d8"
  }
}

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants