Files
volar-docs/docs/release-and-upgrade.md
2025-11-09 22:22:52 -06:00

63 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Upgrading VolarJS: Release & Compatibility Guide
> [Docs Index](README.md) • [Repo README](../README.md) • [Testing & CI](testing-and-ci.md) • [Performance Guide](performance-and-debugging.md)
This guide outlines a safe upgrade path when bumping Volar, TypeScript, or Node versions across your tooling.
## Version Matrix
| Volar Major | Recommended TS | Minimum Node | Notes |
| --- | --- | --- | --- |
| 1.x | 4.95.0 | Node 14+ | Legacy support for Vue 2 + early Vue 3. |
| 2.x | 5.05.4 | Node 16+ | Current stable; aligns with Vue 3.4+. |
| 3.x (alpha) | 5.4+ | Node 18+ | Experimental features (volar-next). |
Always align `@volar/*`, `@vue/language-*`, and `typescript` versions to the matrix above.
## Upgrade Checklist
1. **Pin Dependencies** update `package.json` to the target versions; use exact versions for deterministic builds.
2. **Update Tooling** ensure VS Code extension, CLI, and server dependencies all reference the same Volar release.
3. **Run Tests** execute unit/integration tests (see [Testing & CI](testing-and-ci.md)).
4. **Benchmark** re-run performance benchmarks (see [LSP Benchmarking](lsp-benchmarking.md)).
5. **Smoke Test Editors** open representative projects in VS Code/Neovim/etc.
6. **Document Changes** highlight breaking changes or new config fields in your release notes.
## Handling Breaking Changes
- **Config**: When introducing new settings (e.g., `volarJsonYaml.schemas`), provide defaults and migration instructions.
- **APIs**: If your custom plugins rely on Volar internals, watch release notes for API removals/renames and adapt accordingly.
- **TypeScript**: Major TS upgrades may require updating `tsconfig` (e.g., new `lib` entries) and re-running `tsc --build`.
## Testing Multiple Versions
Use `npm` aliases or `pnpm overrides` to test against multiple Volar/TS combos:
```bash
npm install typescript@5.0 @volar/language-service@2.2.1
npm test
npm install typescript@5.4 @volar/language-service@2.4.0
npm test
```
Automate via CI matrix:
```yaml
strategy:
matrix:
ts: ["5.0", "5.4"]
volar: ["2.2.1", "2.4.0"]
```
## Deprecations
- Monitor [release notes](https://github.com/vuejs/language-tools/releases) for deprecations (e.g., old config flags, plugin APIs).
- When a feature is deprecated, surface warnings in your logs and plan migrations ahead of the removal.
## Communication
- Publish a migration guide whenever you bump major versions—include new settings, removal of flags, and compatibility notes.
- For consumers of your tooling, provide sample upgrade scripts (e.g., `npx volar-migrate`).
Staying proactive with upgrades keeps your tooling aligned with Vues evolution and prevents users from encountering surprise regressions.